BokaMera.API.Host

<back to all web services

UpdateSetting

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/settingsUpdate settings for the company of the currently logged in userUpdate settings for the company of the currently logged in user.
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ScheduleViewResponse:
    id: int = 0
    name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WeekNumberSettingResponse:
    id: int = 0
    name: Optional[str] = None
    description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BookingTemplateResponse:
    id: int = 0
    name: Optional[str] = None
    description: Optional[str] = None
    used_by_application: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CalendarTypeResponse:
    id: int = 0
    name: Optional[str] = None
    description: Optional[str] = None
    active: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BookingStatusOptions:
    id: int = 0
    name: Optional[str] = None
    description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FreeSpotTextsResponse:
    id: int = 0
    text_singular: Optional[str] = None
    text_plural: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SettingResponse:
    company_id: Optional[str] = None
    # @ApiMember(DataType="int", Description="")
    booking_status_id: int = 0
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    schedule_view_id: int = 0
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    booking_template_id: int = 0
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    calendar_type_id: int = 0
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    allow_booking_on_unbooked_times: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_email_reminder: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_sms_reminder: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_email_confirmation: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_sms_confirmation: bool = False
    """
    
    """

    # @ApiMember(DataType="string", Description="Message text field that could be used inside message templates using [MessageText].")
    message_text: Optional[str] = None
    """
    Message text field that could be used inside message templates using [MessageText].
    """


    # @ApiMember(DataType="int", Description="")
    email_reminder_time: int = 0
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    sms_reminder_time: int = 0
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    max_active_bookings: int = 0
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_notifications: bool = False
    """
    
    """

    # @ApiMember(DataType="string", Description="")
    send_notifications_email: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    enable_mobile_app: bool = False
    """
    
    """

    # @ApiMember(Description="")
    schedule_start_time: Optional[datetime.timedelta] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    schedule_end_time: Optional[datetime.timedelta] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="The admin scheduler if each resources should be shown in a seperate group")
    schedule_group_resources: bool = False
    """
    The admin scheduler if each resources should be shown in a seperate group
    """


    # @ApiMember(DataType="boolean", Description="The admin scheduler if the horizontal scrolling should be turned off")
    scheduler_disable_horizontal_scrolling: bool = False
    """
    The admin scheduler if the horizontal scrolling should be turned off
    """


    # @ApiMember(DataType="string", Description="")
    receipt_template: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    schedule_time_slot_minutes: int = 0
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    show_free_times_left: bool = False
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    free_spot_texts_id: int = 0
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    enable_i_cal_group_bookings: bool = False
    """
    
    """

    # @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#")
    agreement_template: Optional[str] = None
    """
    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="boolean", Description="")
    schedule_show_time_exeptions: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    enable_bookings_on_same_time: bool = False
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    show_week_number_setting_id: int = 0
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    enable_show_booked_times: bool = False
    """
    
    """

    # @ApiMember(DataType="", Description="")
    book_spot_user_response_minutes: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="", Description="")
    is_book_spot_directly: bool = False
    """
    
    """

    # @ApiMember(DataType="", Description="")
    book_spot_directly_time_left_minutes: int = 0
    """
    
    """

    # @ApiMember(DataType="", Description="")
    send_email_notification_queue: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="", Description="")
    send_s_m_s_notification_queue: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    enable_send_follow_up_message: bool = False
    """
    
    """

    # @ApiMember(Description="When follow up message should be sent in hours after the booking.")
    follow_up_message_time: int = 0
    """
    When follow up message should be sent in hours after the booking.
    """


    # @ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book")
    book_only_on_existing_customers: bool = False
    """
    If it's only allowed for existing customers to book
    """


    # @ApiMember(DataType="boolean", Description="If a unique pin code should be generated for the customer")
    auto_generate_unique_pin_code: bool = False
    """
    If a unique pin code should be generated for the customer
    """


    # @ApiMember(DataType="boolean", Description="If a user profile should be created when customer is booking time. With the property customer can login.")
    auto_create_user_profile: bool = False
    """
    If a user profile should be created when customer is booking time. With the property customer can login.
    """


    # @ApiMember(Description="The available schedule view options to choose from")
    schedule_view_options: Optional[List[ScheduleViewResponse]] = None
    """
    The available schedule view options to choose from
    """


    # @ApiMember(Description="The available week number options to choose from")
    week_number_options: Optional[List[WeekNumberSettingResponse]] = None
    """
    The available week number options to choose from
    """


    # @ApiMember(Description="The booking template options to choose from")
    booking_template_options: Optional[List[BookingTemplateResponse]] = None
    """
    The booking template options to choose from
    """


    # @ApiMember(Description="The calendar type options to choose from")
    calendar_type_options: Optional[List[CalendarTypeResponse]] = None
    """
    The calendar type options to choose from
    """


    # @ApiMember(Description="The booking status options to choose from")
    booking_status_options: Optional[List[BookingStatusOptions]] = None
    """
    The booking status options to choose from
    """


    # @ApiMember(Description="The free spot text options to choose from")
    free_spot_text_options: Optional[List[FreeSpotTextsResponse]] = None
    """
    The free spot text options to choose from
    """


    # @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.")
    weighted_prices: bool = False
    """
    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="")
    show_multi_day_as_time: bool = False
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    show_multiple_resources_as_one: bool = False
    """
    
    """


# @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")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateSetting(ICompany):
    # @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    company_id: Optional[str] = None
    """
    The company id, if empty will use the company id for the user you are logged in with.
    """


    # @ApiMember(DataType="int", Description="")
    booking_status_id: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    schedule_view_id: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    booking_template_id: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    calendar_type_id: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="bool", Description="")
    allow_booking_on_unbooked_times: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_email_reminder: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_sms_reminder: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_email_confirmation: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_sms_confirmation: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    email_reminder_time: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    sms_reminder_time: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    max_active_bookings: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="bool", Description="")
    send_notifications: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="")
    send_notifications_email: Optional[str] = None
    """
    
    """

    # @ApiMember(DataType="string", Description="Message text field that could be used inside message templates using [MessageText].")
    message_text: Optional[str] = None
    """
    Message text field that could be used inside message templates using [MessageText].
    """


    # @ApiMember(DataType="bool", Description="")
    enable_mobile_app: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="The admin scheduler start time to show as default")
    schedule_start_time: Optional[datetime.timedelta] = None
    """
    The admin scheduler start time to show as default
    """


    # @ApiMember(Description="The admin scheduler end time to show as default")
    schedule_end_time: Optional[datetime.timedelta] = None
    """
    The admin scheduler end time to show as default
    """


    # @ApiMember(DataType="string", Description="Booking receipt text.")
    receipt_template: Optional[str] = None
    """
    Booking receipt text.
    """


    # @ApiMember(Description="The admin scheduler minutes of each timeslot")
    schedule_time_slot_minutes: Optional[int] = None
    """
    The admin scheduler minutes of each timeslot
    """


    # @ApiMember(Description="The admin scheduler if each resources should be shown in a seperate group")
    schedule_group_resources: Optional[bool] = None
    """
    The admin scheduler if each resources should be shown in a seperate group
    """


    # @ApiMember(DataType="boolean", Description="The admin scheduler if the horizontal scrolling should be turned off")
    scheduler_disable_horizontal_scrolling: Optional[bool] = None
    """
    The admin scheduler if the horizontal scrolling should be turned off
    """


    # @ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book")
    book_only_on_existing_customers: Optional[bool] = None
    """
    If it's only allowed for existing customers to book
    """


    # @ApiMember(DataType="boolean", Description="If a unique pin code should be generated for the customer")
    auto_generate_unique_pin_code: Optional[bool] = None
    """
    If a unique pin code should be generated for the customer
    """


    # @ApiMember(DataType="boolean", Description="If a user profile should be created when customer is booking time. With the property customer can login.")
    auto_create_user_profile: Optional[bool] = None
    """
    If a user profile should be created when customer is booking time. With the property customer can login.
    """


    # @ApiMember(Description="When follow up message should be sent in hours after the booking.")
    follow_up_message_time: Optional[int] = None
    """
    When follow up message should be sent in hours after the booking.
    """


    # @ApiMember(Description="")
    show_free_times_left: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    free_spot_texts_id: Optional[int] = None
    """
    
    """

    # @ApiMember(Description="")
    enable_i_cal_group_bookings: Optional[bool] = None
    """
    
    """

    # @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#")
    agreement_template: Optional[str] = None
    """
    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(Description="")
    schedule_show_time_exeptions: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    enable_bookings_on_same_time: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    show_week_number_setting_id: Optional[int] = None
    """
    
    """

    # @ApiMember(Description="")
    enable_show_booked_times: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    enable_send_follow_up_message: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    book_spot_user_response_minutes: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    is_book_spot_directly: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    book_spot_directly_time_left_minutes: Optional[int] = None
    """
    
    """

    # @ApiMember(DataType="int", Description="")
    send_email_notification_queue: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    send_s_m_s_notification_queue: Optional[bool] = None
    """
    
    """

    # @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.")
    weighted_prices: Optional[bool] = None
    """
    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="")
    show_multi_day_as_time: Optional[bool] = None
    """
    
    """

    # @ApiMember(DataType="boolean", Description="")
    show_multiple_resources_as_one: Optional[bool] = None
    """
    
    """

Python UpdateSetting DTOs

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

HTTP + JSV

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

PUT /settings HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	BookingStatusId: 0,
	ScheduleViewId: 0,
	BookingTemplateId: 0,
	CalendarTypeId: 0,
	AllowBookingOnUnbookedTimes: False,
	SendEmailReminder: False,
	SendSmsReminder: False,
	SendEmailConfirmation: False,
	SendSmsConfirmation: False,
	EmailReminderTime: 0,
	SmsReminderTime: 0,
	MaxActiveBookings: 0,
	SendNotifications: False,
	SendNotificationsEmail: String,
	MessageText: String,
	EnableMobileApp: False,
	ScheduleStartTime: PT0S,
	ScheduleEndTime: PT0S,
	ReceiptTemplate: String,
	ScheduleTimeSlotMinutes: 0,
	ScheduleGroupResources: False,
	SchedulerDisableHorizontalScrolling: False,
	BookOnlyOnExistingCustomers: False,
	AutoGenerateUniquePinCode: False,
	AutoCreateUserProfile: False,
	FollowUpMessageTime: 0,
	ShowFreeTimesLeft: False,
	FreeSpotTextsId: 0,
	EnableICalGroupBookings: False,
	AgreementTemplate: String,
	ScheduleShowTimeExeptions: False,
	EnableBookingsOnSameTime: False,
	ShowWeekNumberSettingId: 0,
	EnableShowBookedTimes: False,
	EnableSendFollowUpMessage: False,
	BookSpotUserResponseMinutes: 0,
	IsBookSpotDirectly: False,
	BookSpotDirectlyTimeLeftMinutes: 0,
	SendEmailNotificationQueue: False,
	SendSMSNotificationQueue: False,
	WeightedPrices: False,
	ShowMultiDayAsTime: False,
	ShowMultipleResourcesAsOne: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	BookingStatusId: 0,
	ScheduleViewId: 0,
	BookingTemplateId: 0,
	CalendarTypeId: 0,
	AllowBookingOnUnbookedTimes: False,
	SendEmailReminder: False,
	SendSmsReminder: False,
	SendEmailConfirmation: False,
	SendSmsConfirmation: False,
	MessageText: String,
	EmailReminderTime: 0,
	SmsReminderTime: 0,
	MaxActiveBookings: 0,
	SendNotifications: False,
	SendNotificationsEmail: String,
	EnableMobileApp: False,
	ScheduleStartTime: PT0S,
	ScheduleEndTime: PT0S,
	ScheduleGroupResources: False,
	SchedulerDisableHorizontalScrolling: False,
	ReceiptTemplate: String,
	ScheduleTimeSlotMinutes: 0,
	ShowFreeTimesLeft: False,
	FreeSpotTextsId: 0,
	EnableICalGroupBookings: False,
	AgreementTemplate: String,
	ScheduleShowTimeExeptions: False,
	EnableBookingsOnSameTime: False,
	ShowWeekNumberSettingId: 0,
	EnableShowBookedTimes: False,
	BookSpotUserResponseMinutes: 0,
	IsBookSpotDirectly: False,
	BookSpotDirectlyTimeLeftMinutes: 0,
	SendEmailNotificationQueue: False,
	SendSMSNotificationQueue: False,
	EnableSendFollowUpMessage: False,
	FollowUpMessageTime: 0,
	BookOnlyOnExistingCustomers: False,
	AutoGenerateUniquePinCode: False,
	AutoCreateUserProfile: False,
	ScheduleViewOptions: 
	[
		{
			Id: 0,
			Name: String
		}
	],
	WeekNumberOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String
		}
	],
	BookingTemplateOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String,
			UsedByApplication: String
		}
	],
	CalendarTypeOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String,
			Active: False
		}
	],
	BookingStatusOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String
		}
	],
	FreeSpotTextOptions: 
	[
		{
			Id: 0,
			TextSingular: String,
			TextPlural: String
		}
	],
	WeightedPrices: False,
	ShowMultiDayAsTime: False,
	ShowMultipleResourcesAsOne: False
}