/* Options: Date: 2026-06-13 00:58:50 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //Package: //GlobalNamespace: dtos //AddPropertyAccessors: True //SettersReturnThis: True //AddServiceStackTypes: True //AddResponseStatus: False //AddDescriptionAsComments: True //AddImplicitVersion: IncludeTypes: GetAiChatUsage.* //ExcludeTypes: //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.*; import java.util.*; import java.io.InputStream; import net.servicestack.client.*; public class dtos { @Route(Path="/assistant/ai-chat/usage", Verbs="GET") @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) @ValidateRequest(Validator="IsAuthenticated") public static class GetAiChatUsage implements IReturn, ICompany { /** * 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 UUID CompanyId = null; public UUID getCompanyId() { return CompanyId; } public GetAiChatUsage setCompanyId(UUID value) { this.CompanyId = value; return this; } private static Object responseType = AiChatUsageResponse.class; public Object getResponseType() { return responseType; } } public static class AiChatUsageResponse { /** * The company the usage applies to. */ @ApiMember(Description="The company the usage applies to.") public UUID CompanyId = null; /** * Tokens consumed within the current rolling window. */ @ApiMember(Description="Tokens consumed within the current rolling window.") public Long TokensUsed = null; /** * The company's token limit for the window. */ @ApiMember(Description="The company's token limit for the window.") public Integer TokenLimit = null; /** * Tokens remaining before the limit is reached (never negative). */ @ApiMember(Description="Tokens remaining before the limit is reached (never negative).") public Long TokensRemaining = null; /** * True while the company is still below its token limit. */ @ApiMember(Description="True while the company is still below its token limit.") public Boolean IsWithinBudget = null; /** * Length of the rolling usage window, in days. */ @ApiMember(Description="Length of the rolling usage window, in days.") public Integer WindowDays = null; public ResponseStatus ResponseStatus = null; public UUID getCompanyId() { return CompanyId; } public AiChatUsageResponse setCompanyId(UUID value) { this.CompanyId = value; return this; } public Long getTokensUsed() { return TokensUsed; } public AiChatUsageResponse setTokensUsed(Long value) { this.TokensUsed = value; return this; } public Integer getTokenLimit() { return TokenLimit; } public AiChatUsageResponse setTokenLimit(Integer value) { this.TokenLimit = value; return this; } public Long getTokensRemaining() { return TokensRemaining; } public AiChatUsageResponse setTokensRemaining(Long value) { this.TokensRemaining = value; return this; } public Boolean getIsWithinBudget() { return IsWithinBudget; } public AiChatUsageResponse setIsWithinBudget(Boolean value) { this.IsWithinBudget = value; return this; } public Integer getWindowDays() { return WindowDays; } public AiChatUsageResponse setWindowDays(Integer value) { this.WindowDays = value; return this; } public ResponseStatus getResponseStatus() { return ResponseStatus; } public AiChatUsageResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; } } public static interface ICompany { public UUID CompanyId = null; } }