/* Options: Date: 2024-12-04 19:04:38 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://vue-vite-api.jamstacks.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateBooking.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICreateDb { } export enum RoomType { Single = 'Single', Double = 'Double', Queen = 'Queen', Twin = 'Twin', Suite = 'Suite', } /** @description Booking Details */ export class Booking extends AuditBase { public id: number; public name: string; public roomType: RoomType; public roomNumber: number; public bookingStartDate: string; public bookingEndDate?: string; public cost: number; public notes?: string; public cancelled?: boolean; // @DataMember(Order=1) public createdDate: string; // @DataMember(Order=2) // @Required() public createdBy: string; // @DataMember(Order=3) public modifiedDate: string; // @DataMember(Order=4) // @Required() public modifiedBy: string; // @DataMember(Order=5) public deletedDate?: string; // @DataMember(Order=6) public deletedBy: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @DataContract export class ResponseError { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public fieldName: string; // @DataMember(Order=3) public message: string; // @DataMember(Order=4) public meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public errorCode: string; // @DataMember(Order=2) public message: string; // @DataMember(Order=3) public stackTrace: string; // @DataMember(Order=4) public errors: ResponseError[]; // @DataMember(Order=5) public meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class IdResponse { // @DataMember(Order=1) public id: string; // @DataMember(Order=2) public responseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } /** @description Create a new Booking */ // @Route("/bookings", "POST") // @ValidateRequest(Validator="HasRole(`Employee`)") export class CreateBooking implements IReturn, ICreateDb { /** @description Name this Booking is for */ // @Validate(Validator="NotEmpty") public name: string; public roomType: RoomType; // @Validate(Validator="GreaterThan(0)") public roomNumber: number; // @Validate(Validator="GreaterThan(0)") public cost: number; public bookingStartDate: string; public bookingEndDate?: string; public notes?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateBooking'; } public getMethod() { return 'POST'; } public createResponse() { return new IdResponse(); } }