from google.cloud import ndb, datastore


class EmCarsDailyRpt(ndb.Model):
    res_sys_no_obd = ndb.StringProperty(required=True)
    lic_st_id = ndb.StringProperty()
    ets_id = ndb.StringProperty()
    etnj2_sw_ver = ndb.StringProperty()
    vin = ndb.StringProperty()
    vin_src = ndb.StringProperty()
    vehicle_vin = ndb.StringProperty()
    vehicle_vin_src = ndb.StringProperty()
    obd2_vin_obd = ndb.StringProperty(required=True)
    vin_mask = ndb.StringProperty()
    lic_no_obd = ndb.StringProperty(required=True)
    lic_jur_obd = ndb.StringProperty(required=True)
    lic_src = ndb.StringProperty()
    model_yr_obd = ndb.IntegerProperty(required=True)
    make_obd = ndb.StringProperty(required=True)
    model_obd = ndb.StringProperty(required=True)
    gvwr = ndb.StringProperty()
    no_of_cyl = ndb.IntegerProperty()
    eng_size = ndb.IntegerProperty()
    trans_type = ndb.StringProperty()
    fuel_cd = ndb.StringProperty()
    vid_sys_no = ndb.IntegerProperty()
    curr_odo_rdng_obd = ndb.IntegerProperty(required=True)
    prev_odo_rdng_obd = ndb.IntegerProperty(required=True)
    mvc_reg_code = ndb.StringProperty()
    mvc_vehicle_type_code = ndb.StringProperty()
    test_type = ndb.StringProperty()
    start_time_obd = ndb.DateTimeProperty()
    end_time_obd = ndb.DateTimeProperty()
    create_date_obd = ndb.DateTimeProperty()
    prev_test_date = ndb.DateTimeProperty()
    emiss_test_type = ndb.StringProperty()
    primary_emiss_test_code = ndb.StringProperty()
    bulb_check_res = ndb.StringProperty()
    chk_eng_light_on_obd = ndb.StringProperty(required=True)
    indicator_light_result = ndb.StringProperty()
    exempt_from_obd = ndb.StringProperty()
    obd_bypassed = ndb.StringProperty()
    bypass_obd_allowed = ndb.StringProperty()
    obd2_connect_res = ndb.StringProperty()
    communic_res = ndb.StringProperty()
    obd = ndb.StringProperty()
    obd2_test_fl = ndb.StringProperty()
    pcm_mudule_id = ndb.StringProperty()
    obd_module_id_2 = ndb.StringProperty()
    obd_module_id_3 = ndb.StringProperty()
    obd_type = ndb.StringProperty()
    obd_calid = ndb.StringProperty()
    obd_cvn = ndb.IntegerProperty()
    cvn_exclusion = ndb.StringProperty()
    pid_count_obd = ndb.IntegerProperty(required=True)
    obd_pid00_obd = ndb.StringProperty(required=True)
    obd_pid20_obd = ndb.StringProperty(required=True)
    obd_pid40_obd = ndb.StringProperty(required=True)
    obd_rpm_obd = ndb.IntegerProperty(required=True)
    rpm_exclusion = ndb.IntegerProperty()
    misfire_mon_res_obd = ndb.StringProperty(required=True)
    fuel_sys_mon_res_obd = ndb.StringProperty(required=True)
    comp_cmpnt_res_obd = ndb.StringProperty(required=True)
    catalyst_mon_res_obd = ndb.StringProperty(required=True)
    heat_cat_mon_res_obd = ndb.StringProperty(required=True)
    evap_sys_mon_res_obd = ndb.StringProperty(required=True)
    sec_air_sys_mon_res_obd = ndb.StringProperty(required=True)
    air_cond_mon_res_obd = ndb.StringProperty(required=True)
    oxy_sens_mon_res_obd = ndb.StringProperty(required=True)
    htd_oxy_sns_mon_res_obd = ndb.StringProperty(required=True)
    egr_sys_mon_res_obd = ndb.StringProperty(required=True)
    rdy_mon_obd = ndb.IntegerProperty(required=True)
    tot_unset_rdy_mon = ndb.IntegerProperty()
    readiness_status = ndb.StringProperty()
    continuous_monit_xclusion = ndb.StringProperty()
    exempt_from_readiness = ndb.StringProperty()
    mil_command_stat = ndb.StringProperty()
    dtc1_obd = ndb.StringProperty(required=True)
    dtc2_obd = ndb.StringProperty(required=True)
    dtc3_obd = ndb.StringProperty(required=True)
    dtc4_obd = ndb.StringProperty(required=True)
    dtc5_obd = ndb.StringProperty(required=True)
    dtc6_obd = ndb.StringProperty(required=True)
    dtc7_obd = ndb.StringProperty(required=True)
    dtc8_obd = ndb.StringProperty(required=True)
    dtc9_obd = ndb.StringProperty(required=True)
    dtc10_obd = ndb.StringProperty(required=True)
    tot_stored_dtcs_obd = ndb.IntegerProperty(required=True)
    catalyst_dtc_pres_obd = ndb.StringProperty(required=True)
    pend_dtc1_obd = ndb.StringProperty(required=True)
    pend_dtc2_obd = ndb.StringProperty(required=True)
    pend_dtc3_obd = ndb.StringProperty(required=True)
    pend_dtc4_obd = ndb.StringProperty(required=True)
    pend_dtc5_obd = ndb.StringProperty(required=True)
    pend_dtc6_obd = ndb.StringProperty(required=True)
    pend_dtc7_obd = ndb.StringProperty(required=True)
    pend_dtc8_obd = ndb.StringProperty(required=True)
    pend_dtc9_obd = ndb.StringProperty(required=True)
    pend_dtc10_obd = ndb.StringProperty(required=True)
    cat_retest_exclusion = ndb.StringProperty()
    obd_warmups_obd = ndb.StringProperty(required=True)
    obd_code_cleared_distance_obd = ndb.StringProperty(required=True)
    obd_mil_on_distance_obd = ndb.StringProperty(required=True)
    obd_code_cleared_time_obd = ndb.DateTimeProperty()
    obd_mil_on_time_obd = ndb.DateTimeProperty()
    emiss_clarification = ndb.StringProperty()
    misc_comnt = ndb.StringProperty()
    misc_comnt_res = ndb.StringProperty()
    misc_emiss_reject_comment = ndb.StringProperty()
    misc_emiss_reject_result = ndb.StringProperty()
    overall_tamper_result = ndb.StringProperty()
    ex_sys_res = ndb.StringProperty()
    overall_obd2_res = ndb.StringProperty()
    exh_emiss_test_res = ndb.StringProperty()
    overall_gas_cap_res = ndb.StringProperty()
    ovr_exh_obd2_em_res = ndb.StringProperty()
    overall_emiss_res = ndb.StringProperty()
    overall_saf_res = ndb.StringProperty()
    overall_test_res = ndb.StringProperty()
    created_date_sys = ndb.DateTimeProperty()
    created_user_sys = ndb.StringProperty()
    update_date_sys = ndb.DateTimeProperty()
    update_user_sys = ndb.StringProperty()
