예제 #1
0
def import_rules_identity_sim_card_ownerships_i3(ds: DataService):
    # define Identities(I)' rules of sim_care_ownership master: level 2
    rule = create_new_rule(2, 'I', 'I3', 'مالکیت خط تلفن همراه', 2)
    ds.insert_rule(rule)

    # define Identities(I)' rules of sim_care_ownership details: level 3
    # SimCardOwnership = Yes	20	I0301P20    2%	تطابق هویت واقعی کاربر با مشخصات مالک خط تلفن همراه در سامانه شاهکار
    rule = create_new_rule(
        3, 'I3', 'I0301P20',
        'تطابق هویت واقعی کاربر با مشخصات مالک خط تلفن همراه در سامانه شاهکار',
        2, 20, 1)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # SimCardOwnership = No	00	I0302P0     0%	عدم تطابق هویت واقعی کاربر با مشخصات مالک خط تلفن همراه
    rule = create_new_rule(
        3, 'I3', 'I0302P0',
        'عدم تطابق هویت واقعی کاربر با مشخصات مالک خط تلفن همراه', 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Identities(I) sim_card_ownerships_i3 rules are created.')
    ds.delete_score_reasons(
        {RULE_MASTER_CODE: I3_RULES_PROFILE_SIM_CARD_OWNERSHIPS})
    change_reason = create_new_score_reason(
        I3_RULES_PROFILE_SIM_CARD_OWNERSHIPS, rule_codes,
        'تایید مالکیت خط تلفن همراه', 'عدم تایید مالکیت خط تلفن همراه')
    ds.insert_score_reason(change_reason)
    print('Identities(I) sim_card_ownerships_i3 change reasons are created.')
예제 #2
0
def import_rules_identity_address_verifications_i4(ds: DataService):
    # define Identities(I)' rules of address_verifications master: level 2
    rule = create_new_rule(2, 'I', 'I4', 'احراز اصالت محل سکونت', 2)
    ds.insert_rule(rule)

    # define Identities(I)' rules of address_verifications details: level 3
    # AddressVerification = Yes	20	I0401P20    2%	احراز اصالت نشانی محل سکونت کاربر از طریق وارد کردن رمز پستی
    rule = create_new_rule(
        3, 'I4', 'I0401P20',
        'احراز اصالت نشانی محل سکونت کاربر از طریق وارد کردن رمز پستی', 2, 20,
        1)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # AddressVerification = No	00	I0402P0 0%	عدم احراز اصالت نشانی محل سکونت کاربر
    rule = create_new_rule(
        3, 'I4', 'I0402P0',
        'تطابق هویت واقعی کاربر با مشخصات مالک خط تلفن همراه در سامانه شاهکار',
        0, 0, 0)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Identities(I) address_verifications_i4 rules are created.')
    ds.delete_score_reasons(
        {RULE_MASTER_CODE: I4_RULES_PROFILE_ADDRESS_VERIFICATIONS})
    change_reason = create_new_score_reason(
        I4_RULES_PROFILE_ADDRESS_VERIFICATIONS, rule_codes,
        'تایید نشانی محل سکونت', 'عدم تایید نشانی محل سکونت')
    ds.insert_score_reason(change_reason)
    print('Identities(I) address_verifications_i4 change reasons are created.')
예제 #3
0
def import_rules_timeliness_arrear_loans_total_count_t34(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T34', 'تعداد تسهیلات معوق در جریان', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # DelayedLoans = 0	20	T3401P20	کاربر تسهیلات معوق ندارد
    rule = create_new_rule(3, 'T34', 'T3401P20', 'کاربر تسهیلات معوق ندارد', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # DelayedLoans = 1	-10	T3402N10	کاربر 1 تسهیلات معوق دارد
    rule = create_new_rule(3, 'T34', 'T3402N10', 'کاربر 1 تسهیلات معوق دارد', 1.30, -10, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DelayedLoans = 2	-20	T3403N20	کاربر ۲ تسهیلات معوق دارد
    rule = create_new_rule(3, 'T34', 'T3403N20', 'کاربر ۲ تسهیلات معوق دارد', 2.59, -20, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DelayedLoans = 3	-30	T3404N30	کاربر ۳ تسهیلات معوق دارد
    rule = create_new_rule(3, 'T34', 'T3404N30', 'کاربر ۳ تسهیلات معوق دارد', 3.89, -30, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DelayedLoans >= 4	-40	T3405N40	کاربر بیش از ۳ تسهیلات معوق دارد
    rule = create_new_rule(3, 'T34', 'T3405N40', 'کاربر بیش از ۳ تسهیلات معوق دارد', 5.19, -40, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) arrear_loans_total_count_t34 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T34_RULES_LOAN_ARREAR_TOTAL_COUNTS})
    change_reason = create_new_score_reason(T34_RULES_LOAN_ARREAR_TOTAL_COUNTS, rule_codes, 'کاهش تعداد تسهیلات معوق در جریان', 'افزایش تعداد تسهیلات معوق در جریان')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) arrear_loans_total_count_t34 change reasons are created.')
예제 #4
0
def import_rules_timeliness_past_due_loans_total_count_t33(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T33', 'تعداد تسهیلات سررسید گذشته در جریان', 1.30, 10)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # PastDueLoans = 0	10	T3301P10	کاربر تسهیلات سررسید گذشته ندارد
    rule = create_new_rule(3, 'T33', 'T3301P10', 'کاربر تسهیلات سررسید گذشته ندارد', 1.30, 10, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # PastDueLoans = 1	00	T3302P0	کاربر 1 تسهیلات سررسید گذشته دارد
    rule = create_new_rule(3, 'T33', 'T3302P0', 'کاربر 1 تسهیلات سررسید گذشته دارد', 0, 0, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # PastDueLoans = 2	-10	T3303N10	کاربر ۲ تسهیلات سررسید گذشته دارد
    rule = create_new_rule(3, 'T33', 'T3303N10', 'کاربر ۲ تسهیلات سررسید گذشته دارد', 1.30, -10, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # PastDueLoans = 3	-20	T3304N20	کاربر ۳ تسهیلات سررسید گذشته دارد
    rule = create_new_rule(3, 'T33', 'T3304N20', 'کاربر ۳ تسهیلات سررسید گذشته دارد', 2.59, -20, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # PastDueLoans >= 4	-30	T3305N30	کاربر بیش از ۳ تسهیلات سررسید گذشته دارد
    rule = create_new_rule(3, 'T33', 'T3305N30', 'کاربر بیش از ۳ تسهیلات سررسید گذشته دارد', 3.89, -30, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) past_due_loans_total_count_t33 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T33_RULES_LOAN_PAST_DUE_TOTAL_COUNTS})
    change_reason = create_new_score_reason(T33_RULES_LOAN_PAST_DUE_TOTAL_COUNTS, rule_codes, 'کاهش تعداد تسهیلات سررسید گذشته در جریان', 'افزایش تعداد تسهیلات سررسید گذشته در جریان')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) past_due_loans_total_count_t33 change reasons are created.')
예제 #5
0
def import_rules_timeliness_unfixed_returned_cheques_count_of_last_5_years_t32(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T32', 'تعداد کل چک‌های برگشتی رفع سو اثر شده در 5 سال گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # AllDishonouredCheques = 0	20	T3201P20	کاربر چک برگشتی ندارد
    rule = create_new_rule(3, 'T32', 'T3201P20', 'کاربر چک برگشتی ندارد', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    #  1 ≤ AllDishonouredCheques ≤ 3	00	T3202P0	کاربر بین 1 تا 3 چک برگشتی دارد
    rule = create_new_rule(3, 'T32', 'T3202P0', 'کاربر بین 1 تا 3 چک برگشتی دارد', 0, 0, 1, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= AllDishonouredCheques ≤ 6	-10	T3203N10	کاربر بین 4 تا 6 چک برگشتی دارد
    rule = create_new_rule(3, 'T32', 'T3203N10', 'کاربر بین 4 تا 6 چک برگشتی دارد', 1.30, -10, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= AllDishonouredCheques ≤ 10	-20	T3204N20	کاربر کاربر بین 7 تا 10 چک برگشتی دارد
    rule = create_new_rule(3, 'T32', 'T3204N20', 'کاربر کاربر بین 7 تا 10 چک برگشتی دارد', 2.59, -20, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredCheques >= 11	-30	T3205N30	کاربر بیش از 10 چک برگشتی دارد
    rule = create_new_rule(3, 'T32', 'T3205N30', 'کاربر بیش از 10 چک برگشتی دارد', 3.89, -30, 11, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) unfixed_returned_cheques_count_of_last_5_years_t32 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T32_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_LAST_5_YEARS})
    change_reason = create_new_score_reason(T32_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_LAST_5_YEARS, rule_codes, 'کاهش تعداد چک‌های برگشتی رفع سو اثر شده در پنج سال گذشته', 'افزایش تعداد چک‌های برگشتی رفع سو اثر شده در پنج سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) unfixed_returned_cheques_count_of_last_5_years_t32 change reasons are created.')
예제 #6
0
def import_rules_timeliness_unfixed_returned_cheques_count_of_more_12_months_t31(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T31', 'تعداد چک‌های برگشتی رفع سو اثر نشده در بیش از ۱۲ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # DishonouredChequesA12M = 0	20	T3101P20	کاربر چک برگشتی ندارد
    rule = create_new_rule(3, 'T31', 'T3101P20', 'کاربر چک برگشتی ندارد', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # DishonouredChequesA12M = 1	-40	T3102N40	کاربر ۱ چک برگشتی دارد
    rule = create_new_rule(3, 'T31', 'T3102N40', 'کاربر ۱ چک برگشتی دارد', 5.19, -40, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesA12M = 2	-50	T3103N50	کاربر ۲ چک برگشتی دارد
    rule = create_new_rule(3, 'T31', 'T3103N50', 'کاربر ۲ چک برگشتی دارد', 6.48, -50, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesA12M = 3	-60	T3104N60	کاربر ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T31', 'T3104N60', 'کاربر ۳ چک برگشتی دارد', 7.78, -60, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesA12M >= 4	-70	T3105N70	کاربر بیش از ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T31', 'T3105N70', 'کاربر بیش از ۳ چک برگشتی دارد', 9.07, -70, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) unfixed_returned_cheques_count_of_more_12_months_t31 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T31_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_MORE_12_MONTHS})
    change_reason = create_new_score_reason(T31_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_MORE_12_MONTHS, rule_codes, 'کاهش تعداد چک‌های برگشتی رفع سو اثر نشده در بیش از یک سال گذشته', 'افزایش تعداد چک‌های برگشتی رفع سو اثر نشده در بیش از یک سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) unfixed_returned_cheques_count_of_more_12_months_t31 change reasons are created.')
예제 #7
0
def import_rules_timeliness_unfixed_returned_cheques_count_between_last_3_to_12_months_t30(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T30', 'تعداد چک‌های برگشتی رفع سو اثر نشده در بازه ۳ تا ۱۲ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # DishonouredChequesL3-12M = 0	20	T3001P20	کاربر چک برگشتی ندارد
    rule = create_new_rule(3, 'T30', 'T3001P20', 'کاربر چک برگشتی ندارد', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # DishonouredChequesL3-12M = 1	-10	T3002N30	کاربر ۱ چک برگشتی دارد
    rule = create_new_rule(3, 'T30', 'T3002N30', 'کاربر ۱ چک برگشتی دارد', 3.89, -30, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3-12M = 2	-20	T3003N40	کاربر ۲ چک برگشتی دارد
    rule = create_new_rule(3, 'T30', 'T3003N40', 'کاربر 2 چک برگشتی دارد', 5.19, -40, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3-12M = 3	-30	T3004N50	کاربر ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T30', 'T3004N50', 'کاربر 3 چک برگشتی دارد', 6.48, -50, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3-12M > 3	-40	T3005N60	کاربر بیش از ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T30', 'T3005N60', 'کاربر بیش از ۳ چک برگشتی دارد', 7.78, -60, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) unfixed_returned_cheques_count_between_last_3_to_12_months_t30 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T30_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_BETWEEN_LAST_3_TO_12_MONTHS})
    change_reason = create_new_score_reason(T30_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_BETWEEN_LAST_3_TO_12_MONTHS, rule_codes, 'کاهش تعداد چک‌های برگشتی رفع سو اثر نشده در یک سال گذشته', 'افزایش تعداد چک‌های برگشتی رفع سو اثر نشده در یک سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) unfixed_returned_cheques_count_between_last_3_to_12_months_t30 change reasons are created.')
예제 #8
0
def import_rules_timeliness_unfixed_returned_cheques_count_of_last_3_months_t29(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T29', 'تعداد چک‌های برگشتی رفع سو اثر نشده در  ۳ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # DishonouredChequesL3M = 0	20	T2901P20	کاربر چک برگشتی ندارد
    rule = create_new_rule(3, 'T29', 'T2901P20', 'کاربر چک برگشتی ندارد', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # DishonouredChequesL3M = 1	-10	T2902N10	کاربر ۱ چک برگشتی دارد
    rule = create_new_rule(3, 'T29', 'T2902N10', 'کاربر ۱ چک برگشتی دارد', 1.30, -10, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3M = 2	-20	T2903N20	کاربر ۲ چک برگشتی دارد
    rule = create_new_rule(3, 'T29', 'T2903N20', 'کاربر 2 چک برگشتی دارد', 2.59, -20, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3M = 3	-30	T2904N30	کاربر ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T29', 'T2904N30', 'کاربر 3 چک برگشتی دارد', 3.89, -30, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DishonouredChequesL3M > 3	-40	T2905N40	کاربر بیش از ۳ چک برگشتی دارد
    rule = create_new_rule(3, 'T29', 'T2905N40', 'کاربر بیش از ۳ چک برگشتی دارد', 5.19, -40, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) unfixed_returned_cheques_count_of_last_3_months_t29 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T29_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_LAST_3_MONTHS})
    change_reason = create_new_score_reason(T29_RULES_CHEQUE_UNFIXED_RETURNED_COUNT_OF_LAST_3_MONTHS, rule_codes, 'کاهش تعداد چک‌های برگشتی رفع سو اثر نشده در سه ماه گذشته', 'افزایش تعداد چک‌های برگشتی رفع سو اثر نشده در سه ماه گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) unfixed_returned_cheques_count_of_last_3_months_t29 rules are created.')
예제 #9
0
def import_rules_history_done_timely_trades_of_last_3_months_h6(ds: DataService):
    # define History(H)' rules of done_timely_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'H', 'H6', 'تعداد تعاملات موفق در 3 ماه گذشته', 4.44, 40)
    ds.insert_rule(rule)

    # define History(H)' rules of done_timely_trades_of_last_3_months details: level 3
    # Last3MSD = 0	00	H0601P0	کاربر در سه ماه گذشته هیچ تعامل موفقی با سایر کاربران نداشته است
    rule = create_new_rule(3, 'H6', 'H0601P0', 'کاربر در سه ماه گذشته هیچ تعامل موفقی با سایر کاربران نداشته است', 0, 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # Last3MSD = 1	10	H0602P10	کاربر در سه ماه گذشته 1 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H6', 'H0602P10', 'کاربر در سه ماه گذشته 1 تعامل موفق با سایر کاربران داشته است', 1.11, 10, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Last3MSD = 2	20	H0603P20	کاربر در سه ماه گذشته ۲ تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H6', 'H0603P20', 'کاربر در سه ماه گذشته ۲ تعامل موفق با سایر کاربران داشته است', 2.22, 20, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Last3MSD = 3	30	H0604P30	کاربر در سه ماه گذشته 3 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H6', 'H0601P0', 'کاربر در سه ماه گذشته 3 تعامل موفق با سایر کاربران داشته است', 3.33, 30, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Last3MSD ≥ 4	40	H0605P40	کاربر در سه ماه گذشته بیش از 3 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H6', 'H0605P40', 'کاربر در سه ماه گذشته بیش از 3 تعامل موفق با سایر کاربران داشته است', 4.44, 40, 4, 999)
    ds.insert_rule(rule)
    print('Histories(H) done_timely_trades_of_last_3_months_h6 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: H6_RULES_DONE_TIMELY_TRADES_OF_LAST_3_MONTHS})
    change_reason = create_new_score_reason(H6_RULES_DONE_TIMELY_TRADES_OF_LAST_3_MONTHS, rule_codes, 'افزایش معاملات موفق در سه ماه گذشته', 'کاهش معاملات موفق در سه ماه گذشته')
    ds.insert_score_reason(change_reason)
    print('Histories(H) done_timely_trades_of_last_3_months_h6 change reasons are created.')
예제 #10
0
def import_rules_history_star_counts_avgs_h9(ds: DataService):
    # define History(H)' rules of star_counts_avgs master: level 2
    rule = create_new_rule(2, 'H', 'H9', ' امتیاز رضایتمندی دریافت شده از طرف مقابل پس از انجام موفقیت آمیز تعامل', 5.56, 50)
    ds.insert_rule(rule)

    # define History(H)' rules of star_counts_avgs details: level 3
    # WeightedAveStars <= 1	00	H0901P0	کاربر به طور متوسط کمتر مساوی ۱ ستاره کسب کرده است
    rule = create_new_rule(3, 'H9', 'H0901P0', 'کاربر به طور متوسط کمتر مساوی ۱ ستاره کسب کرده است', 0, 0, 0, 1)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # 1.001 <= WeightedAveStars ≤ 2	05	H0902P5	کاربر به طور متوسط بیش از ۱ و کمتر مساوی ۲ ستاره کسب کرده است
    rule = create_new_rule(3, 'H9', 'H0902P5', 'کاربر به طور متوسط بیش از ۱ و کمتر مساوی ۲ ستاره کسب کرده است', 0.56, 5, 1.001, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2.001 <= WeightedAveStars ≤ 3	10	H0903P10	کاربر به طور متوسط بیش از ۲ و کمتر مساوی ۳ ستاره کسب کرده است
    rule = create_new_rule(3, 'H9', 'H0903P10', 'کاربر به طور متوسط بیش از ۲ و کمتر مساوی ۳ ستاره کسب کرده است', 1.11, 10, 2.001, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 3.001 <= WeightedAveStars ≤ 4	30	H0904P30	کاربر به طور متوسط بیش از ۳ و کمتر مساوی ۴ ستاره کسب کرده است
    rule = create_new_rule(3, 'H9', 'H0904P30', 'کاربر به طور متوسط بیش از ۳ و کمتر مساوی ۴ ستاره کسب کرده است', 3.33, 30, 3.001, 4)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4.001 <= WeightedAveStars ≤ 5	50	H0905P50	کاربر به طور متوسط بیش از ۴ و کمتر مساوی ۵ ستاره کسب کرده است
    rule = create_new_rule(3, 'H9', 'H0905P50', 'کاربر به طور متوسط بیش از ۴ و کمتر مساوی ۵ ستاره کسب کرده است', 5.56, 50, 4.001, 5)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) star_counts_avgs_h9 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: H9_RULES_PROFILE_STAR_COUNTS_AVGS})
    change_reason = create_new_score_reason(H9_RULES_PROFILE_STAR_COUNTS_AVGS, rule_codes, 'افزایش امتیاز رضایتمندی دریافت شده از طرفین معاملات', 'کاهش امتیاز رضایتمندی دریافت شده از طرفین معاملات')
    ds.insert_score_reason(change_reason)
    print('Histories(H) star_counts_avgs_h9 change reasons are created.')
예제 #11
0
def import_rules_timeliness_suspicious_loans_total_count_t35(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T35', 'تعداد تسهیلات مشکوک الوصول در جریان', 3.89, 30)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # DoubfulCollectionLoans = 0	30	T3501P30	کاربر تسهیلات مشکوک الوصول ندارد
    rule = create_new_rule(3, 'T35', 'T3501P30', 'کاربر تسهیلات مشکوک الوصول ندارد', 3.89, 30, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # DoubfulCollectionLoans = 1	-20	T3502N20	کاربر 1 تسهیلات مشکوک الوصول دارد
    rule = create_new_rule(3, 'T35', 'T3502N20', 'کاربر 1 تسهیلات مشکوک الوصول دارد', 2.59, -20, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DoubfulCollectionLoans = 2	-30	T3503N30	کاربر ۲ تسهیلات مشکوک الوصول دارد
    rule = create_new_rule(3, 'T35', 'T3503N30', 'کاربر ۲ تسهیلات مشکوک الوصول دارد', 3.89, -30, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DoubfulCollectionLoans = 3	-40	T3504N40	کاربر ۳ تسهیلات مشکوک الوصول دارد
    rule = create_new_rule(3, 'T35', 'T3504N40', 'کاربر ۳ تسهیلات مشکوک الوصول دارد', 5.19, -40, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # DoubfulCollectionLoans >= 4	-50	T3505N50	کاربر بیش از ۳ تسهیلات مشکوک الوصول دارد
    rule = create_new_rule(3, 'T35', 'T3505N50', 'کاربر بیش از ۳ تسهیلات مشکوک الوصول دارد', 6.48, -50, 4, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) suspicious_loans_total_count_t35 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T35_RULES_LOAN_SUSPICIOUS_TOTAL_COUNTS})
    change_reason = create_new_score_reason(T35_RULES_LOAN_SUSPICIOUS_TOTAL_COUNTS, rule_codes, 'کاهش تعداد تسهیلات مشکوک الوصول در جریان', 'افزایش تعداد تسهیلات مشکوک الوصول در جریان')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) suspicious_loans_total_count_t35 change reasons are created.')
예제 #12
0
def import_rules_history_loans_total_count_h11(ds: DataService):
    # define History(H)' rules of undone_undue_trades_counts master: level 2
    rule = create_new_rule(2, 'H', 'H11', 'تعداد کل تسهیلات بانکی در جریان', 2.22, 20)
    ds.insert_rule(rule)

    # define History(H)' rules of undone_undue_trades_counts details: level 3
    # Loans = 0	00	H1101P0	کاربر هیچگونه تسهیلات در جریان ندارد
    rule = create_new_rule(3, 'H11', 'H1101P0', 'کاربر هیچگونه تسهیلات در جریان ندارد', 0, 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # Loans = 1	20	H1102P20	کاربر ۱ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1102P20', 'کاربر ۱ تسهیلات در جریان دارد', 2.22, 20, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    ds.delete_score_reasons({RULE_MASTER_CODE: H11_RULES_LOAN_TOTAL_COUNTS})
    change_reason = create_new_score_reason(H11_RULES_LOAN_TOTAL_COUNTS, rule_codes, 'افزایش امکان سنجش رفتار اعتباری کاربر از طریق اخذ تسهیلات بانکی', 'کاهش امکان سنجش رفتار اعتباری کاربر به دلیل اتمام تسهیلات بانکی')
    ds.insert_score_reason(change_reason)
    print('Histories(H) loans_total_count_h11 part-1 change reasons are created.')

    # Loans = 2	10	H1103P10	کاربر ۲ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1103P10', 'کاربر ۲ تسهیلات در جریان دارد', 1.11, 10, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Loans = 3	01	H1104P1	کاربر ۳ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1104P1', 'کاربر ۳ تسهیلات در جریان دارد', 0.11, 1, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Loans = 4	-20	H1105N20	کاربر ۴ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1105N20', 'کاربر ۴ تسهیلات در جریان دارد', 2.22, -20, 4, 4)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Loans = 5	-30	H1106N30	کاربر ۵ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1106N30', 'کاربر ۵ تسهیلات در جریان دارد', 3.33, -30, 5, 5)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Loans >= 6	-50	H1107N50	کاربر بیش از ۵ تسهیلات در جریان دارد
    rule = create_new_rule(3, 'H11', 'H1107N50', 'کاربر بیش از ۵ تسهیلات در جریان دارد', 5.56, -50, 6, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) loans_total_count_h11 rules are created.')
    change_reason = create_new_score_reason(H11_RULES_LOAN_TOTAL_COUNTS, rule_codes, 'کاهش تعداد تسهیلات بانکی در جریان', 'افزایش تعداد تسهیلات بانکی در جریان')
    ds.insert_score_reason(change_reason)
    print('Histories(H) loans_total_count_h11 part-2 change reasons are created.')
예제 #13
0
def import_rules_identity_has_kycs_i1(ds: DataService):
    # define Identities(I)' rules of kycs master: level 2
    rule = create_new_rule(2, 'I', 'I1', 'احراز هویت', 4)
    ds.insert_rule(rule)

    # define Identities(I)' rules of kycs details: level 3
    # KYC = Yes	40	I0101P40    %4	احراز هویت نهایی از طریق استعلام ثبت احوال
    rule = create_new_rule(3, 'I1', 'I0101P40',
                           'احراز هویت نهایی از طریق استعلام ثبت احوال', 4, 40,
                           1)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # KYC = No	00	I0102P0 0%	عدم احراز هویت
    rule = create_new_rule(3, 'I1', 'I0102P0', 'عدم احراز هویت', 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Identities(I) has_kycs_i1 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: I1_RULES_PROFILE_HAS_KYCS})
    change_reason = create_new_score_reason(
        I1_RULES_PROFILE_HAS_KYCS, rule_codes,
        'احراز هویت نهایی از طریق استعلام ثبت احوال')
    ds.insert_score_reason(change_reason)
    print('Identities(I) has_kycs_i1 change reasons are created.')
예제 #14
0
def import_rules_history_membership_days_counts_h5(ds: DataService):
    # define History(H)' rules of membership_days master: level 2
    rule = create_new_rule(2, 'H', 'H5', 'مدت زمان عضویت فعال', 6.67, 60)
    ds.insert_rule(rule)

    # define History(H)' rules of membership_days details: level 3
    # Just Registered MembershipDaysWithAtleast1SD == 0 	00	H0501P0	عضو جدید
    rule = create_new_rule(3, 'H5', 'H0501P0', 'عضو جدید', 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    #  1 <=  MembershipDaysWithAtleast1SD ≤ 90	    10	H0502P10	 عضویت بین 1 تا 90 روز
    rule = create_new_rule(3, 'H5', 'H0502P10', ' عضویت بین 1 تا 90 روز', 1.11, 10, 1, 90)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 91 <=  MembershipDaysWithAtleast3SD ≤ 180	    20	H0503P20	 عضویت بین 91 تا 180 روز
    rule = create_new_rule(3, 'H5', 'H0503P20', 'عضویت بین 91 تا 180 روز', 2.22, 20, 91, 180)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 181 <=  MembershipDaysWithAtleast5SD ≤ 365	30	H0504P30	 عضویت بین 181 تا 365 روز
    rule = create_new_rule(3, 'H5', 'H0504P30', ' عضویت بین 181 تا 365 روز', 3.33, 30, 181, 365)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 366 <= MembershipDaysWithAtleast10SD ≤ 720	40	H0505P40	 عضویت بین 366 تا 720 روز
    rule = create_new_rule(3, 'H5', 'H0505P40', ' عضویت بین 366 تا 720 روز', 4.44, 40, 366, 720)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 721 <= MembershipDaysWithAtleast15SD ≤ 1080	50	H0506P50	 عضویت بین 721 تا 1080 روز
    rule = create_new_rule(3, 'H5', 'H0506P50', ' عضویت بین 721 تا 1080 روز', 5.50, 50, 721, 1080)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    #     MembershipDaysWithAtleast20SD >= 1081	    60	H0507P60	 عضویت بیش از 1081 روز
    rule = create_new_rule(3, 'H5', 'H0507P60', ' عضویت بیش از 1081 روز', 6.67, 60, 1081, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) membership_days_counts_h5 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: H5_RULES_PROFILE_MEMBERSHIP_DAYS_COUNTS})
    change_reason = create_new_score_reason(H5_RULES_PROFILE_MEMBERSHIP_DAYS_COUNTS, rule_codes, 'افزایش مدت عضویت فعال')
    ds.insert_score_reason(change_reason)
    print('Histories(H) membership_days_counts_h5 change reasons are created.')
예제 #15
0
def import_rule_history_master(ds: DataService):
    # Delete all histories(H) rules
    l2_rules: {Rule} = ds.get_rules({PARENT: HISTORIES})
    for r in l2_rules:
        # delete all l3_rules
        ds.delete_rules({PARENT: r[CODE]})

    # delete all l2_rules
    ds.delete_rules({PARENT: HISTORIES})
    # delete the l1_rule
    ds.delete_rules({CODE: HISTORIES})
    print('Histories(H) rules are deleted.')

    # define Identities(I)' rules master: level 1
    rule = create_new_rule(1, None, 'H', 'سوابق تعاملات', 30, 270)
    ds.insert_rule(rule)
    print('Histories(H) master rule is created.')
예제 #16
0
def import_rule_timeliness_master(ds: DataService):
    # Delete all Timeliness(T) rules
    l2_rules: {Rule} = ds.get_rules({PARENT: TIMELINESS})
    for r in l2_rules:
        # delete all l3_rules
        ds.delete_rules({PARENT: r[CODE]})

    # delete all l2_rules
    ds.delete_rules({PARENT: TIMELINESS})
    # delete the l1_rule
    ds.delete_rules({CODE: TIMELINESS})
    print('Timeliness(T) rules are deleted.')

    # define Timeliness(T)' rules master: level 1
    # rule.drop_collection()
    rule = create_new_rule(1, None, 'T', 'انجام به موقع تعهدات', 35, 270)
    ds.insert_rule(rule)
    print('Timeliness(T) master rule is created.')
예제 #17
0
def import_rule_identity_master(ds: DataService):
    # Delete all identities(I) rules
    # l2_rules: [Rule] = Rule.objects(Q(parent='I'))
    l2_rules: {Rule} = ds.get_rules({PARENT: IDENTITIES})
    for r in l2_rules:
        # l3_rules: [Rule] = Rule.objects(Q(parent=r.code))
        # l3_rules.delete()
        ds.delete_rules({PARENT: r[CODE]})
    # l2_rules.delete()
    ds.delete_rules({PARENT: IDENTITIES})

    # l1_rule = Rule.objects(Q(code='I'))
    # l1_rule.delete()
    ds.delete_rules({CODE: IDENTITIES})
    print('Identities(I) rules are deleted.')
    # define Identities(I)' rules master: level 1
    rule = create_new_rule(1, None, 'I', 'اطلاعات هویتی', 10, 100)
    ds.insert_rule(rule)
    print('Identities(I) master rule is created.')
예제 #18
0
def import_rules_timeliness_undone_arrear_trades_counts_t27(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T27', 'تعداد تعاملات معوق (بیش از 30 روز تاخیر) خاتمه نیافته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # UnfinishedA30DayDelay = 0	20	T2701P20	کاربر در سه ماه گذشته هیچ تعامل سررسید گذشته‌ای نداشته است
    rule = create_new_rule(3, 'T27', 'T2701P20', 'کاربر در سه ماه گذشته هیچ تعامل سررسید گذشته‌ای نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # UnfinishedA30DayDelay = 1	-20	T2702N20	کاربر در سه ماه گذشته یک سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T27', 'T2702N20', 'کاربر در سه ماه گذشته یک سررسید گذشته‌ داشته است', 2.59, -20, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 <= UnfinishedA30DayDelay ≤ 3	-30	T2703N30	کاربر در سه ماه گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T27', 'T2703N30', 'کاربر در سه ماه گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است', 3.89, -30, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= UnfinishedA30DayDelay ≤ 6	-40	T2704N40	کاربر در سه ماه گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T27', 'T2704N40', 'کاربر در سه ماه گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است', 5.19, -40, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= UnfinishedA30DayDelay ≤ 10	-50	T2705N50	کاربر در سه ماه گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T27', 'T2705N50', 'کاربر در سه ماه گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است', 6.48, -50, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # UnfinishedA30DayDelay >= 11	-60	T2706N60	کاربر در سه ماه گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T27', 'T2706N60', 'کاربر در سه ماه گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است', 7.78, -60, 11,
                           rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) undone_arrear_trades_counts_t27 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T27_RULES_UNDONE_ARREAR_TRADES_COUNTS})
    change_reason = create_new_score_reason(T27_RULES_UNDONE_ARREAR_TRADES_COUNTS, rule_codes, 'کاهش تعداد معاملات معوق خاتمه نیافته در سه ماه گذشته', 'افزایش تعداد معاملات معوق خاتمه نیافته در سه ماه گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) undone_arrear_trades_counts_t27 change reasons are created.')
예제 #19
0
def import_rules_timeliness_done_past_due_trades_between_last_3_to_12_months_t23(ds: DataService):
    # define Timeliness(T)' rules of done_past_due_trades_between_last_3_to_12_months master: level 2
    rule = create_new_rule(2, 'T', 'T23', 'تعداد تعاملات سررسید گذشته (کمتر از 30 روز تاخیر) خاتمه یافته در ۳ تا ۱۲ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_past_due_trades_between_last_3_to_12_months details: level 3
    # B30DayDelayLast3-12M = 0	20	T2301P20	کاربر در یکسال گذشته هیچ تعامل سررسید گذشته‌ای نداشته است
    rule = create_new_rule(3, 'T23', 'T2301P20', 'کاربر در یکسال گذشته هیچ تعامل سررسید گذشته‌ای نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # B30DayDelayLast3-12M = 1	15	T2302P15	کاربر در یکسال گذشته 1 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T23', 'T2302P15', 'کاربر در یکسال گذشته 1 تعامل سررسید گذشته‌ داشته است', 1.94, 15, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 <= B30DayDelayLast3-12M ≤ 3	05	T2303P5	کاربر در یکسال گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T23', 'T2303P5', 'کاربر در یکسال گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است', 0.65, 5, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= B30DayDelayLast3-12M ≤ 6	-10	T2304N10	کاربر در یکسال گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T23', 'T2304N10', 'کاربر در یکسال گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است', 1.30, -10, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= B30DayDelayLast3-12M ≤ 10	-15	T2305N15	کاربر در یکسال گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T23', 'T2305N15', 'کاربر در یکسال گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است', 1.94, -15, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # B30DayDelayLast3-12M >= 11	-20	T2306N20	کاربر در یکسال گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T23', 'T2306N20', 'کاربر در یکسال گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است', 2.59, -20, 11,
                           rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) done_past_due_trades_between_last_3_to_12_months_t23 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T23_RULES_DONE_PAST_DUE_TRADES_BETWEEN_LAST_3_TO_12_MONTHS})
    change_reason = create_new_score_reason(T23_RULES_DONE_PAST_DUE_TRADES_BETWEEN_LAST_3_TO_12_MONTHS, rule_codes, 'کاهش تعداد معاملات سررسید گذشته خاتمه یافته در یک سال گذشته', 'افزایش تعداد معاملات سررسید گذشته خاتمه یافته در یک سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) done_past_due_trades_between_last_3_to_12_months_t23 change reasons are created.')
예제 #20
0
def import_rules_timeliness_done_past_due_trades_of_last_3_months_t22(ds: DataService):
    # define Timeliness(T)' rules of done_past_due_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T22', 'تعداد تعاملات سررسید گذشته (کمتر از 30 روز تاخیر) خاتمه یافته در ۳ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_past_due_trades_of_last_3_months details: level 3
    # B30DayDelayLast3M = 0	20	T2201P20	کاربر در سه ماه گذشته هیچ تعامل سررسید گذشته‌ای نداشته است
    rule = create_new_rule(3, 'T22', 'T2201P20', 'کاربر در سه ماه گذشته هیچ تعامل سررسید گذشته‌ای نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # B30DayDelayLast3M = 1	10	T2202P10	کاربر در سه ماه گذشته 1 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T22', 'T2202P10', 'کاربر در سه ماه گذشته 1 تعامل سررسید گذشته‌ داشته است', 1.30, 10, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 < B30DayDelayLast3M ≤ 3	00	T2203P0	کاربر در سه ماه گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T22', 'T2203P0', 'کاربر در سه ماه گذشته بین 2 تا 3 تعامل سررسید گذشته‌ داشته است', 0, 0, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= B30DayDelayLast3M ≤ 6	-10	T2204N10	کاربر در سه ماه گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T22', 'T2204N10', 'کاربر در سه ماه گذشته بین 4 تا 6 تعامل سررسید گذشته‌ داشته است', 1.30, -10, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= B30DayDelayLast3M ≤ 10	-20	T2205N20	کاربر در سه ماه گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T22', 'T2205N20', 'کاربر در سه ماه گذشته بین 7 تا 10 تعامل سررسید گذشته‌ داشته است', 2.59, -20, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # B30DayDelayLast3M >= 11	-30	T2206N30	کاربر در سه ماه گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است
    rule = create_new_rule(3, 'T22', 'T2206N30', 'کاربر در سه ماه گذشته بیش از 10 تعامل سررسید گذشته‌ داشته است', 3.89, -30, 11,
                           rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) done_past_due_trades_of_last_3_months_t22 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T22_RULES_DONE_PAST_DUE_TRADES_OF_LAST_3_MONTHS})
    change_reason = create_new_score_reason(T22_RULES_DONE_PAST_DUE_TRADES_OF_LAST_3_MONTHS, rule_codes, 'کاهش تعداد معاملات سررسید گذشته خاتمه یافته در سه ماه گذشته', 'افزایش تعداد معاملات سررسید گذشته خاتمه یافته در سه ماه گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) done_past_due_trades_of_last_3_months_t22 change reasons are created.')
예제 #21
0
def import_rules_history_done_timely_trades_between_last_3_to_12_months_h7(ds: DataService):
    # define History(H)' rules of done_timely_trades_between_last_3_to_12_months master: level 2
    rule = create_new_rule(2, 'H', 'H7', 'تعداد تعاملات موفق در ۳ تا ۱۲ ماه گذشته', 4.44, 40)
    ds.insert_rule(rule)

    # define History(H)' rules of done_timely_trades_of_last_3_months details: level 3
    # Last1YSD = 0	00	H0701P0	کاربر در یکسال گذشته هیچ تعامل موفقی با سایر کاربران نداشته است
    rule = create_new_rule(3, 'H7', 'H0701P0', 'کاربر در یکسال گذشته هیچ تعامل موفقی با سایر کاربران نداشته است', 0, 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # Last1YSD = 1	05	H0702P05	کاربر در یکسال گذشته 1 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H7', 'H0702P05', 'کاربر در یکسال گذشته 1 تعامل موفق با سایر کاربران داشته است', 0.56, 5, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 <= Last1YSD ≤ 3	10	H0703P10	کاربر در یکسال گذشته بین 2 تا 3 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H7', 'H0703P10', 'کاربر در یکسال گذشته بین 2 تا 3 تعامل موفق با سایر کاربران داشته است', 1.11, 10, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= Last1YSD ≤ 6	20	H0704P20	کاربر در یکسال گذشته بین 4 تا 6 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H7', 'H0704P20', 'کاربر در یکسال گذشته بین 4 تا 6 تعامل موفق با سایر کاربران داشته است', 2.22, 20, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= Last1YSD ≤ 10	30	H0705P30	کاربر در یکسال گذشته بین 7 تا 10 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H7', 'H0705P30', 'کاربر در یکسال گذشته بین 7 تا 10 تعامل موفق با سایر کاربران داشته است', 3.33, 30, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Last1YSD >= 11	40	H0706P40	کاربر در یکسال گذشته بیش از 10 تعامل موفق با سایر کاربران داشته است
    rule = create_new_rule(3, 'H7', 'H0706P40', 'کاربر در یکسال گذشته بیش از 10 تعامل موفق با سایر کاربران داشته است', 4.44, 40, 11,
                           rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) done_timely_trades_between_last_3_to_12_months_h7 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: H7_RULES_DONE_TIMELY_TRADES_BETWEEN_LAST_3_TO_12_MONTHS})
    change_reason = create_new_score_reason(H7_RULES_DONE_TIMELY_TRADES_BETWEEN_LAST_3_TO_12_MONTHS, rule_codes, 'افزایش معاملات موفق در یک سال گذشته', 'کاهش معاملات موفق در یک سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Histories(H) done_timely_trades_between_last_3_to_12_months_h7 change reasons are created.')
예제 #22
0
def import_rules_timeliness_done_arrear_trades_between_last_3_to_12_months_t25(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T25', 'تعداد تعاملات معوق (بیش از 30 روز تاخیر) خاتمه یافته در ۳ تا ۱۲ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # 0 <= A30DayDelay3-12M <= 0  20	T2501P20	کاربر در یکسال گذشته هیچ تعامل معوقی نداشته است
    rule = create_new_rule(3, 'T25', 'T2501P20', 'کاربر در یکسال گذشته هیچ تعامل معوقی نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # 1 <= A30DayDelay3-12M <= 1  05	T2502P5 	کاربر در یکسال گذشته 1 تعامل معوق داشته است
    rule = create_new_rule(3, 'T25', 'T2502P5', 'کاربر در یکسال گذشته 1 تعامل معوق داشته است', 0.65, 5, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 <= A30DayDelay3-12M ≤ 3	 -05	T2503N5 	کاربر در یکسال گذشته بین 2 تا 3 تعامل معوق داشته است
    rule = create_new_rule(3, 'T25', 'T2503N5', 'کاربر در یکسال گذشته بین 2 تا 3 تعامل معوق داشته است', 0.65, -5, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= A30DayDelay3-12M ≤ 6	 -10	T2504N10	کاربر در یکسال گذشته بین 4 تا 6 تعامل معوق داشته است
    rule = create_new_rule(3, 'T25', 'T2504N10', 'کاربر در یکسال گذشته بین 4 تا 6 تعامل معوق داشته است', 1.30, -10, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= A30DayDelay3-12M ≤ 10 -20	T2505N20	کاربر در یکسال گذشته بین 7 تا 10 تعامل معوق داشته است
    rule = create_new_rule(3, 'T25', 'T2505N20', 'کاربر در یکسال گذشته بین 7 تا 10 تعامل معوق داشته است', 2.59, -20, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 11 <= A30DayDelay3-12M <= 999	-30	T2506N30	کاربر در یکسال گذشته بیش از 10 تعامل معوق داشته است
    rule = create_new_rule(3, 'T25', 'T2506N30', 'کاربر در یکسال گذشته 10 تعامل معوق داشته است', 3.89, -30, 11, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) arrear_trades_between_last_3_to_12_months_t25 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T25_RULES_DONE_ARREAR_TRADES_BETWEEN_LAST_3_TO_12_MONTHS})
    change_reason = create_new_score_reason(T25_RULES_DONE_ARREAR_TRADES_BETWEEN_LAST_3_TO_12_MONTHS, rule_codes, 'کاهش تعداد معاملات معوق خاتمه یافته در یک سال گذشته', 'افزایش تعداد معاملات معوق خاتمه یافته در یک سال گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) arrear_trades_between_last_3_to_12_months_t25 change reasons are created.')
예제 #23
0
def import_rules_timeliness_done_trades_average_delay_days_ratios_t28(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T28', 'نسبت میانگین تاخیر تعاملات کاربر به میانگین تاخیر سایر کاربران', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # AverageDelayRatio = 0	20	T2801P20	کاربر در انجام تعاملات تاخیر نداشته است
    rule = create_new_rule(3, 'T28', 'T2801P20', 'کاربر در انجام تعاملات تاخیر نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # 0.001 <= AverageDelayRatio ≤ 0.5	10	T2802P10	نسبت بین 0.001 و 0.5 می‌باشد
    rule = create_new_rule(3, 'T28', 'T2802P10', 'نسبت بین 0.001 و 0.5 می‌باشد', 1.30, 10, 0.001, 0.5)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 0.501 <= AverageDelayRatio ≤ 1	00	T2803P0	نسبت بین 0.501 و 1 می‌باشد
    rule = create_new_rule(3, 'T28', 'T2803P0', 'نسبت بین 0.501 و 1 می‌باشد', 0, 0, 0.501, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 1.001 <= AverageDelayRatio ≤ 1.5	-10	T2804N10	نسبت بین 1.001 و 1.5 می‌باشد
    rule = create_new_rule(3, 'T28', 'T2804N10', 'نسبت بین 1.001 و 1.5 می‌باشد', 1.30, -10, 1.001, 1.5)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 1.501 <= AverageDelayRatio ≤ 2	-20	T2805N20	نسبت بین 1.501 و 2 می‌باشد
    rule = create_new_rule(3, 'T28', 'T2805N20', 'نسبت بین 1.501 و 2 می‌باشد', 2.59, -20, 1.501, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # AverageDelayRatio >= 2.001	-30	T2806N30	نسبت بیش از 2 می‌باشد
    rule = create_new_rule(3, 'T28', 'T2806N30', 'نسبت بیش از 2 می‌باشد', 3.89, -30, 2.001, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) done_trades_average_delay_days_ratios_t28 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T28_RULES_DONE_TRADES_AVERAGE_DELAY_DAYS})
    change_reason = create_new_score_reason(T28_RULES_DONE_TRADES_AVERAGE_DELAY_DAYS, rule_codes, 'کاهش تاخیر کاربر در انجام معاملات نسبت به سایر کاربران', 'افزایش تاخیر کاربر در انجام معاملات نسبت به سایر کاربران')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) done_trades_average_delay_days_ratios_t28 change reasons are created.')
예제 #24
0
def import_rules_history_recommended_to_others_counts_h8(ds: DataService):
    # define History(H)' rules of recommended_to_others_counts master: level 2
    rule = create_new_rule(2, 'H', 'H8', 'پیشنهاد شدن کاربر به سایرین جهت انجام تعامل پس از انجام موفقیت آمیز تعامل', 4.44, 40)
    ds.insert_rule(rule)

    # define History(H)' rules of recommended_to_others_counts details: level 3
    # Recommendation = 0	00	H0801P0	کاربر توسط کسی پیشنهاد نشده است
    rule = create_new_rule(3, 'H8', 'H0801P0', 'کاربر توسط کسی پیشنهاد نشده است', 0, 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # Recommendation = 1	10	H0802P10	پیشنهاد شده توسط 1 نفر
    rule = create_new_rule(3, 'H8', 'H0802P10', 'پیشنهاد شده توسط 1 نفر', 1.11, 10, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 < Recommendation ≤ 3	20	H0803P20	پیشنهاد شده توسط 2 تا 3 نفر
    rule = create_new_rule(3, 'H8', 'H0803P20', 'پیشنهاد شده توسط 2 تا 3 نفر', 2.22, 20, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 < Recommendation ≤ 10	30	H0804P30	پیشنهاد شده توسط 4 تا 10 نفر
    rule = create_new_rule(3, 'H8', 'H0804P30', 'پیشنهاد شده توسط 4 تا 10 نفر', 3.33, 30, 4, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 11 < Recommendation ≤ 30	40	H0805P40	پیشنهاد شده توسط 11 تا 30 نفر
    rule = create_new_rule(3, 'H8', 'H0805P40', 'پیشنهاد شده توسط 11 تا 30 نفر', 4.44, 40, 11, 30)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # Recommendation > 30	50	H0806P50	پیشنهاد شده توسط بیش از 30 نفر
    rule = create_new_rule(3, 'H8', 'H0806P50', 'پیشنهاد شده توسط بیش از 30 نفر', 5.56, 50, 30, rules_max_val)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) recommended_to_others_counts_h8 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: H8_RULES_PROFILE_RECOMMENDED_TO_OTHERS_COUNTS})
    change_reason = create_new_score_reason(H8_RULES_PROFILE_RECOMMENDED_TO_OTHERS_COUNTS, rule_codes, 'افزایش پیشنهادات طرفین معاملات به سایرین جهت انجام معامله با شما', 'کاهش پیشنهادات طرفین معاملات به سایرین جهت انجام معامله با شما')
    ds.insert_score_reason(change_reason)
    print('Histories(H) recommended_to_others_counts_h8 change reasons are created.')
예제 #25
0
def import_rules_timeliness_done_arrear_trades_of_last_3_months_t24(ds: DataService):
    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months master: level 2
    rule = create_new_rule(2, 'T', 'T24', 'تعداد تعاملات معوق (بیش از 30 روز تاخیر) خاتمه یافته در ۳ ماه گذشته', 2.59, 20)
    ds.insert_rule(rule)

    # define Timeliness(T)' rules of done_arrear_trades_of_last_3_months details: level 3
    # A30DayDelayLast3M = 0	20	T2401P20	کاربر در سه ماه گذشته هیچ تعامل معوقی نداشته است
    rule = create_new_rule(3, 'T24', 'T2401P20', 'کاربر در سه ماه گذشته هیچ تعامل معوقی نداشته است', 2.59, 20, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # A30DayDelayLast3M = 1	00	T2402P0	کاربر در سه ماه گذشته 1 تعامل معوق داشته است
    rule = create_new_rule(3, 'T24', 'T2402P0', 'کاربر در سه ماه گذشته 1 تعامل معوق داشته است', 0, 0, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 2 <= A30DayDelayLast3M ≤ 3	-10	T2403N10	کاربر در سه ماه گذشته بین 2 تا 3 تعامل معوق داشته است
    rule = create_new_rule(3, 'T24', 'T2403N10', 'کاربر در سه ماه گذشته بین 2 تا 3 تعامل معوق داشته است', 1.30, -10, 2, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 4 <= A30DayDelayLast3M ≤ 6	-20	T2404N20	کاربر در سه ماه گذشته بین 4 تا 6 تعامل معوق داشته است
    rule = create_new_rule(3, 'T24', 'T2404N20', 'کاربر در سه ماه گذشته بین 4 تا 6 تعامل معوق داشته است', 2.59, -20, 4, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= A30DayDelayLast3M ≤ 10	-30	T2405N30	کاربر در سه ماه گذشته بین 7 تا 10 تعامل معوق داشته است
    rule = create_new_rule(3, 'T24', 'T2405N30', 'کاربر در سه ماه گذشته بین 7 تا 10 تعامل معوق داشته است', 3.89, -30, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 11 <= A30DayDelayLast3M <= 999 -40 T2406N40	کاربر در سه ماه گذشته بیش از 10 تعامل معوق داشته است
    rule = create_new_rule(3, 'T24', 'T2406N40', 'کاربر در سه ماه گذشته بیش از 10 تعامل معوق داشته است', 5.19, -40, 11, 999)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Timeliness(T) done_arrear_trades_of_last_3_months_t24 rules are created.')
    ds.delete_score_reasons({RULE_MASTER_CODE: T24_RULES_DONE_ARREAR_TRADES_OF_LAST_3_MONTHS})
    change_reason = create_new_score_reason(T24_RULES_DONE_ARREAR_TRADES_OF_LAST_3_MONTHS, rule_codes, 'کاهش تعداد معاملات معوق خاتمه یافته در سه ماه گذشته', 'افزایش تعداد معاملات معوق خاتمه یافته در سه ماه گذشته')
    ds.insert_score_reason(change_reason)
    print('Timeliness(T) done_arrear_trades_of_last_3_months_t24 change reasons are created.')
예제 #26
0
def import_rules_identity_military_service_status_i2(ds: DataService):
    # define Identities(I)' rules of military_service master: level 2
    rule = create_new_rule(2, 'I', 'I2', 'خدمت وظیفه عمومی', 2)
    ds.insert_rule(rule)

    # define Identities(I)' rules of military_service details: level 3
    # MilServiceFinished/Exempted/Ongoing	20  2%	I0201P20	پایان خدمت
    rule = create_new_rule(3, 'I2', 'I0201P20', 'پایان خدمت', 2, 20,
                           ProfileMilitaryServiceStatusEnum.FINISHED.value)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # MilServiceFinished/Exempted/Ongoing	20  2%	I0202P20	 معافیت
    rule = create_new_rule(3, 'I2', 'I0202P20', 'معافیت', 2, 20,
                           ProfileMilitaryServiceStatusEnum.EXEMPTED.value)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # MilServiceFinished/Exempted/Ongoing	20  2%	I0203P20	در حال خدمت
    rule = create_new_rule(3, 'I2', 'I0203P20', 'در حال خدمت', 2, 20,
                           ProfileMilitaryServiceStatusEnum.ONGOING.value)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # MilServiceSubjected	00	I0204P0     0%	مشمول غیر غایب
    rule = create_new_rule(3, 'I2', 'I0204P0', 'مشمول غیر غایب', 2, 20,
                           ProfileMilitaryServiceStatusEnum.SUBJECTED.value)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # MilServiceAbsent	-50	I0205N50        -5% 	غایب
    rule = create_new_rule(3, 'I2', 'I0205N50', 'غایب', 5, -50,
                           ProfileMilitaryServiceStatusEnum.ABSENT.value)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Identities(I) military_service_status_i2 rules are created.')
    ds.delete_score_reasons(
        {RULE_MASTER_CODE: I2_RULES_PROFILE_MILITARY_SERVICE_STATUS})
    change_reason = create_new_score_reason(
        I2_RULES_PROFILE_MILITARY_SERVICE_STATUS, rule_codes,
        'بهبود وضعیت خدمت وظیفه عمومی', 'تنزل وضعیت خدمت وظیفه عمومی')
    ds.insert_score_reason(change_reason)
    print(
        'Identities(I) military_service_status_i2 change reasons are created.')
예제 #27
0
def import_rules_history_undone_undue_trades_counts_h10(ds: DataService):
    # define History(H)' rules of undone_undue_trades_counts master: level 2
    rule = create_new_rule(2, 'H', 'H10', 'تعداد تعاملات جاری سررسید نشده', 1.11, 10)
    ds.insert_rule(rule)

    # define History(H)' rules of undone_undue_trades_counts details: level 3
    # NumNotDueDeal = 0 00 	H1001P0	کاربر تعامل سررسید نشده ندارد
    rule = create_new_rule(3, 'H10', 'H1001P0', 'کاربر تعامل سررسید نشده ندارد', 0, 0, 0, 0)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # NumNotDueDeal = 1 02	H1002P2	کاربر 1 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1002P2', 'کاربر 1 تعامل سررسید نشده دارد', 0.22, 2, 1, 1)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # NumNotDueDeal = 2	05	H1003P5	کاربر 2 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1003P5', 'کاربر 2 تعامل سررسید نشده دارد', 0.56, 5, 2, 2)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # NumNotDueDeal = 3	7	H1004P7	کاربر 3 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1004P7', 'کاربر 3 تعامل سررسید نشده دارد', 0.78, 7, 3, 3)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # NumNotDueDeal = 4	10	H1005P10	کاربر 4 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1005P10', 'کاربر 4 تعامل سررسید نشده دارد', 1.11, 10, 4, 4)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    ds.delete_score_reasons({RULE_MASTER_CODE: H10_RULES_UNDONE_UNDUE_TRADES_COUNTS})
    change_reason = create_new_score_reason(H10_RULES_UNDONE_UNDUE_TRADES_COUNTS, rule_codes, 'افزایش امکان سنجش رفتار اعتباری کاربر از طریق افزایش معاملات جاری', 'کاهش امکان سنجش رفتار اعتباری کاربر به دلیل کاهش معاملات جاری')
    ds.insert_score_reason(change_reason)
    print('Histories(H) undone_undue_trades_counts_h10 part1 change reasons are created.')

    # NumNotDueDeal = 5	03	H1006P3	کاربر 5 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1006P3', 'کاربر 5 تعامل سررسید نشده دارد', 0.33, 3, 5, 5)
    ds.insert_rule(rule)
    rule_codes: List[str] = [rule.code]

    # NumNotDueDeal = 6	-1	H1007N1	کاربر 6 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1007N1', 'کاربر 6 تعامل سررسید نشده دارد', 0.11, -1, 6, 6)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 7 <= NumNotDueDeal ≤ 10	-10	H1008N10	کاربر بین 7 تا 10 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1008N10', 'کاربر بین 7 تا 10 تعامل سررسید نشده دارد', 1.11, -10, 7, 10)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 11 <= NumNotDueDeal ≤ 20	-20	H1009N20	کاربر بین 11 تا 20 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1009N20', 'کاربر بین 11 تا 20 تعامل سررسید نشده دارد', 2.22, -20, 11, 20)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # 21 <= NumNotDueDeal ≤ 30	-30	H1010N30	کاربر بین 21 تا 30 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1010N30', 'کاربر بین 21 تا 30 تعامل سررسید نشده دارد', 3.33, -30, 21, 30)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)

    # NotDueDeal >= 31	-50	H1011N50	کاربر بیش از 30 تعامل سررسید نشده دارد
    rule = create_new_rule(3, 'H10', 'H1011N50', 'کاربر بیش از 30 تعامل سررسید نشده دارد', 5.56, -50, 31, 999)
    ds.insert_rule(rule)
    rule_codes.append(rule.code)
    print('Histories(H) undone_undue_trades_counts_h10 rules are created.')
    change_reason = create_new_score_reason(H10_RULES_UNDONE_UNDUE_TRADES_COUNTS, rule_codes, 'کاهش تعداد معاملات جاری', 'افزایش بیش از حد تعداد معاملات جاری')
    ds.insert_score_reason(change_reason)
    print('Histories(H) undone_undue_trades_counts_h10 part2 change reasons are created.')