import { HTTPNoBody } from "@fastify-modular/route"; import { pito } from "pito"; import { NeedLogin } from "../defines"; import { AdStateType, AdUpdateType } from "../enums/ad-state"; // ===================================================================================== export const ListSellAdHistoryParam = pito.Obj({}); export type ListSellAdHistoryParam = pito.Type; // ===================================================================================== export const ListSellAdHistoryOption = pito.Obj({ // where sellId : pito.Num(), beforeUpdatedAt: pito.Opt(pito.Date()), afterUpdatedAt : pito.Opt(pito.Date()), adStateType : pito.Opt(pito.Enums(AdStateType)), adUpdateType : pito.Opt(pito.Enums(AdUpdateType)), // page pageSize: pito.Opt(pito.Int({ minimum: 0, maximum: 100 })), pageNo : pito.Opt(pito.Int({ minimum: 1 })), }); export type ListSellAdHistoryOption = pito.Type; // ===================================================================================== export const ListSellAdHistoryInput = pito.Obj({}); export type ListSellAdHistoryInput = pito.Type; // ===================================================================================== export const ListSellAdHistoryOutput = pito.Obj({ found: pito.Arr( pito.Obj({ updatedAt : pito.Opt(pito.Date()), adStateType : pito.Opt(pito.Enums(AdStateType)), adUpdateType: pito.Opt(pito.Enums(AdUpdateType)), adDayCnt : pito.Opt(pito.Num()), startAt : pito.Opt(pito.Date()), // '광고 시작 시각' endAt : pito.Opt(pito.Date()), // '결제일로부터 광고 기간' remainDayCnt: pito.Opt(pito.Int()), // 남은일수 adDayNote : pito.Opt(pito.Str()), adminNote : pito.Opt(pito.Str()), procUserName: pito.Opt(pito.Str()), }) ), }); export type ListSellAdHistoryOutput = pito.Type; // ===================================================================================== export const ListSellAdHistory = HTTPNoBody( "GET", "/api/v1/admin/sell-ad-history", "admin" ) .params(ListSellAdHistoryParam) .query(ListSellAdHistoryOption) .response(ListSellAdHistoryOutput) .presets(NeedLogin) .build(); // =====================================================================================