/* Options: Date: 2026-06-12 23:08:46 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetAiChatUsage.* //ExcludeTypes: //DefaultImports: */ // @ts-nocheck export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } // @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); } } export class AiChatUsageResponse { /** @description The company the usage applies to. */ // @ApiMember(Description="The company the usage applies to.") public CompanyId: string; /** @description Tokens consumed within the current rolling window. */ // @ApiMember(Description="Tokens consumed within the current rolling window.") public TokensUsed: number; /** @description The company's token limit for the window. */ // @ApiMember(Description="The company's token limit for the window.") public TokenLimit: number; /** @description Tokens remaining before the limit is reached (never negative). */ // @ApiMember(Description="Tokens remaining before the limit is reached (never negative).") public TokensRemaining: number; /** @description True while the company is still below its token limit. */ // @ApiMember(Description="True while the company is still below its token limit.") public IsWithinBudget: boolean; /** @description Length of the rolling usage window, in days. */ // @ApiMember(Description="Length of the rolling usage window, in days.") public WindowDays: number; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/assistant/ai-chat/usage", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") export class GetAiChatUsage implements IReturn, ICompany { /** @description The company id. Defaults to the logged-in user's company when omitted. */ // @ApiMember(DataType="string", Description="The company id. Defaults to the logged-in user's company when omitted.", ParameterType="query") public CompanyId?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'GetAiChatUsage'; } public getMethod() { return 'GET'; } public createResponse() { return new AiChatUsageResponse(); } }