import { HTTPBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { NeedLogin } from '../defines'; export const CreateSellAdParam = pito.Obj({}); export type CreateSellAdParam = pito.Type; export const CreateSellAdInput = pito.Obj({ /* 광고기간 */ ad: pito.Arr( pito.Obj({ sellId : pito.Num(), adMonthCnt: pito.Num(), }) ), /* 쿠폰 - 코드명은 임시..아직 설계가 없다.. */ coupon: pito.Opt(pito.Num()), /* 포인트 - 코드명은 임시..아직 설계가 없다.. */ point: pito.Opt(pito.Num()), }); export type CreateSellAdInput = pito.Type; export const CreateSellAdOutput = pito.Obj({ pmntId: pito.Str(), sellAd: pito.Arr( pito.Obj({ sellAd: pito.Obj({ sellId : pito.Num(), startAt : pito.Date(), endAt : pito.Date(), adDayCnt: pito.Num(), price : pito.Num(), }), sellAdHistory: pito.Obj({ sellId : pito.Num(), adMonthCnt: pito.Num(), adDayCnt : pito.Num(), adDayNote : pito.Str(), procUserId: pito.Num(), }), }) ), price: pito.Obj({ pmntPrice : pito.Num(), // 결제 최종금액 sumPrice : pito.Num(), // 광고 기본금액 couponPrice: pito.Num(), // 쿠폰 차감 금액 salePrice : pito.Num(), // 특별 할인 차감금액 pointPrice : pito.Num(), // 포인트 차감 금액 }), }); export type CreateSellAdOutput = pito.Type; export const CreateSellAd = HTTPBody("POST", "/api/v1/product/sell-ad", "ad") .params(CreateSellAdParam) .body(CreateSellAdInput) .response(CreateSellAdOutput) .presets(NeedLogin) .build();