import dbf


def loss_cat_map(loss_cat):
    """Doc string gmissing."""
    loss_categories = {
        'coll': 'C',
        'comp': 'M',
        'pd': 'P'
    }

    return loss_categories[loss_cat]


def add_one_values():
    """Doc string missing."""
    return {
        'INS_CO_NM': 'ACD',
        'INS_CTRY': 'USA',
        'DED_AMT': 0.00,
        'ASGN_DATE': dbf.Date(1979, 9, 13),
        'CLM_NO': 'TEST_CLAIM_1',
        'LOSS_DATE': dbf.Date(1979, 9, 13),
        'LOSS_CAT': loss_cat_map('coll'),
        'CUST_PR': 'I',  # ['insured_or_claimant']=='insured'?'I':'C';
        'INSD_LN': 'LOPEZ',
        'INSD_FN': 'RENE',
        'INSD_ADDR1': '11397 HELEN RICHARDS ROAD',
        'INSD_ADDR2': '10000 HELEN RICHARDS ROAD',
        'INSD_CITY': 'PLANO',
        'INSD_ST': 'TX',
        'INSD_ZIP': '75025',
        'OWNR_LN': 'DOE',
        'OWNR_FN': 'JOHN',
        'OWNR_CO_NM': 'ACD',
        'OWNR_ADDR1': '6023 Ellis Valley',
        'OWNR_ADDR2': 'Suite 265',
        'OWNR_CITY': 'San Francisco',
        'OWNR_ST': 'CA',
        'OWNR_ZIP': '75070',
        'OWNR_PH1': '4692985711',
        'OWNR_PH2': '4692985711',
        'OWNR_FAX': None,
        'THEFT_IND': None,
        'TLOS_IND': None,
        'PAY_DATE': dbf.Date(1979, 9, 13),
        'PAY_AMT': 0.00
    }


ADDRESS_1_FIELDS = {
    'INS_CO_ID C(5)': '',
    'INS_CO_NM C(35)': add_one_values()['INS_CO_NM'],
    'INS_ADDR1 C(40)': '',
    'INS_ADDR2 C(40)': '',
    'INS_CITY C(30)': '',
    'INS_ST C(2)': '',
    'INS_ZIP C(11)': '',
    'INS_CTRY C(3)': add_one_values()['INS_CTRY'],
    'INS_PH1 C(10)': '',
    'INS_PH1X C(8)': '',
    'INS_PH2 C(10)': '',
    'INS_PH2X C(8)': '',
    'INS_FAX C(10)': '',
    'INS_FAXX C(8)': '',
    'INS_CT_LN C(35)': '',
    'INS_CT_FN C(35)': '',
    'INS_TITLE C(35)': '',
    'INS_CT_PH C(10)': '',
    'INS_CT_PHX C(8)': '',
    'INS_EA C(80)': '',
    'INS_MEMO C(10)': '',
    'POLICY_NO C(30)': '',
    'DED_AMT N(9,2)': add_one_values()['DED_AMT'],
    'DED_STATUS C(2)': '',
    'ASGN_NO C(25)': '',
    'ASGN_DATE C(8)': '',
    'ASGN_TYPE C(1)': '',
    'CLM_NO C(30)': add_one_values()['CLM_NO'],
    'CLM_OFC_ID C(5)': '',
    'CLM_OFC_NM C(35)': '',
    'CLM_ADDR1 C(40)': '',
    'CLM_ADDR2 C(40)': '',
    'CLM_CITY C(30)': '',
    'CLM_ST C(2)': '',
    'CLM_ZIP C(11)': '',
    'CLM_CTRY C(3)': '',
    'CLM_PH1 C(10)': '',
    'CLM_PH1X C(8)': '',
    'CLM_PH2 C(10)': '',
    'CLM_PH2X C(8)': '',
    'CLM_FAX C(10)': '',
    'CLM_FAXX C(8)': '',
    'CLM_CT_LN C(35)': '',
    'CLM_CT_FN C(35)': '',
    'CLM_TITLE C(35)': '',
    'CLM_CT_PH C(10)': '',
    'CLM_CT_PHX C(8)': '',
    'CLM_EA C(80)': '',
    'PAYEE_NMS C(85)': '',
    'PAY_TYPE C(2)': '',
    'PAY_DATE D': add_one_values()['PAY_DATE'],
    'PAY_CHKNM C(16)': '',
    'PAY_AMT N(10,2)': add_one_values()['PAY_AMT'],
    'PAY_MEMO C(10)': '',
    'AGT_CO_ID C(5)': '',
    'AGT_CO_NM C(35)': '',
    'AGT_ADDR1 C(40)': '',
    'AGT_ADDR2 C(40)': '',
    'AGT_CITY C(30)': '',
    'AGT_ST C(2)': '',
    'AGT_ZIP C(11)': '',
    'AGT_CTRY C(3)': '',
    'AGT_PH1 C(10)': '',
    'AGT_PH1X C(8)': '',
    'AGT_PH2 C(10)': '',
    'AGT_PH2X C(8)': '',
    'AGT_FAX C(10)': '',
    'AGT_FAXX C(8)': '',
    'AGT_CT_LN C(35)': '',
    'AGT_CT_FN C(35)': '',
    'AGT_CT_PH C(10)': '',
    'AGT_CT_PHX C(8)': '',
    'AGT_EA C(80)': '',
    'AGT_LIC_NO C(30)': '',
    'LOSS_DATE D': add_one_values()['LOSS_DATE'],
    'LOSS_CAT C(1)': add_one_values()['LOSS_CAT'],
    'LOSS_TYPE C(7)': '',
    'LOSS_DESC C(38)': '',
    'THEFT_IND L': add_one_values()['THEFT_IND'],
    'CAT_NO C(30)': '',
    'TLOS_IND L': add_one_values()['TLOS_IND'],
    'LOSS_MEMO C(10)': '',
    'CUST_PR C(1)': add_one_values()['CUST_PR'],
    'INSD_LN C(35)': add_one_values()['INSD_LN'],
    'INSD_FN C(35)': add_one_values()['INSD_FN'],
    'INSD_TITLE C(2)': '',
    'INSD_CO_NM C(35)': '',
    'INSD_ADDR1 C(40)': add_one_values()['INSD_ADDR1'],
    'INSD_ADDR2 C(40)': add_one_values()['INSD_ADDR2'],
    'INSD_CITY C(30)': add_one_values()['INSD_CITY'],
    'INSD_ST C(2)': add_one_values()['INSD_ST'],
    'INSD_ZIP C(11)': add_one_values()['INSD_ZIP'],
    'INSD_CTRY C(3)': '',
    'INSD_PH1 C(10)': '',
    'INSD_PH1X C(8)': '',
    'INSD_PH2 C(10)': '',
    'INSD_PH2X C(8)': '',
    'INSD_FAX C(10)': '',
    'INSD_FAXX C(8)': '',
    'INSD_EA C(80)': '',
    'OWNR_LN C(35)': add_one_values()['OWNR_LN'],
    'OWNR_FN C(35)': add_one_values()['OWNR_FN'],
    'OWNR_TITLE C(2)': '',
    'OWNR_CO_NM C(35)': add_one_values()['OWNR_CO_NM'],
    'OWNR_ADDR1 C(40)': add_one_values()['OWNR_ADDR1'],
    'OWNR_ADDR2 C(40)': add_one_values()['OWNR_ADDR2'],
    'OWNR_CITY C(30)': add_one_values()['OWNR_CITY'],
    'OWNR_ST C(2)': add_one_values()['OWNR_ST'],
    'OWNR_ZIP C(11)': add_one_values()['OWNR_ZIP'],
    'OWNR_CTRY C(3)': '',
    'OWNR_PH1 C(10)': add_one_values()['OWNR_PH1'],
    'OWNR_PH1X C(8)': '',
    'OWNR_PH2 C(10)': add_one_values()['OWNR_PH2'],
    'OWNR_PH2X C(8)': '',
    'OWNR_FAX C(10)': add_one_values()['OWNR_FAX'],
    'OWNR_FAXX C(8)': '',
    'OWNR_EA C(80)': '',
}


def add_two_values():
    """Doc string missing."""
    return {
        'EST_CO_NM': 'AUTOCLAIMS DIRECT',
        'LOC_NM': 'ALLEN TOYOTA',  # veh location
        'LOC_PH1': '2288968220',  # veh location
        'LOC_ADDR1': '11397 HELEN RICHARDS ROAD',  # veh location
        'LOC_ADDR2': 'SUITE B',  # veh location
        'LOC_CITY': 'GULFPORT',  # veh location
        'LOC_STATE': 'MS',  # veh location
        'LOC_ZIP': '39503',  # veh location
        'INSP_DATE': dbf.Date(1979, 9, 13),
        'RO_IN_DATE': dbf.Date(1979, 9, 13),
        'TAR_DATE': dbf.Date(1979, 9, 13),
        'RO_CMPDATE': dbf.Date(1979, 9, 13),
        'DATE_OUT': dbf.Date(1979, 9, 13),
        'CLMT_LN': '',  # 'SPINELLI  JR.',
        'CLMT_FN': '',  # 'DINO',
        'CLMT_ADDR1': '',  # 'P O BOX 288',
        'CLMT_ADDR2': '',  # 'P O BOX 288',
        'CLMT_CITY': '',  # 'ADAMS CENTER',
        'CLMT_ST': '',  # 'NY',
        'CLMT_ZIP': '',  # '13606',
        'CLMT_PH1': '',  # '6097740509',  # mobile
        'CLMT_PH2': '',  # '3157834542'  # home
    }


ADDRESS_2_FIELDS = {  # should only be populated if owner  type is claimant
    'CLMT_LN C(35)': add_two_values()['CLMT_LN'],
    'CLMT_FN C(35)': add_two_values()['CLMT_FN'],
    'CLMT_TITLE C(2)': '',
    'CLMT_CO_NM C(35)': '',
    'CLMT_ADDR1 C(40)': add_two_values()['CLMT_ADDR1'],
    'CLMT_ADDR2 C(40)': add_two_values()['CLMT_ADDR2'],
    'CLMT_CITY C(30)': add_two_values()['CLMT_CITY'],
    'CLMT_ST C(2)': add_two_values()['CLMT_ST'],
    'CLMT_ZIP C(11)': add_two_values()['CLMT_ZIP'],
    'CLMT_CTRY C(3)': '',
    'CLMT_PH1 C(10)': add_two_values()['CLMT_PH1'],
    'CLMT_PH1X C(8)': '',
    'CLMT_PH2 C(10)': add_two_values()['CLMT_PH2'],
    'CLMT_PH2X C(8)': '',
    'CLMT_FAX C(10)': '',
    'CLMT_FAXX C(8)': '',
    'CLMT_EA C(80)': '',
    'EST_CO_ID C(5)': '',
    'EST_CO_NM C(35)': add_two_values()['EST_CO_NM'],
    'EST_ADDR1 C(40)': '',
    'EST_ADDR2 C(40)': '',
    'EST_CITY C(30)': '',
    'EST_ST C(2)': '',
    'EST_ZIP C(11)': '',
    'EST_CTRY C(3)': '',
    'EST_PH1 C(10)': '',
    'EST_PH1X C(8)': '',
    'EST_PH2 C(10)': '',
    'EST_PH2X C(8)': '',
    'EST_FAX C(10)': '',
    'EST_FAXX C(8)': '',
    'EST_CT_LN C(35)': '',
    'EST_CT_FN C(35)': '',
    'EST_EA C(80)': '',
    'EST_LIC_NO C(30)': '',
    'EST_FILENO C(25)': '',
    'INSP_CT_LN C(35)': '',
    'INSP_CT_FN C(35)': '',
    'INSP_ADDR1 C(40)': '',
    'INSP_ADDR2 C(40)': '',
    'INSP_CITY C(30)': '',
    'INSP_ST C(2)': '',
    'INSP_ZIP C(11)': '',
    'INSP_CTRY C(3)': '',
    'INSP_PH1 C(10)': '',
    'INSP_PH1X C(8)': '',
    'INSP_PH2 C(10)': '',
    'INSP_PH2X C(8)': '',
    'INSP_FAX C(10)': '',
    'INSP_FAXX C(8)': '',
    'INSP_EA C(80)': '',
    'INSP_CODE C(4)': '',
    'INSP_DESC C(40)': '',
    'INSP_DATE D': add_two_values()['INSP_DATE'],
    'INSP_TIME C(4)': '',
    'RF_CO_ID C(5)': '',
    'RF_CO_NM C(35)': '',
    'RF_ADDR1 C(40)': '',
    'RF_ADDR2 C(40)': '',
    'RF_CITY C(30)': '',
    'RF_ST C(2)': '',
    'RF_ZIP C(11)': '',
    'RF_CTRY C(3)': '',
    'RF_PH1 C(10)': '',
    'RF_PH1X C(8)': '',
    'RF_PH2 C(10)': '',
    'RF_PH2X C(8)': '',
    'RF_FAX C(10)': '',
    'RF_FAXX C(8)': '',
    'RF_CT_LN C(35)': '',
    'RF_CT_FN C(35)': '',
    'RF_EA C(80)': '',
    'RF_TAX_ID C(30)': '',
    'RF_LIC_NO C(30)': '',
    'RF_BAR_NO C(30)': '',
    'RO_IN_DATE D': add_two_values()['RO_IN_DATE'],
    'RO_IN_TIME C(4)': '',
    'RO_AUTH C(10)': '',
    'TAR_DATE D': add_two_values()['TAR_DATE'],
    'TAR_TIME C(4)': '',
    'RO_CMPDATE D': add_two_values()['RO_CMPDATE'],
    'RO_CMPTIME C(4)': '',
    'DATE_OUT D': add_two_values()['DATE_OUT'],
    'TIME_OUT C(4)': '',
    'RF_ESTIMTR C(35)': '',
    'MKTG_TYPE C(2)': '',
    'MKTG_SRC C(35)': '',
    'LOC_NM C(35)': '',
    'LOC_ADDR1 C(40)': '',
    'LOC_ADDR2 C(40)': '',
    'LOC_CITY C(30)': '',
    'LOC_ST C(2)': '',
    'LOC_ZIP C(11)': '',
    'LOC_CTRY C(3)': '',
    'LOC_PH1 C(10)': '',
    'LOC_PH1X C(8)': '',
    'LOC_PH2 C(10)': '',
    'LOC_PH2X C(8)': '',
    'LOC_FAX C(10)': '',
    'LOC_FAXX C(8)': '',
    'LOC_CT_LN C(35)': '',
    'LOC_CT_FN C(35)': '',
    'LOC_TITLE C(35)': '',
    'LOC_PH C(10)': '',
    'LOC_PHX C(8)': '',
    'LOC_EA C(80)': ''
}
