49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { z } from "zod";
|
|
import type { PageableList, PageableParams } from "@/shared/model";
|
|
|
|
export interface MenuAuthorityParams extends PageableParams {
|
|
groupId?: string;
|
|
menuCd?: number;
|
|
useYn?: string;
|
|
}
|
|
|
|
export interface PageMenuAuthority {
|
|
mngAuthrtYn: string;
|
|
inqAuthrtYn: string;
|
|
regAuthrtYn: string;
|
|
mdfcnAuthrtYn: string;
|
|
delAuthrtYn: string;
|
|
}
|
|
|
|
export const menuAuthoritySchema = z.object({
|
|
groupId: z.string(),
|
|
groupNm: z.string(),
|
|
menuCd: z.number(),
|
|
mngAuthrtYn: z.string(),
|
|
inqAuthrtYn: z.string(),
|
|
regAuthrtYn: z.string(),
|
|
mdfcnAuthrtYn: z.string(),
|
|
delAuthrtYn: z.string(),
|
|
useYn: z.string(),
|
|
mode: z.string(),
|
|
});
|
|
|
|
export const menuAuthorityPayloadSchema = menuAuthoritySchema.omit({
|
|
groupNm: true,
|
|
});
|
|
|
|
export const menuAuthorityFormSchema = z.object({
|
|
menuAuthority: z.array(menuAuthorityPayloadSchema),
|
|
});
|
|
|
|
export type MenuAuthority = z.infer<typeof menuAuthoritySchema>;
|
|
export type MenuAuthorityList = PageableList<MenuAuthority>;
|
|
export type MenuAuthorityPayload = z.infer<typeof menuAuthorityPayloadSchema>;
|
|
export type MenuAuthorityFormData = z.infer<typeof menuAuthorityFormSchema>;
|
|
|
|
export interface MenuAuthorityService {
|
|
getMenuAuthorityList(params: MenuAuthorityParams): Promise<MenuAuthorityList>;
|
|
getPageMenuAuthority(menuCd: number): Promise<PageMenuAuthority[]>;
|
|
saveMenuAuthority(data: MenuAuthorityPayload[]): Promise<void>;
|
|
}
|