import { HTTPBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { NeedLogin } from '../defines'; import { FurnitureDefine, ProductKind, ProductType } from '../enums'; import { AdminExpensesDefine, MoveInDefine, ParkingDefine } from '../types'; // ========================================================================== export const UpdateProductByOwnerParam = pito.Obj({ prod_id: pito.Num(), }); export type UpdateProductByOwnerParam = pito.Type; // ========================================================================== export const UpdateProductByOwnerInput = pito.Obj({ productKind: pito.Enums(ProductKind), productType: pito.Enums(ProductType), moveIn: pito.Opt(MoveInDefine), adminExpenses: pito.Opt(AdminExpensesDefine), parking : pito.Opt(ParkingDefine), furniture : pito.Opt(pito.Arr(FurnitureDefine)), title : pito.Opt(pito.Str()), description : pito.Opt(pito.Str()), note : pito.Opt(pito.Str()), characteristic: pito.Opt(pito.Str()), }); export type UpdateProductByOwnerInput = pito.Type; // ========================================================================== export const UpdateProductByOwnerOption = pito.Obj({}); export type UpdateProductByOwnerOption = pito.Type; // ========================================================================== export const UpdateProductByOwnerOutput = pito.Obj({ prodId: pito.Int(), }); export type UpdateProductByOwnerOutput = pito.Type; // ========================================================================== export const UpdateProductByOwner = HTTPBody('PATCH', '/api/v1/product/product/owner/:prod_id', 'product') .params(UpdateProductByOwnerParam) .body(UpdateProductByOwnerInput) .query(UpdateProductByOwnerOption) .response(UpdateProductByOwnerOutput) .presets(NeedLogin) .build(); // ==========================================================================