import { HTTPNoBody } from "@fastify-modular/route"; import { pito } from "pito"; import { NeedLogin } from "../defines"; import { UserState } from "../enums"; // ===================================================================================== export const ListUserStateParam = pito.Obj({}); export type ListUserStateParam = pito.Type; // ===================================================================================== export const ListUserStateOption = pito.Obj({ // key userId : pito.Num(), // where beforeCreatedAt: pito.Opt(pito.Date()), afterCreatedAt : pito.Opt(pito.Date()), warningCnt : pito.Opt(pito.Num()), userState : pito.Opt(pito.Enums(UserState)), // page pageNo : pito.Num(), pageSize : pito.Num(), }); export type ListUserStateOption = pito.Type; // ===================================================================================== export const ListUserStateInput = pito.Obj({}); export type ListUserStateInput = pito.Type; // ===================================================================================== export const ListUserStateOutput = pito.Obj({ // 경고 상태 page userState: pito.Arr( pito.Obj({ createdAt : pito.Date(), warningCnt : pito.Int(), userState : pito.Enums(UserState), penaltyDayCnt: pito.Int(), stateNote : pito.Opt(pito.Str()), adminNote : pito.Opt(pito.Str()), }) ), }); export type ListUserStateOutput = pito.Type; // ===================================================================================== export const ListUserState = HTTPNoBody( "GET", "/api/v1/admin/user-state/", "admin" ) .params(ListUserStateParam) .query(ListUserStateOption) .response(ListUserStateOutput) .presets(NeedLogin) .build(); // =====================================================================================