import { z } from "zod"; import type { PageableList, PageableParams } from "@/shared/model"; export interface AuthorizationsParams extends PageableParams { keywordType?: string; keyword?: string; authorizationName?: string; urlPatternValue?: string; httpMethodCode?: string; useYn?: string; } export interface Authorizations { authorizationNo: number; authorizationName: string; urlPatternValue: string; httpMethodCode: string; sortSeq: number; useYn: string; siteId: string; mdfr: string; mdfcnDt: string; } export interface RoleAuthorizations { roleId: string; authorizationNo: number; authorizationName: string; urlPatternValue: string; httpMethodCode: string; sortSeq: number; siteId: string; createdAt: string; } export interface WithRoleAuthorizations extends Authorizations { roleAuthorizations: RoleAuthorizations[]; } export const authorizationFormSchema = z.object({ authorizationName: z.string(), urlPatternValue: z.string(), httpMethodCode: z.string(), sortSeq: z.number(), useYn: z.string(), siteId: z.string(), }); export type AuthorizationsList = PageableList; export type AuthorizationFormData = z.infer; export interface AuthorizationsService { getAuthorizationsList: ( params?: AuthorizationsParams, ) => Promise; getAuthorizationInfo: ( authorizationNo: string, ) => Promise; createAuthorization: ( data: AuthorizationFormData, ) => Promise; updateAuthorization: ( authorizationNo: string, data: AuthorizationFormData, ) => Promise; }