import { HTTPNoBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { NeedLogin } from '../defines'; import { PeriodType, PriceType, ProductKind } from '../enums'; // ========================================================================== export const ListProductByOwnerOption = pito.Obj({ filterPeriod : pito.Opt(pito.Enums(PeriodType)), filterProductKind: pito.Opt(pito.Enums(ProductKind)), filterPriceType : pito.Opt(pito.Enums(PriceType)), filterBldNm : pito.Opt(pito.Str()), pageSize : pito.Opt(pito.Int({ minimum: 0, maximum: 100 })), pageNo : pito.Opt(pito.Int({ minimum: 1 })), }); export type ListProductByOwnerOption = pito.Type; // ========================================================================== export const ListProductByOwnerOutput = pito.Obj({ found: pito.Arr( pito.Obj({ createdAt : pito.Date(), productId : pito.Num(), productKind : pito.Enums(ProductKind), bldNm : pito.Str(), dongNm : pito.Str(), hoNm : pito.Str(), period : pito.Opt(pito.Num()), priceType : pito.Opt(pito.Enums(PriceType)), pricePrice : pito.Opt(pito.Num()), priceDeposit: pito.Opt(pito.Num()), note : pito.Str(), }), ), }); export type ListProductByOwnerOutput = pito.Type; // ========================================================================== export const ListProductByOwner = HTTPNoBody('GET', '/api/v1/product/product/owner', 'product') .query(ListProductByOwnerOption) .response(ListProductByOwnerOutput) .presets(NeedLogin) .build(); // ==========================================================================