BokaMera.API.Host

<back to all web services

SettingQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read
The following routes are available for this service:
GET/settingsGet settings for the currently logged in userGet settings for the currently logged in user.
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class ScheduleViewResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        return empty($o) ? new class(){} : $o;
    }
}

class WeekNumberSettingResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        return empty($o) ? new class(){} : $o;
    }
}

class BookingTemplateResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var string|null */
        public ?string $UsedByApplication=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['UsedByApplication'])) $this->UsedByApplication = $o['UsedByApplication'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->UsedByApplication)) $o['UsedByApplication'] = $this->UsedByApplication;
        return empty($o) ? new class(){} : $o;
    }
}

class CalendarTypeResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var bool|null */
        public ?bool $Active=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['Active'])) $this->Active = $o['Active'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->Active)) $o['Active'] = $this->Active;
        return empty($o) ? new class(){} : $o;
    }
}

class BookingStatusOptions implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        return empty($o) ? new class(){} : $o;
    }
}

class FreeSpotTextsResponse implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $Id=0,
        /** @var string|null */
        public ?string $TextSingular=null,
        /** @var string|null */
        public ?string $TextPlural=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['TextSingular'])) $this->TextSingular = $o['TextSingular'];
        if (isset($o['TextPlural'])) $this->TextPlural = $o['TextPlural'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->TextSingular)) $o['TextSingular'] = $this->TextSingular;
        if (isset($this->TextPlural)) $o['TextPlural'] = $this->TextPlural;
        return empty($o) ? new class(){} : $o;
    }
}

class SettingResponse implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $CompanyId='',
        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $BookingStatusId=0,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $ScheduleViewId=0,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $BookingTemplateId=0,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $CalendarTypeId=0,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $AllowBookingOnUnbookedTimes=null,

        /** @description  */
        // @DataMember(Name="SendEmailReminder")
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $SendEmailReminder=null,

        /** @description  */
        // @DataMember(Name="SendSmsReminder")
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $SendSmsReminder=null,

        /** @description  */
        // @DataMember(Name="SendEmailConfirmation")
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $SendEmailConfirmation=null,

        /** @description  */
        // @DataMember(Name="SendSmsConfirmation")
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $SendSmsConfirmation=null,

        /** @description Message text field that could be used inside message templates using [MessageText]. */
        // @ApiMember(DataType="string", Description="Message text field that could be used inside message templates using [MessageText].")
        /** @var string|null */
        public ?string $MessageText=null,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $EmailReminderTime=0,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $SmsReminderTime=0,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $MaxActiveBookings=0,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $SendNotifications=null,

        /** @description  */
        // @ApiMember(DataType="string", Description="")
        /** @var string|null */
        public ?string $SendNotificationsEmail=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $EnableMobileApp=null,

        /** @description  */
        // @ApiMember(Description="")
        /** @var DateInterval|null */
        public ?DateInterval $ScheduleStartTime=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var DateInterval|null */
        public ?DateInterval $ScheduleEndTime=null,

        /** @description The admin scheduler if each resources should be shown in a seperate group */
        // @ApiMember(DataType="boolean", Description="The admin scheduler if each resources should be shown in a seperate group")
        /** @var bool|null */
        public ?bool $ScheduleGroupResources=null,

        /** @description The admin scheduler if the horizontal scrolling should be turned off */
        // @ApiMember(DataType="boolean", Description="The admin scheduler if the horizontal scrolling should be turned off")
        /** @var bool|null */
        public ?bool $SchedulerDisableHorizontalScrolling=null,

        /** @description  */
        // @ApiMember(DataType="string", Description="")
        /** @var string|null */
        public ?string $ReceiptTemplate=null,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $ScheduleTimeSlotMinutes=0,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $ShowFreeTimesLeft=null,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $FreeSpotTextsId=0,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $EnableICalGroupBookings=null,

        /** @description Booking agreement text. All html needs to entered using markup. Read about markup here https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet. Use this editor to create markup https://stackedit.io/app# */
        // @ApiMember(DataType="string", Description="Booking agreement text. All html needs to entered using markup. Read about markup here https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet. Use this editor to create markup https://stackedit.io/app#")
        /** @var string|null */
        public ?string $AgreementTemplate=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $ScheduleShowTimeExeptions=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $EnableBookingsOnSameTime=null,

        /** @description  */
        // @ApiMember(DataType="int", Description="")
        /** @var int */
        public int $ShowWeekNumberSettingId=0,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $EnableShowBookedTimes=null,

        /** @description  */
        // @ApiMember(DataType="", Description="")
        /** @var int|null */
        public ?int $BookSpotUserResponseMinutes=null,

        /** @description  */
        // @ApiMember(DataType="", Description="")
        /** @var bool|null */
        public ?bool $IsBookSpotDirectly=null,

        /** @description  */
        // @ApiMember(DataType="", Description="")
        /** @var int */
        public int $BookSpotDirectlyTimeLeftMinutes=0,

        /** @description  */
        // @ApiMember(DataType="", Description="")
        /** @var bool|null */
        public ?bool $SendEmailNotificationQueue=null,

        /** @description  */
        // @ApiMember(DataType="", Description="")
        /** @var bool|null */
        public ?bool $SendSMSNotificationQueue=null,

        /** @description  */
        // @ApiMember(Description="")
        /** @var bool|null */
        public ?bool $EnableSendFollowUpMessage=null,

        /** @description When follow up message should be sent in hours after the booking. */
        // @ApiMember(Description="When follow up message should be sent in hours after the booking.")
        /** @var int */
        public int $FollowUpMessageTime=0,

        /** @description If it's only allowed for existing customers to book */
        // @ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book")
        /** @var bool|null */
        public ?bool $BookOnlyOnExistingCustomers=null,

        /** @description If a unique pin code should be generated for the customer */
        // @ApiMember(DataType="boolean", Description="If a unique pin code should be generated for the customer")
        /** @var bool|null */
        public ?bool $AutoGenerateUniquePinCode=null,

        /** @description If a user profile should be created when customer is booking time. With the property customer can login. */
        // @ApiMember(DataType="boolean", Description="If a user profile should be created when customer is booking time. With the property customer can login.")
        /** @var bool|null */
        public ?bool $AutoCreateUserProfile=null,

        /** @description The available schedule view options to choose from */
        // @ApiMember(Description="The available schedule view options to choose from")
        /** @var array<ScheduleViewResponse>|null */
        public ?array $ScheduleViewOptions=null,

        /** @description The available week number options to choose from */
        // @ApiMember(Description="The available week number options to choose from")
        /** @var array<WeekNumberSettingResponse>|null */
        public ?array $WeekNumberOptions=null,

        /** @description The booking template options to choose from */
        // @ApiMember(Description="The booking template options to choose from")
        /** @var array<BookingTemplateResponse>|null */
        public ?array $BookingTemplateOptions=null,

        /** @description The calendar type options to choose from */
        // @ApiMember(Description="The calendar type options to choose from")
        /** @var array<CalendarTypeResponse>|null */
        public ?array $CalendarTypeOptions=null,

        /** @description The booking status options to choose from */
        // @ApiMember(Description="The booking status options to choose from")
        /** @var array<BookingStatusOptions>|null */
        public ?array $BookingStatusOptions=null,

        /** @description The free spot text options to choose from */
        // @ApiMember(Description="The free spot text options to choose from")
        /** @var array<FreeSpotTextsResponse>|null */
        public ?array $FreeSpotTextOptions=null,

        /** @description If you have different prices over different times per day and want it to calculate the weighted price for the booked time. */
        // @ApiMember(DataType="boolean", Description="If you have different prices over different times per day and want it to calculate the weighted price for the booked time.")
        /** @var bool|null */
        public ?bool $WeightedPrices=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $ShowMultiDayAsTime=null,

        /** @description  */
        // @ApiMember(DataType="boolean", Description="")
        /** @var bool|null */
        public ?bool $ShowMultipleResourcesAsOne=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['CompanyId'])) $this->CompanyId = $o['CompanyId'];
        if (isset($o['BookingStatusId'])) $this->BookingStatusId = $o['BookingStatusId'];
        if (isset($o['ScheduleViewId'])) $this->ScheduleViewId = $o['ScheduleViewId'];
        if (isset($o['BookingTemplateId'])) $this->BookingTemplateId = $o['BookingTemplateId'];
        if (isset($o['CalendarTypeId'])) $this->CalendarTypeId = $o['CalendarTypeId'];
        if (isset($o['AllowBookingOnUnbookedTimes'])) $this->AllowBookingOnUnbookedTimes = $o['AllowBookingOnUnbookedTimes'];
        if (isset($o['SendEmailReminder'])) $this->SendEmailReminder = $o['SendEmailReminder'];
        if (isset($o['SendSmsReminder'])) $this->SendSmsReminder = $o['SendSmsReminder'];
        if (isset($o['SendEmailConfirmation'])) $this->SendEmailConfirmation = $o['SendEmailConfirmation'];
        if (isset($o['SendSmsConfirmation'])) $this->SendSmsConfirmation = $o['SendSmsConfirmation'];
        if (isset($o['MessageText'])) $this->MessageText = $o['MessageText'];
        if (isset($o['EmailReminderTime'])) $this->EmailReminderTime = $o['EmailReminderTime'];
        if (isset($o['SmsReminderTime'])) $this->SmsReminderTime = $o['SmsReminderTime'];
        if (isset($o['MaxActiveBookings'])) $this->MaxActiveBookings = $o['MaxActiveBookings'];
        if (isset($o['SendNotifications'])) $this->SendNotifications = $o['SendNotifications'];
        if (isset($o['SendNotificationsEmail'])) $this->SendNotificationsEmail = $o['SendNotificationsEmail'];
        if (isset($o['EnableMobileApp'])) $this->EnableMobileApp = $o['EnableMobileApp'];
        if (isset($o['ScheduleStartTime'])) $this->ScheduleStartTime = JsonConverters::from('TimeSpan', $o['ScheduleStartTime']);
        if (isset($o['ScheduleEndTime'])) $this->ScheduleEndTime = JsonConverters::from('TimeSpan', $o['ScheduleEndTime']);
        if (isset($o['ScheduleGroupResources'])) $this->ScheduleGroupResources = $o['ScheduleGroupResources'];
        if (isset($o['SchedulerDisableHorizontalScrolling'])) $this->SchedulerDisableHorizontalScrolling = $o['SchedulerDisableHorizontalScrolling'];
        if (isset($o['ReceiptTemplate'])) $this->ReceiptTemplate = $o['ReceiptTemplate'];
        if (isset($o['ScheduleTimeSlotMinutes'])) $this->ScheduleTimeSlotMinutes = $o['ScheduleTimeSlotMinutes'];
        if (isset($o['ShowFreeTimesLeft'])) $this->ShowFreeTimesLeft = $o['ShowFreeTimesLeft'];
        if (isset($o['FreeSpotTextsId'])) $this->FreeSpotTextsId = $o['FreeSpotTextsId'];
        if (isset($o['EnableICalGroupBookings'])) $this->EnableICalGroupBookings = $o['EnableICalGroupBookings'];
        if (isset($o['AgreementTemplate'])) $this->AgreementTemplate = $o['AgreementTemplate'];
        if (isset($o['ScheduleShowTimeExeptions'])) $this->ScheduleShowTimeExeptions = $o['ScheduleShowTimeExeptions'];
        if (isset($o['EnableBookingsOnSameTime'])) $this->EnableBookingsOnSameTime = $o['EnableBookingsOnSameTime'];
        if (isset($o['ShowWeekNumberSettingId'])) $this->ShowWeekNumberSettingId = $o['ShowWeekNumberSettingId'];
        if (isset($o['EnableShowBookedTimes'])) $this->EnableShowBookedTimes = $o['EnableShowBookedTimes'];
        if (isset($o['BookSpotUserResponseMinutes'])) $this->BookSpotUserResponseMinutes = $o['BookSpotUserResponseMinutes'];
        if (isset($o['IsBookSpotDirectly'])) $this->IsBookSpotDirectly = $o['IsBookSpotDirectly'];
        if (isset($o['BookSpotDirectlyTimeLeftMinutes'])) $this->BookSpotDirectlyTimeLeftMinutes = $o['BookSpotDirectlyTimeLeftMinutes'];
        if (isset($o['SendEmailNotificationQueue'])) $this->SendEmailNotificationQueue = $o['SendEmailNotificationQueue'];
        if (isset($o['SendSMSNotificationQueue'])) $this->SendSMSNotificationQueue = $o['SendSMSNotificationQueue'];
        if (isset($o['EnableSendFollowUpMessage'])) $this->EnableSendFollowUpMessage = $o['EnableSendFollowUpMessage'];
        if (isset($o['FollowUpMessageTime'])) $this->FollowUpMessageTime = $o['FollowUpMessageTime'];
        if (isset($o['BookOnlyOnExistingCustomers'])) $this->BookOnlyOnExistingCustomers = $o['BookOnlyOnExistingCustomers'];
        if (isset($o['AutoGenerateUniquePinCode'])) $this->AutoGenerateUniquePinCode = $o['AutoGenerateUniquePinCode'];
        if (isset($o['AutoCreateUserProfile'])) $this->AutoCreateUserProfile = $o['AutoCreateUserProfile'];
        if (isset($o['ScheduleViewOptions'])) $this->ScheduleViewOptions = JsonConverters::fromArray('ScheduleViewResponse', $o['ScheduleViewOptions']);
        if (isset($o['WeekNumberOptions'])) $this->WeekNumberOptions = JsonConverters::fromArray('WeekNumberSettingResponse', $o['WeekNumberOptions']);
        if (isset($o['BookingTemplateOptions'])) $this->BookingTemplateOptions = JsonConverters::fromArray('BookingTemplateResponse', $o['BookingTemplateOptions']);
        if (isset($o['CalendarTypeOptions'])) $this->CalendarTypeOptions = JsonConverters::fromArray('CalendarTypeResponse', $o['CalendarTypeOptions']);
        if (isset($o['BookingStatusOptions'])) $this->BookingStatusOptions = JsonConverters::fromArray('BookingStatusOptions', $o['BookingStatusOptions']);
        if (isset($o['FreeSpotTextOptions'])) $this->FreeSpotTextOptions = JsonConverters::fromArray('FreeSpotTextsResponse', $o['FreeSpotTextOptions']);
        if (isset($o['WeightedPrices'])) $this->WeightedPrices = $o['WeightedPrices'];
        if (isset($o['ShowMultiDayAsTime'])) $this->ShowMultiDayAsTime = $o['ShowMultiDayAsTime'];
        if (isset($o['ShowMultipleResourcesAsOne'])) $this->ShowMultipleResourcesAsOne = $o['ShowMultipleResourcesAsOne'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->CompanyId)) $o['CompanyId'] = $this->CompanyId;
        if (isset($this->BookingStatusId)) $o['BookingStatusId'] = $this->BookingStatusId;
        if (isset($this->ScheduleViewId)) $o['ScheduleViewId'] = $this->ScheduleViewId;
        if (isset($this->BookingTemplateId)) $o['BookingTemplateId'] = $this->BookingTemplateId;
        if (isset($this->CalendarTypeId)) $o['CalendarTypeId'] = $this->CalendarTypeId;
        if (isset($this->AllowBookingOnUnbookedTimes)) $o['AllowBookingOnUnbookedTimes'] = $this->AllowBookingOnUnbookedTimes;
        if (isset($this->SendEmailReminder)) $o['SendEmailReminder'] = $this->SendEmailReminder;
        if (isset($this->SendSmsReminder)) $o['SendSmsReminder'] = $this->SendSmsReminder;
        if (isset($this->SendEmailConfirmation)) $o['SendEmailConfirmation'] = $this->SendEmailConfirmation;
        if (isset($this->SendSmsConfirmation)) $o['SendSmsConfirmation'] = $this->SendSmsConfirmation;
        if (isset($this->MessageText)) $o['MessageText'] = $this->MessageText;
        if (isset($this->EmailReminderTime)) $o['EmailReminderTime'] = $this->EmailReminderTime;
        if (isset($this->SmsReminderTime)) $o['SmsReminderTime'] = $this->SmsReminderTime;
        if (isset($this->MaxActiveBookings)) $o['MaxActiveBookings'] = $this->MaxActiveBookings;
        if (isset($this->SendNotifications)) $o['SendNotifications'] = $this->SendNotifications;
        if (isset($this->SendNotificationsEmail)) $o['SendNotificationsEmail'] = $this->SendNotificationsEmail;
        if (isset($this->EnableMobileApp)) $o['EnableMobileApp'] = $this->EnableMobileApp;
        if (isset($this->ScheduleStartTime)) $o['ScheduleStartTime'] = JsonConverters::to('TimeSpan', $this->ScheduleStartTime);
        if (isset($this->ScheduleEndTime)) $o['ScheduleEndTime'] = JsonConverters::to('TimeSpan', $this->ScheduleEndTime);
        if (isset($this->ScheduleGroupResources)) $o['ScheduleGroupResources'] = $this->ScheduleGroupResources;
        if (isset($this->SchedulerDisableHorizontalScrolling)) $o['SchedulerDisableHorizontalScrolling'] = $this->SchedulerDisableHorizontalScrolling;
        if (isset($this->ReceiptTemplate)) $o['ReceiptTemplate'] = $this->ReceiptTemplate;
        if (isset($this->ScheduleTimeSlotMinutes)) $o['ScheduleTimeSlotMinutes'] = $this->ScheduleTimeSlotMinutes;
        if (isset($this->ShowFreeTimesLeft)) $o['ShowFreeTimesLeft'] = $this->ShowFreeTimesLeft;
        if (isset($this->FreeSpotTextsId)) $o['FreeSpotTextsId'] = $this->FreeSpotTextsId;
        if (isset($this->EnableICalGroupBookings)) $o['EnableICalGroupBookings'] = $this->EnableICalGroupBookings;
        if (isset($this->AgreementTemplate)) $o['AgreementTemplate'] = $this->AgreementTemplate;
        if (isset($this->ScheduleShowTimeExeptions)) $o['ScheduleShowTimeExeptions'] = $this->ScheduleShowTimeExeptions;
        if (isset($this->EnableBookingsOnSameTime)) $o['EnableBookingsOnSameTime'] = $this->EnableBookingsOnSameTime;
        if (isset($this->ShowWeekNumberSettingId)) $o['ShowWeekNumberSettingId'] = $this->ShowWeekNumberSettingId;
        if (isset($this->EnableShowBookedTimes)) $o['EnableShowBookedTimes'] = $this->EnableShowBookedTimes;
        if (isset($this->BookSpotUserResponseMinutes)) $o['BookSpotUserResponseMinutes'] = $this->BookSpotUserResponseMinutes;
        if (isset($this->IsBookSpotDirectly)) $o['IsBookSpotDirectly'] = $this->IsBookSpotDirectly;
        if (isset($this->BookSpotDirectlyTimeLeftMinutes)) $o['BookSpotDirectlyTimeLeftMinutes'] = $this->BookSpotDirectlyTimeLeftMinutes;
        if (isset($this->SendEmailNotificationQueue)) $o['SendEmailNotificationQueue'] = $this->SendEmailNotificationQueue;
        if (isset($this->SendSMSNotificationQueue)) $o['SendSMSNotificationQueue'] = $this->SendSMSNotificationQueue;
        if (isset($this->EnableSendFollowUpMessage)) $o['EnableSendFollowUpMessage'] = $this->EnableSendFollowUpMessage;
        if (isset($this->FollowUpMessageTime)) $o['FollowUpMessageTime'] = $this->FollowUpMessageTime;
        if (isset($this->BookOnlyOnExistingCustomers)) $o['BookOnlyOnExistingCustomers'] = $this->BookOnlyOnExistingCustomers;
        if (isset($this->AutoGenerateUniquePinCode)) $o['AutoGenerateUniquePinCode'] = $this->AutoGenerateUniquePinCode;
        if (isset($this->AutoCreateUserProfile)) $o['AutoCreateUserProfile'] = $this->AutoCreateUserProfile;
        if (isset($this->ScheduleViewOptions)) $o['ScheduleViewOptions'] = JsonConverters::toArray('ScheduleViewResponse', $this->ScheduleViewOptions);
        if (isset($this->WeekNumberOptions)) $o['WeekNumberOptions'] = JsonConverters::toArray('WeekNumberSettingResponse', $this->WeekNumberOptions);
        if (isset($this->BookingTemplateOptions)) $o['BookingTemplateOptions'] = JsonConverters::toArray('BookingTemplateResponse', $this->BookingTemplateOptions);
        if (isset($this->CalendarTypeOptions)) $o['CalendarTypeOptions'] = JsonConverters::toArray('CalendarTypeResponse', $this->CalendarTypeOptions);
        if (isset($this->BookingStatusOptions)) $o['BookingStatusOptions'] = JsonConverters::toArray('BookingStatusOptions', $this->BookingStatusOptions);
        if (isset($this->FreeSpotTextOptions)) $o['FreeSpotTextOptions'] = JsonConverters::toArray('FreeSpotTextsResponse', $this->FreeSpotTextOptions);
        if (isset($this->WeightedPrices)) $o['WeightedPrices'] = $this->WeightedPrices;
        if (isset($this->ShowMultiDayAsTime)) $o['ShowMultiDayAsTime'] = $this->ShowMultiDayAsTime;
        if (isset($this->ShowMultipleResourcesAsOne)) $o['ShowMultipleResourcesAsOne'] = $this->ShowMultipleResourcesAsOne;
        return empty($o) ? new class(){} : $o;
    }
}

// @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 SettingQuery implements JsonSerializable
{
    public function __construct(
        /** @description If you want to include the schedule views to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the schedule views to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeScheduleViewOptions=null,

        /** @description If you want to include the week number settings to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the week number settings to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeWeekNumberOptions=null,

        /** @description If you want to include the booking template options to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the booking template options to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeBookingTemplateOptions=null,

        /** @description If you want to include the calendar type options to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the calendar type options to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeCalendarTypeOptions=null,

        /** @description If you want to include the booking status options to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the booking status options to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeBookingStatusOptions=null,

        /** @description If you want to include the Free spot text options to select from */
        // @ApiMember(DataType="boolean", Description="If you want to include the Free spot text options to select from", ParameterType="query")
        /** @var bool|null */
        public ?bool $IncludeFreeSpotTextOptions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IncludeScheduleViewOptions'])) $this->IncludeScheduleViewOptions = $o['IncludeScheduleViewOptions'];
        if (isset($o['IncludeWeekNumberOptions'])) $this->IncludeWeekNumberOptions = $o['IncludeWeekNumberOptions'];
        if (isset($o['IncludeBookingTemplateOptions'])) $this->IncludeBookingTemplateOptions = $o['IncludeBookingTemplateOptions'];
        if (isset($o['IncludeCalendarTypeOptions'])) $this->IncludeCalendarTypeOptions = $o['IncludeCalendarTypeOptions'];
        if (isset($o['IncludeBookingStatusOptions'])) $this->IncludeBookingStatusOptions = $o['IncludeBookingStatusOptions'];
        if (isset($o['IncludeFreeSpotTextOptions'])) $this->IncludeFreeSpotTextOptions = $o['IncludeFreeSpotTextOptions'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IncludeScheduleViewOptions)) $o['IncludeScheduleViewOptions'] = $this->IncludeScheduleViewOptions;
        if (isset($this->IncludeWeekNumberOptions)) $o['IncludeWeekNumberOptions'] = $this->IncludeWeekNumberOptions;
        if (isset($this->IncludeBookingTemplateOptions)) $o['IncludeBookingTemplateOptions'] = $this->IncludeBookingTemplateOptions;
        if (isset($this->IncludeCalendarTypeOptions)) $o['IncludeCalendarTypeOptions'] = $this->IncludeCalendarTypeOptions;
        if (isset($this->IncludeBookingStatusOptions)) $o['IncludeBookingStatusOptions'] = $this->IncludeBookingStatusOptions;
        if (isset($this->IncludeFreeSpotTextOptions)) $o['IncludeFreeSpotTextOptions'] = $this->IncludeFreeSpotTextOptions;
        return empty($o) ? new class(){} : $o;
    }
}

PHP SettingQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /settings HTTP/1.1 
Host: api.bokamera.se 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<SettingResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <AgreementTemplate>String</AgreementTemplate>
  <AllowBookingOnUnbookedTimes>false</AllowBookingOnUnbookedTimes>
  <AutoCreateUserProfile>false</AutoCreateUserProfile>
  <AutoGenerateUniquePinCode>false</AutoGenerateUniquePinCode>
  <BookOnlyOnExistingCustomers>false</BookOnlyOnExistingCustomers>
  <BookSpotDirectlyTimeLeftMinutes>0</BookSpotDirectlyTimeLeftMinutes>
  <BookSpotUserResponseMinutes>0</BookSpotUserResponseMinutes>
  <BookingStatusId>0</BookingStatusId>
  <BookingStatusOptions xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db">
    <d2p1:BookingStatusOptions>
      <d2p1:Description>String</d2p1:Description>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:Name>String</d2p1:Name>
    </d2p1:BookingStatusOptions>
  </BookingStatusOptions>
  <BookingTemplateId>0</BookingTemplateId>
  <BookingTemplateOptions>
    <BookingTemplateResponse>
      <Description>String</Description>
      <Id>0</Id>
      <Name>String</Name>
      <UsedByApplication>String</UsedByApplication>
    </BookingTemplateResponse>
  </BookingTemplateOptions>
  <CalendarTypeId>0</CalendarTypeId>
  <CalendarTypeOptions>
    <CalendarTypeResponse>
      <Active>false</Active>
      <Description>String</Description>
      <Id>0</Id>
      <Name>String</Name>
    </CalendarTypeResponse>
  </CalendarTypeOptions>
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <EmailReminderTime>0</EmailReminderTime>
  <EnableBookingsOnSameTime>false</EnableBookingsOnSameTime>
  <EnableICalGroupBookings>false</EnableICalGroupBookings>
  <EnableMobileApp>false</EnableMobileApp>
  <EnableSendFollowUpMessage>false</EnableSendFollowUpMessage>
  <EnableShowBookedTimes>false</EnableShowBookedTimes>
  <FollowUpMessageTime>0</FollowUpMessageTime>
  <FreeSpotTextOptions>
    <FreeSpotTextsResponse>
      <Id>0</Id>
      <TextPlural>String</TextPlural>
      <TextSingular>String</TextSingular>
    </FreeSpotTextsResponse>
  </FreeSpotTextOptions>
  <FreeSpotTextsId>0</FreeSpotTextsId>
  <IsBookSpotDirectly>false</IsBookSpotDirectly>
  <MaxActiveBookings>0</MaxActiveBookings>
  <MessageText>String</MessageText>
  <ReceiptTemplate>String</ReceiptTemplate>
  <ScheduleEndTime>PT0S</ScheduleEndTime>
  <ScheduleGroupResources>false</ScheduleGroupResources>
  <ScheduleShowTimeExeptions>false</ScheduleShowTimeExeptions>
  <ScheduleStartTime>PT0S</ScheduleStartTime>
  <ScheduleTimeSlotMinutes>0</ScheduleTimeSlotMinutes>
  <ScheduleViewId>0</ScheduleViewId>
  <ScheduleViewOptions>
    <ScheduleViewResponse>
      <Id>0</Id>
      <Name>String</Name>
    </ScheduleViewResponse>
  </ScheduleViewOptions>
  <SchedulerDisableHorizontalScrolling>false</SchedulerDisableHorizontalScrolling>
  <SendEmailConfirmation>false</SendEmailConfirmation>
  <SendEmailNotificationQueue>false</SendEmailNotificationQueue>
  <SendEmailReminder>false</SendEmailReminder>
  <SendNotifications>false</SendNotifications>
  <SendNotificationsEmail>String</SendNotificationsEmail>
  <SendSMSNotificationQueue>false</SendSMSNotificationQueue>
  <SendSmsConfirmation>false</SendSmsConfirmation>
  <SendSmsReminder>false</SendSmsReminder>
  <ShowFreeTimesLeft>false</ShowFreeTimesLeft>
  <ShowMultiDayAsTime>false</ShowMultiDayAsTime>
  <ShowMultipleResourcesAsOne>false</ShowMultipleResourcesAsOne>
  <ShowWeekNumberSettingId>0</ShowWeekNumberSettingId>
  <SmsReminderTime>0</SmsReminderTime>
  <WeekNumberOptions>
    <WeekNumberSettingResponse>
      <Description>String</Description>
      <Id>0</Id>
      <Name>String</Name>
    </WeekNumberSettingResponse>
  </WeekNumberOptions>
  <WeightedPrices>false</WeightedPrices>
</SettingResponse>