60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import { z } from "zod";
|
|
import type { PageableParams, PageableList } from "@/shared/model";
|
|
|
|
export interface SiteParams extends PageableParams {
|
|
siteNm?: string;
|
|
siteKndCd?: string;
|
|
useYn?: string;
|
|
}
|
|
|
|
export interface Site {
|
|
siteId: string;
|
|
siteNm: string;
|
|
siteKindCode: string;
|
|
bscSiteYn: string;
|
|
siteAddr: string;
|
|
useYn: string;
|
|
regDt: string;
|
|
rgTrNm: string;
|
|
dmnAddr: string;
|
|
}
|
|
|
|
export interface SiteDetail extends SiteFormData {
|
|
siteId: string;
|
|
siteKindNm: string;
|
|
basicSiteYn: string;
|
|
faxNumber: string;
|
|
regDt: string;
|
|
rgTr: string;
|
|
mdfcnDt: string;
|
|
mdFr: string;
|
|
rgTrNm: string;
|
|
mdfrNm: string;
|
|
}
|
|
|
|
export const siteFormSchema = z.object({
|
|
siteId: z.string().max(2).nonempty(),
|
|
siteNm: z.string().max(100).nonempty(),
|
|
siteExpln: z.string().max(1000).nullable(),
|
|
siteKndCd: z.string().max(10).nonempty(),
|
|
siteAddr: z.string().max(2000).nullable(),
|
|
faxNo: z.string().max(100).nullable(),
|
|
telNo: z.string().max(1000).nullable(),
|
|
lwndCn: z.string().max(2000).nullable(),
|
|
bscSiteYn: z.string(),
|
|
bkmkIcon: z.string().max(100).nullable(),
|
|
useYn: z.string(),
|
|
siteSkn: z.string().max(10).nullable(),
|
|
dmnAddr: z.string().nullable(),
|
|
});
|
|
|
|
export type SiteFormData = z.infer<typeof siteFormSchema>;
|
|
export type SiteList = PageableList<Site>;
|
|
|
|
export interface SiteService {
|
|
getSiteList(params: SiteParams): Promise<SiteList>;
|
|
siteDetail(siteId: string): Promise<SiteDetail>;
|
|
updateSite(siteId: string, data: SiteFormData): Promise<void>;
|
|
createSite(data: SiteFormData): Promise<void>;
|
|
}
|