import { Field, InputType, Int, ArgsType, ObjectType } from 'type-graphql'; import { GetManyArgsWithDateRange } from '@seed/graphql/Request'; import { BookingEngineBaseSchema } from './bookings.engine.schema'; import { IsRefExist } from '@seed/engine/decorators/db.guard'; import { BookingsRessourceEnum } from '@src/__components/components'; import { IsNotEmpty, ValidateIf, ValidateNested } from 'class-validator'; import { StatusEnum } from '@seed/interfaces/components'; @ObjectType() @InputType() export class BookingEngineNewInputSchema extends BookingEngineBaseSchema { @Field(() => BookingsRessourceEnum) @IsNotEmpty() ressourceModel: BookingsRessourceEnum; @Field() @IsNotEmpty() @IsRefExist() ressourceId: string; } @InputType() export class BookingEngineEditInputSchema { @Field(() => Int, { nullable: true }) capacity: number; @Field({ nullable: true }) comments?: string; } @ArgsType() export class BookingEngineArgsSchema extends GetManyArgsWithDateRange { @Field(() => BookingsRessourceEnum, { nullable: true }) ressourceModel?: BookingsRessourceEnum; @Field({ nullable: true }) ressourceId?: string; @Field(() => [StatusEnum], { nullable: true }) status?: StatusEnum[]; }