import { HTTPNoBody } from "@fastify-modular/route"; import { pito } from "pito"; import { NeedLogin } from "../defines"; import { ProductKind } from "../enums"; import { AdStateType } from "../enums/ad-state"; import { PriceDefine } from "../types"; // ===================================================================================== export const FindSellAdParam = pito.Obj({ sellId: pito.Num(), }); export type FindSellAdParam = pito.Type; // ===================================================================================== export const FindSellAdOption = pito.Obj({}); export type FindSellAdOption = pito.Type; // ===================================================================================== export const FindSellAdInput = pito.Obj({}); export type FindSellAdInput = pito.Type; // ===================================================================================== export const FindSellAdOutput = pito.Obj({ sellOrder: pito.Obj({ fkProductId: pito.Num(), productKind: pito.Enums(ProductKind), bldNm : pito.Str(), dongNm : pito.Str(), hoNm : pito.Str(), price : PriceDefine, }), sellAd: pito.Obj({ adStateType : pito.Opt(pito.Enums(AdStateType)), firstStartAt: pito.Opt(pito.Date()), // 최초 광고 시작 시각 startAt : pito.Opt(pito.Date()), // '광고 시작 시각' endAt : pito.Opt(pito.Date()), // '결제일로부터 광고 기간' remainDayCnt: pito.Opt(pito.Int()), // 남은일수 }), }); export type FindSellAdOutput = pito.Type; // ===================================================================================== export const FindSellAd = HTTPNoBody( "GET", "/api/v1/admin/sell-ad/:sellId", "admin" ) .params(FindSellAdParam) .query(FindSellAdOption) .response(FindSellAdOutput) .presets(NeedLogin) .build(); // =====================================================================================