import { fetchType, getFetch, postFectch, putFectch, } from "@/components/lib/api"; import type { pubHasuType } from "../../ruseFcltMng/fcltReg/pbnstReg/type"; import type { DemandCompType } from "@common/business_components/ui/sdmInsertForm/form"; import type { conCostFeeType, rateFeeType } from "./type"; export type comFcltState = { searchFclts: pubHasuType; demandCompList: DemandCompType[]; dmdIsSucees: string; checkDemand: DemandCompType; constCostRes:conCostFeeType[], rateFeeRes:rateFeeType[], }; export type comFcltActions = { getSwtrmtFcltNm: (searchNm: string) => void; getDemandCompList: (searchNm: string, cnt: number) => void; regDemandCompany: (data: DemandCompType) => void; updateDemandCompany: (data: DemandCompType) => void; getConstCostFee: (year: string) => void; getRateFee: (year: string) => void; }; export const searchActions: (set: any) => comFcltActions = (set: any) => { return { getSwtrmtFcltNm: async (searchNm: string) => { const fcltNm = await getFetch( "common", `/prcsFclt/info/1/11/${searchNm}` ); const searchFclts: pubHasuType[] = fcltNm.map((item: any) => ({ bscFctCd: item.bscFctCd, sido: item.sido, gugun: item.gugun, bscFctNm: item.bscFctNm, addr: item.addr, fctCpc: item.fctCpc, })); set((state: comFcltState) => ({ ...state, searchFclts: searchFclts, })); }, getDemandCompList: async (searchNm: string, cnt: number) => { const coList = await getFetch( fetchType.WR, `/reuseFc/request/${searchNm}/${cnt}` ); console.log(coList); set((state: comFcltState) => { return (state.demandCompList = [...coList]); }); }, regDemandCompany: async (data: DemandCompType) => { try { const response = await postFectch( "/reuseFc/request", data, fetchType.WR ); let message = ""; if (response.status === 200) { message = "success"; } else { message = "fail"; } set((state: comFcltState) => { state.dmdIsSucees = message; return state; }); } catch (err) { console.log(err); } }, updateDemandCompany: async (data: DemandCompType) => { try { const response = await putFectch("/reuseFc/request", data); let message = ""; if (response.status === 200) { message = "success"; } else { message = "fail"; } set((state: comFcltState) => { state.dmdIsSucees = message; return state; }); } catch (err) { console.log(err); } }, getRateFee: async (year: string) => { try { const url = `/prcsFclt/CstRt/${year}`; const rateFeeRes = await getFetch(fetchType.COMMON, url); set((state: comFcltState) => { return state.rateFeeRes = rateFeeRes;; }); } catch (e) { console.log(" error ", e); } },getConstCostFee: async (year: string) => { try { const url = `/prcsFclt/CstRuse/${year}`; const constCost = await getFetch(fetchType.COMMON, url); set((state: comFcltState) => { return state.constCostRes = constCost;; }); }catch (e) { } } }; };