import { getFectch } from "@/components/lib/api"; // Description: 공통코드 export type selectArray = { text: string; val: string | number; }; export const yn :selectArray[]=[ {val:'Y', text:'Y'}, {val:'N', text:'N'}, ] //공통 건축물 용도 export const bdstUsgCd: selectArray[] = [ { val: 1, text: "운동장" }, { val: 2, text: "체육관" }, { val: 3, text: "공공업무시설" }, { val: 4, text: "공공기관의청사" }, { val: 5, text: "아파트" }, { val: 6, text: "연립주택" }, { val: 7, text: "다세대주택" }, { val: 8, text: "기숙사" }, { val: 9, text: "초등학교" }, { val: 10, text: "중학교" }, { val: 11, text: "고등학교" }, { val: 12, text: "전문대학" }, { val: 13, text: "대학및대학교" }, { val: 14, text: "골프장" }, { val: 15, text: "대규모점포" }, { val: 16, text: "기타" }, ]; //빗물 집수면 종류 용도 export const rainFcltCd = [ { val: "1", text: "지붕" }, { val: "2", text: "건물옥상" }, { val: "3", text: "골프장 연못" }, { val: "4", text: "운동장 바닥" }, { val: "5", text: "운동장 지붕" }, { val: "6", text: "주차장" }, { val: "7", text: "태양광패널" }, { val: "8", text: "연못" }, { val: "9", text: "기타" }, { val: "10", text: "확인불가" }, ]; // 중수도 필수 원수종류 export const rswtBdstType: selectArray[] = [ { text: "숙박업", val: 17 }, { text: "목욕장업", val: 18 }, { text: "공장", val: 19 }, { text: "발전시설", val: 20 }, { text: "관광단지개발사업", val: 21 }, { text: "도시개발사업", val: 22 }, { text: "산업단지개발사업", val: 23 }, { text: "택지개발사업", val: 24 }, { text: "대규모점포(대형마트)", val: 25 }, { text: "대규모점포(전문점)", val: 26 }, { text: "대규모점포(백화점)", val: 27 }, { text: "대규모점포(쇼핑센터)", val: 28 }, { text: "대규모점포(복합쇼핑몰)", val: 29 }, { text: "물류시설", val: 30 }, { text: "운수시설(여객자동차터미널)", val: 31 }, { text: "운수시설(철도시설)", val: 32 }, { text: "운수시설(공항시설)", val: 33 }, { text: "운수시설(항만시설)", val: 34 }, { text: "업무시설(공공업무시설)", val: 35 }, { text: "업무시설(금융업소)", val: 36 }, { text: "업무시설(사무소)", val: 37 }, { text: "업무시설(결혼상담소 등 소개업소)", val: 38 }, { text: "업무시설(출판사)", val: 39 }, { text: "업무시설(신문사)", val: 40 }, { text: "업무시설(오피스텔)", val: 41 }, { text: "교정시설", val: 42 }, { text: "방송국", val: 43 }, { text: "전신전화국", val: 44 }, { text: "기타", val: 45 }, ]; const orgwtKndCd = [ { text: "오수(변기 오수 제외)", val: "1" }, { text: "오수", val: "2" }, { text: "폐수", val: "3" }, { text: "오수 및 폐수", val: "4" }, { text: "기타", val: "5" }, ]; export const chBuCd = [ { val: "증축", text: "증축" }, { val: "개축", text: "개축" }, { val: "재축", text: "재축" }, ] export type comCodeState = { code: { isInit: boolean; chBuCd:selectArray[] rainFcltCd: selectArray[]; bdstUsgCd: selectArray[]; cityCd: selectArray[]; sggCd: selectArray[]; orgwtKndCd:selectArray[]; yn:selectArray[]; }; }; export type comCodeType = comCodeState & comCodeActions; export const getSggCd = async (set: any) => { const sgg = await getFectch("common", "/addr/sgg"); const sggCd = sgg.map((item: any) => ({ val: Number(item.adstDstrCd), text: item.gugun, })); set((state: comCodeState) => ({ code: { ...state.code, sggCd: sggCd, }, })); }; export const getCityCd = async (set: any) => { const city = await getFectch("common", "/addr/city"); const cityCd = city.map((item: any) => ({ val: Number(item.adstDstrCd), text: item.sido, })); cityCd.unshift({val:0,text:'전체'}) set((state: comCodeState) => ({ code: { ...state.code, cityCd: cityCd, }, })); }; export const comCodeStateExport: comCodeState = { code: { isInit: false, rainFcltCd: rainFcltCd, bdstUsgCd: bdstUsgCd, chBuCd:chBuCd, orgwtKndCd:orgwtKndCd, cityCd: [], sggCd: [], yn:yn }, }; export type comCodeActions = { codeInit: () => void; }; export const codeActionExport: (set: any) => comCodeActions = (set: any) => { return { codeInit: async () => { const sgg = await getFectch("common", "/addr/sgg"); const sggCd = sgg.map((item: any) => ({ val: Number(item.adstDstrCd), text: item.gugun, })); const city = await getFectch("common", "/addr/city"); const cityCd = city.map((item: any) => ({ val: Number(item.adstDstrCd), text: item.sido, })); return set((state: comCodeState) => ({ code: { ...state.code, sggCd: sggCd, cityCd: cityCd, }, })); }, divCityCd: async(cd: number) => { set((state: comCodeState) => ({ code: { ...state.code, sggCd:state.code.sggCd.filter((item) => { return Number(item.val.toString().slice(0,2)) === cd }), }, })); }, }; };