/* Options: Date: 2026-08-06 08:30:58 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QueryBookingReservations.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } class AdminBookingReservationResult implements IConvertible { /** * The internal reservation id (target for the release endpoint). */ // @ApiMember(Description="The internal reservation id (target for the release endpoint).") int Id = 0; /** * The opaque session key that identifies the reservation. */ // @ApiMember(Description="The opaque session key that identifies the reservation.") String SessionKey = ""; /** * The reserved service id. */ // @ApiMember(Description="The reserved service id.") int ServiceId = 0; /** * The reservation start. */ // @ApiMember(Description="The reservation start.") DateTime From = DateTime(0); /** * The reservation end. */ // @ApiMember(Description="The reservation end.") DateTime To = DateTime(0); /** * Number of reserved spots. */ // @ApiMember(Description="Number of reserved spots.") int NumberOfBookedSpots = 0; /** * When the hold expires (company-local time). */ // @ApiMember(Description="When the hold expires (company-local time).") DateTime ExpirationDatetime = DateTime(0); /** * The BookingReservationStatus value. */ // @ApiMember(Description="The BookingReservationStatus value.") int StatusCode = 0; /** * The BookingReservationStatus name. */ // @ApiMember(Description="The BookingReservationStatus name.") String StatusName = ""; /** * The customer id holding the reservation, if any. */ // @ApiMember(Description="The customer id holding the reservation, if any.") String? CustomerId; /** * The customer's full name, when a customer is attached. */ // @ApiMember(Description="The customer's full name, when a customer is attached.") String CustomerName = ""; /** * The customer email (falls back to the BookedBy email when no customer is attached). */ // @ApiMember(Description="The customer email (falls back to the BookedBy email when no customer is attached).") String CustomerEmail = ""; AdminBookingReservationResult({this.Id,this.SessionKey,this.ServiceId,this.From,this.To,this.NumberOfBookedSpots,this.ExpirationDatetime,this.StatusCode,this.StatusName,this.CustomerId,this.CustomerName,this.CustomerEmail}); AdminBookingReservationResult.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; SessionKey = json['SessionKey']; ServiceId = json['ServiceId']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); NumberOfBookedSpots = json['NumberOfBookedSpots']; ExpirationDatetime = JsonConverters.fromJson(json['ExpirationDatetime'],'DateTime',context!); StatusCode = json['StatusCode']; StatusName = json['StatusName']; CustomerId = json['CustomerId']; CustomerName = json['CustomerName']; CustomerEmail = json['CustomerEmail']; return this; } Map toJson() => { 'Id': Id, 'SessionKey': SessionKey, 'ServiceId': ServiceId, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'NumberOfBookedSpots': NumberOfBookedSpots, 'ExpirationDatetime': JsonConverters.toJson(ExpirationDatetime,'DateTime',context!), 'StatusCode': StatusCode, 'StatusName': StatusName, 'CustomerId': CustomerId, 'CustomerName': CustomerName, 'CustomerEmail': CustomerEmail }; getTypeName() => "AdminBookingReservationResult"; TypeContext? context = _ctx; } class QueryBookingReservationsResponse implements IConvertible { /** * The matching reservation holds. */ // @ApiMember(Description="The matching reservation holds.") List Results = []; ResponseStatus ResponseStatus; QueryBookingReservationsResponse({this.Results,this.ResponseStatus}); QueryBookingReservationsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Results = JsonConverters.fromJson(json['Results'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Results': JsonConverters.toJson(Results,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "QueryBookingReservationsResponse"; TypeContext? context = _ctx; } // @Route("/admin/bookingreservations", "GET") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You are not an administrator for the requested company", StatusCode=403) class QueryBookingReservations implements IReturn, ICompany, IConvertible, IGet { /** * The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") String? CompanyId; /** * Only holds for this service id. */ // @ApiMember(Description="Only holds for this service id.") int? ServiceId; /** * Only holds whose start (From) is on or after this datetime. */ // @ApiMember(Description="Only holds whose start (From) is on or after this datetime.") DateTime? From; /** * Only holds whose start (From) is on or before this datetime. */ // @ApiMember(Description="Only holds whose start (From) is on or before this datetime.") DateTime? To; /** * Filter by BookingReservationStatus value. When omitted, the spot-holding statuses (Selecting=1, AwaitingPayment=2) are returned. */ // @ApiMember(Description="Filter by BookingReservationStatus value. When omitted, the spot-holding statuses (Selecting=1, AwaitingPayment=2) are returned.") int? StatusCode; QueryBookingReservations({this.CompanyId,this.ServiceId,this.From,this.To,this.StatusCode}); QueryBookingReservations.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ServiceId = json['ServiceId']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); StatusCode = json['StatusCode']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'ServiceId': ServiceId, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'StatusCode': StatusCode }; createResponse() => QueryBookingReservationsResponse(); getResponseTypeName() => "QueryBookingReservationsResponse"; getTypeName() => "QueryBookingReservations"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'AdminBookingReservationResult': TypeInfo(TypeOf.Class, create:() => AdminBookingReservationResult()), 'QueryBookingReservationsResponse': TypeInfo(TypeOf.Class, create:() => QueryBookingReservationsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'QueryBookingReservations': TypeInfo(TypeOf.Class, create:() => QueryBookingReservations()), });