/* Options: Date: 2026-09-16 17:01:04 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SuperAdminAssistantUsageQuery.* //ExcludeTypes: //DefaultImports: */ // @ts-nocheck export interface IReturn { createResponse(): T; } // @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 AssistantUsageMeter { /** @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. Zero or less means no cap is applied. */ // @ApiMember(Description="The company's token limit for the window. Zero or less means no cap is applied.") 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 Share of the limit consumed, as a percentage. Zero when no cap is applied. */ // @ApiMember(Description="Share of the limit consumed, as a percentage. Zero when no cap is applied.") public PercentUsed: 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; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SuperAdminAssistantUsage { /** @description The company the usage applies to. */ // @ApiMember(Description="The company the usage applies to.") public CompanyId: string; /** @description The company's name. */ // @ApiMember(Description="The company's name.") public CompanyName: string; /** @description Token budget for the admin portal AI assistant. Null when it could not be read. */ // @ApiMember(Description="Token budget for the admin portal AI assistant. Null when it could not be read.") public AiChat?: AssistantUsageMeter; /** @description Token budget for the public MCP server. Null when it could not be read. */ // @ApiMember(Description="Token budget for the public MCP server. Null when it could not be read.") public Mcp?: AssistantUsageMeter; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SuperAdminAssistantUsageQueryResponse { /** @description Number of companies skipped. */ // @ApiMember(Description="Number of companies skipped.") public Offset: number; /** @description Total number of companies matching the filter. */ // @ApiMember(Description="Total number of companies matching the filter.") public Total: number; /** @description Length of the rolling usage window, in days. */ // @ApiMember(Description="Length of the rolling usage window, in days.") public WindowDays: number; /** @description Usage for the requested page of companies. */ // @ApiMember(Description="Usage for the requested page of companies.") public Results: SuperAdminAssistantUsage[] = []; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/superadmin/assistant/usage", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privileges to call this service", StatusCode=403) // @ValidateRequest(Validator="IsAuthenticated") export class SuperAdminAssistantUsageQuery implements IReturn { /** @description Filter on company name. Case-insensitive substring match. */ // @ApiMember(DataType="string", Description="Filter on company name. Case-insensitive substring match.", ParameterType="query") public Search?: string; /** @description Return only this company. Takes precedence over Search when both are set. */ // @ApiMember(DataType="string", Description="Return only this company. Takes precedence over Search when both are set.", ParameterType="query") public CompanyId?: string; /** @description Number of companies to skip. */ // @ApiMember(DataType="integer", Description="Number of companies to skip.", ParameterType="query") public Skip?: number; /** @description Number of companies to return. Capped server-side. */ // @ApiMember(DataType="integer", Description="Number of companies to return. Capped server-side.", ParameterType="query") public Take?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'SuperAdminAssistantUsageQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new SuperAdminAssistantUsageQueryResponse(); } }