/* Options: Date: 2026-06-12 23:08:47 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SurvicateMetricsQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } class SurvicateMetricsResponse implements IConvertible { /** * Number of distinct bookings paid via Stripe for the company. */ // @ApiMember(Description="Number of distinct bookings paid via Stripe for the company.") int StripePaidBookingsCount = 0; /** * Number of distinct bookings paid via Qvickly for the company. */ // @ApiMember(Description="Number of distinct bookings paid via Qvickly for the company.") int QvicklyPaidBookingsCount = 0; /** * Approximate number of bookings synced to a code lock / access control system. Derived from access-control external references (CodeLockAccessKey, IloqBookingKey); the system does not record confirmed syncs, so treat this as a proxy, not an exact count. */ // @ApiMember(Description="Approximate number of bookings synced to a code lock / access control system. Derived from access-control external references (CodeLockAccessKey, IloqBookingKey); the system does not record confirmed syncs, so treat this as a proxy, not an exact count.") int CodelockSyncedBookingsCount = 0; ResponseStatus ResponseStatus; SurvicateMetricsResponse({this.StripePaidBookingsCount,this.QvicklyPaidBookingsCount,this.CodelockSyncedBookingsCount,this.ResponseStatus}); SurvicateMetricsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { StripePaidBookingsCount = json['StripePaidBookingsCount']; QvicklyPaidBookingsCount = json['QvicklyPaidBookingsCount']; CodelockSyncedBookingsCount = json['CodelockSyncedBookingsCount']; ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'StripePaidBookingsCount': StripePaidBookingsCount, 'QvicklyPaidBookingsCount': QvicklyPaidBookingsCount, 'CodelockSyncedBookingsCount': CodelockSyncedBookingsCount, 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "SurvicateMetricsResponse"; TypeContext? context = _ctx; } // @Route("/survicate/metrics", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403) // @ValidateRequest(Validator="IsAuthenticated") class SurvicateMetricsQuery implements IReturn, ICompany, IConvertible, IGet { /** * Enter the company id. If blank and you are an admin, your own company id is used. */ // @ApiMember(Description="Enter the company id. If blank and you are an admin, your own company id is used.", ParameterType="query") String? CompanyId; SurvicateMetricsQuery({this.CompanyId}); SurvicateMetricsQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; return this; } Map toJson() => { 'CompanyId': CompanyId }; createResponse() => SurvicateMetricsResponse(); getResponseTypeName() => "SurvicateMetricsResponse"; getTypeName() => "SurvicateMetricsQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bookmore.com', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'SurvicateMetricsResponse': TypeInfo(TypeOf.Class, create:() => SurvicateMetricsResponse()), 'SurvicateMetricsQuery': TypeInfo(TypeOf.Class, create:() => SurvicateMetricsQuery()), });