import { SEARCH_OPTIONS_ENUM, SEARCH_OPTIONS_PARTNERS_ENUM, SORT_OPTIONS_ENUM } from '@/store/surveyFilterStore'

export type SurveyBasicInfo = {
  ID: number
  REPRESENTATIVE: string
  STORE: string | null
  CONSTRUCTION_POINT: string | null
  INVESTIGATION_DATE: string | null
  BUILDING_NAME: string | null
  CUSTOMER_NAME: string | null
  POST_CODE: string | null
  ADDRESS: string | null
  ADDRESS_DETAIL: string | null
  SUBMISSION_STATUS: boolean
  SUBMISSION_DATE: string | null
  DETAIL_INFO: SurveyDetailInfo | null
  REG_DT: Date
  UPT_DT: Date
}

export type SurveyDetailInfo = {
  ID: number
  BASIC_INFO_ID: number
  CONTRACT_CAPACITY: string | null
  RETAIL_COMPANY: string | null
  SUPPLEMENTARY_FACILITIES: string | null // number 배열
  SUPPLEMENTARY_FACILITIES_ETC: string | null
  INSTALLATION_SYSTEM: string | null
  INSTALLATION_SYSTEM_ETC: string | null
  CONSTRUCTION_YEAR: string | null
  CONSTRUCTION_YEAR_ETC: string | null
  ROOF_MATERIAL: string | null // number 배열
  ROOF_MATERIAL_ETC: string | null
  ROOF_SHAPE: string | null
  ROOF_SHAPE_ETC: string | null
  ROOF_SLOPE: string | null
  HOUSE_STRUCTURE: string | null
  HOUSE_STRUCTURE_ETC: string | null
  RAFTER_MATERIAL: string | null
  RAFTER_MATERIAL_ETC: string | null
  RAFTER_SIZE: string | null
  RAFTER_SIZE_ETC: string | null
  RAFTER_PITCH: string | null
  RAFTER_PITCH_ETC: string | null
  RAFTER_DIRECTION: string | null
  OPEN_FIELD_PLATE_KIND: string | null
  OPEN_FIELD_PLATE_KIND_ETC: string | null
  OPEN_FIELD_PLATE_THICKNESS: string | null
  LEAK_TRACE: boolean | null
  WATERPROOF_MATERIAL: string | null
  WATERPROOF_MATERIAL_ETC: string | null
  INSULATION_PRESENCE: string | null
  INSULATION_PRESENCE_ETC: string | null
  STRUCTURE_ORDER: string | null
  STRUCTURE_ORDER_ETC: string | null
  INSTALLATION_AVAILABILITY: string | null
  INSTALLATION_AVAILABILITY_ETC: string | null
  MEMO: string | null
  REG_DT: Date
  UPT_DT: Date
}

export type SurveyBasicRequest = {
  REPRESENTATIVE: string
  STORE: string | null
  CONSTRUCTION_POINT: string | null
  INVESTIGATION_DATE: string | null
  BUILDING_NAME: string | null
  CUSTOMER_NAME: string | null
  POST_CODE: string | null
  ADDRESS: string | null
  ADDRESS_DETAIL: string | null
  SUBMISSION_STATUS: boolean
  SUBMISSION_DATE: string | null
}

export type SurveyDetailRequest = {
  CONTRACT_CAPACITY: string | null
  RETAIL_COMPANY: string | null
  SUPPLEMENTARY_FACILITIES: string | null // number 배열
  SUPPLEMENTARY_FACILITIES_ETC: string | null
  INSTALLATION_SYSTEM: string | null
  INSTALLATION_SYSTEM_ETC: string | null
  CONSTRUCTION_YEAR: string | null
  CONSTRUCTION_YEAR_ETC: string | null
  ROOF_MATERIAL: string | null // number 배열
  ROOF_MATERIAL_ETC: string | null
  ROOF_SHAPE: string | null
  ROOF_SHAPE_ETC: string | null
  ROOF_SLOPE: string | null
  HOUSE_STRUCTURE: string | null
  HOUSE_STRUCTURE_ETC: string | null
  RAFTER_MATERIAL: string | null
  RAFTER_MATERIAL_ETC: string | null
  RAFTER_SIZE: string | null
  RAFTER_SIZE_ETC: string | null
  RAFTER_PITCH: string | null
  RAFTER_PITCH_ETC: string | null
  RAFTER_DIRECTION: string | null
  OPEN_FIELD_PLATE_KIND: string | null
  OPEN_FIELD_PLATE_KIND_ETC: string | null
  OPEN_FIELD_PLATE_THICKNESS: string | null
  LEAK_TRACE: boolean | null
  WATERPROOF_MATERIAL: string | null
  WATERPROOF_MATERIAL_ETC: string | null
  INSULATION_PRESENCE: string | null
  INSULATION_PRESENCE_ETC: string | null
  STRUCTURE_ORDER: string | null
  STRUCTURE_ORDER_ETC: string | null
  INSTALLATION_AVAILABILITY: string | null
  INSTALLATION_AVAILABILITY_ETC: string | null
  MEMO: string | null
}

export type SurveyDetailCoverRequest = {
  DETAIL_INFO: SurveyDetailRequest
}

export type SurveyRegistRequest = {
  REPRESENTATIVE: string
  STORE: string | null
  CONSTRUCTION_POINT: string | null
  INVESTIGATION_DATE: string | null
  BUILDING_NAME: string | null
  CUSTOMER_NAME: string | null
  POST_CODE: string | null
  ADDRESS: string | null
  ADDRESS_DETAIL: string | null
  SUBMISSION_STATUS: boolean
  SUBMISSION_DATE: string | null
  DETAIL_INFO: SurveyDetailRequest | null
}
