import { HTTPNoBody } from "@fastify-modular/route"; import { pito } from "pito"; import { NeedLogin } from "../defines"; export const FindSellAdCalculatePriceParam = pito.Obj({}); export type FindSellAdCalculatePriceParam = pito.Type< typeof FindSellAdCalculatePriceParam >; export const FindSellAdCalculatePriceOption = 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 FindSellAdCalculatePriceOption = pito.Type< typeof FindSellAdCalculatePriceOption >; export const FindSellAdCalculatePriceInput = pito.Obj({}); export type FindSellAdCalculatePriceInput = pito.Type< typeof FindSellAdCalculatePriceInput >; export const FindSellAdCalculatePriceOutput = pito.Obj({ 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 FindSellAdCalculatePriceOutput = pito.Type< typeof FindSellAdCalculatePriceOutput >; export const FindSellAdCalculatePrice = HTTPNoBody( "GET", "/api/v1/product/sell-ad/calculate-price/", "ad" ) .query(FindSellAdCalculatePriceOption) .response(FindSellAdCalculatePriceOutput) .presets(NeedLogin) .build();