import { z } from "zod"; import type { PageableList, PageableParams } from "@/shared/model"; export const BANNER_TYPE = { BNRMAIN: "BNRMAIN", BNRFTER: "BNRFTER", } as const; export type BannerType = (typeof BANNER_TYPE)[keyof typeof BANNER_TYPE]; export interface BannerParams extends PageableParams { bnrTypeCd?: BannerType; bnrTtl?: string; useYn?: string; } export interface Banner { bnrSn: number; bnrTypeCd: BannerType; bnrTypeNm: string; bnrTtl: string; lnkgUrlAddr: string; useYn: string; atflCd: string; mdfcnDt: string; mdfr: string; mdfrNm: string; } export interface BannerInfo extends Omit { bnrExpln: string; newWndwYn: string; atflCd: string; regDt: string; rgTrNm: string; } export const bannerFormSchema = z.object({ bnrTypeCd: z.string(), bnrTtl: z.string(), bnrExpln: z.string().nullish(), lnkgUrlAddr: z.string().nullish(), newWndwYn: z.string(), atflCd: z.string().nullish(), useYn: z.string(), }); export type BannerFormData = z.infer; export type BannerList = PageableList; export interface BannerService { getBannerList: (params: BannerParams) => Promise; getBannerInfo: (bnrSn: string) => Promise; createBanner: (data: BannerFormData) => Promise; updateBanner: (bnrSn: string, data: BannerFormData) => Promise; deleteBanner: (bnrSn: string) => Promise; }