/* Options: Date: 2025-09-14 22:03:14 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: UpdateCompany.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/companies/{CompanyId}", "PUT") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public class UpdateCompany : IReturn, ICompany, Codable { public typealias Return = CompanyQueryResponse /** * 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.", IsRequired=true, ParameterType="path") public var companyId:String? public var name:String? public var organisationNumber:String? /** * What type of company. If it's used for personal use or as a company. 1 = Company use, 2 = Personal use */ // @ApiMember(DataType="int", Description="What type of company. If it's used for personal use or as a company. 1 = Company use, 2 = Personal use") public var typeId:Int? public var openingHours:String? public var details:String? public var categoryId:Int? public var logoType:Uri? public var street1:String? public var street2:String? public var zipCode:String? public var city:String? public var countryId:String? public var longitude:String? public var latitude:String? public var phone:String? public var email:String? public var fax:String? public var homepage:String? public var sitePath:String? required public init(){} } public class CompanyQueryResponse : Codable { public var id:String? public var name:String? /** * The organisation number will only be visible if you are the owner of the company. */ // @ApiMember(DataType="string", Description="The organisation number will only be visible if you are the owner of the company.") public var organisationNumber:String? /** * What type of company. If it's used for personal use or as a company. */ // @ApiMember(DataType="int", Description="What type of company. If it's used for personal use or as a company.") public var typeId:Int? public var details:String? public var categoryId:Int? public var category:String? public var logoType:Uri? public var coverImage:Uri? public var street1:String? public var street2:String? public var zipCode:String? public var city:String? public var countryId:String? public var longitude:String? public var latitude:String? public var distance:Double? public var phone:String? public var email:String? public var homepage:String? public var sitePath:String? public var active:Bool? public var codeLockSystem:CodeLockSystemType? public var isFreeAccount:Bool? /** * Will show when the company was updated, note it will only be shown if your logged in as admin for the company. */ // @ApiMember(DataType="datetime", Description="Will show when the company was updated, note it will only be shown if your logged in as admin for the company.") public var updated:Date? /** * Will show when the company was created, note it will only be shown if your logged in as admin for the company. */ // @ApiMember(DataType="datetime", Description="Will show when the company was created, note it will only be shown if your logged in as admin for the company.") public var created:Date? public var statusId:Int? /** * If the company is marked as favourite for the logged in user */ // @ApiMember(DataType="boolean", Description="If the company is marked as favourite for the logged in user") public var isFavorite:Bool? public var bookingAgreements:String? public var bookingSettings:CompanyBookingSettings? public var systemSettings:CompanySystemSettings? public var widgetSettings:CompanyWidgetSettings? public var homepageSettings:HomepageSettingsResponse? public var ratingSummary:CompanyRatingSummary? public var reviews:[RatingReviewResponse]? public var customerCustomFields:[CustomFieldConfigData]? public var responseStatus:ResponseStatus? required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class RatingReviewResponse : Codable { /** * The title for the review */ // @ApiMember(Description="The title for the review") public var title:String? /** * The description for the review */ // @ApiMember(Description="The description for the review") public var Description:String? /** * The rating score */ // @ApiMember(Description="The rating score") public var ratingScore:Int? /** * The review author */ // @ApiMember(Description="The review author") public var author:String? /** * The created date */ // @ApiMember(Description="The created date") public var created:Date? /** * The review answer from the company */ // @ApiMember(Description="The review answer from the company") public var reviewAnswer:String? required public init(){} } public class CustomFieldConfigData : Codable { /** * Custom field id */ // @ApiMember(Description="Custom field id") public var id:Int? /** * Configuration name. Example: 'Number of persons'. */ // @ApiMember(Description="Configuration name. Example: 'Number of persons'.") public var name:String? /** * Custom field description. Example: 'For how many persons is this booking?' */ // @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'") public var Description:String? /** * Field width. Example: 20 for 20px */ // @ApiMember(Description="Field width. Example: 20 for 20px") public var width:Int? /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") public var dataType:String? /** * Default value of the field. Example: '3' */ // @ApiMember(Description="Default value of the field. Example: '3'") public var defaultValue:String? /** * Determines if the field is required to have a value or not */ // @ApiMember(Description="Determines if the field is required to have a value or not") public var isMandatory:Bool? /** * Error message shown to the user if the field data is required but not entered */ // @ApiMember(Description="Error message shown to the user if the field data is required but not entered") public var mandatoryErrorMessage:String? /** * Max lenght of the field */ // @ApiMember(Description="Max lenght of the field") public var maxLength:Int? /** * If the field should have multiple lines */ // @ApiMember(Description="If the field should have multiple lines") public var multipleLineText:Bool? /** * Regular expression used for validation of the field */ // @ApiMember(Description="Regular expression used for validation of the field") public var regEx:String? /** * Error message shown if the regular expression validation failed */ // @ApiMember(Description="Error message shown if the regular expression validation failed") public var regExErrorMessage:String? /** * The values to select from if Datatype is DropDown for this custom field */ // @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field") public var values:[CustomFieldValueResponse]? required public init(){} } public enum CodeLockSystemType : String, Codable { case Sample case RcoM5 case AxemaVaka case VanderbiltOmnis case ParakeyParakey case AmidoDax case TelkeyTelkey case TechSolutionsSiedle case Accessy case Zesec case Enabla } public class CompanyBookingSettings : Codable { public var enableMobileApp:Bool? public var bookingReceiptMessage:String? public var showFreeTimesLeft:Bool? public var enableShowBookedTimes:Bool? public var bookingAgreement:String? /** * The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber */ // @ApiMember(DataType="int", Description="The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber ") public var weekNumberSetting:Int? public var showBookedTimes:Bool? /** * The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings */ // @ApiMember(Description="The payment provider id. 1 = Payson Checkout 1.0, 2= Payson Checkout 2.0 ... To get the full payment provider for the company call GET /payment/settings") public var paymentProviderId:Int? /** * If it's only allowed for existing customers to book */ // @ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book") public var bookOnlyOnExistingCustomers:Bool? /** * If payment is enabled */ // @ApiMember(DataType="boolean", Description="If payment is enabled") public var paymentEnabled:Bool? public var bookingPinCodeRestriction:String? public var customerInvoiceAdressRequired:Bool? required public init(){} } public class CompanySystemSettings : Codable { /** * If the booking is active or not */ // @ApiMember(DataType="bool", Description="If the booking is active or not") public var active:Bool? /** * If the booking is not active, what message to show to the customers */ // @ApiMember(DataType="string", Description="If the booking is not active, what message to show to the customers") public var inactiveMessage:String? /** * If the company should be visible in search results on homepage */ // @ApiMember(DataType="bool", Description="If the company should be visible in search results on homepage") public var searchable:Bool? /** * If you have a Google Analytics account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Google Analytics account and want to track your customers behaviors.") public var gaTrackingId:String? /** * If you have a Google Ads Conversion Id account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Google Ads Conversion Id account and want to track your customers behaviors.") public var googleAdsConversionId:String? /** * If you have a LinkedIn account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a LinkedIn account and want to track your customers behaviors.") public var linkedinTagId:String? /** * If you have a Google Ads Conversion Label and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Google Ads Conversion Label and want to track your customers behaviors.") public var googleAdsConversionLabel:String? /** * If you have a Google Tag Manager account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Google Tag Manager account and want to track your customers behaviors.") public var gtmTrackingId:String? /** * If you have a Facebook account and want to track your customers behaviors. */ // @ApiMember(DataType="string", Description="If you have a Facebook account and want to track your customers behaviors.") public var facebookPixelId:String? /** * If you want your customers to be able to change language on your homepage */ // @ApiMember(DataType="bool", Description="If you want your customers to be able to change language on your homepage") public var multiLanguage:Bool? /** * If the company should be visible on the marketplace */ // @ApiMember(DataType="bool", Description="If the company should be visible on the marketplace") public var showOnMarketplace:Bool? /** * If you want your own written text on your homepage to be translated using Google Translate when a user changes language */ // @ApiMember(DataType="bool", Description="If you want your own written text on your homepage to be translated using Google Translate when a user changes language") public var enableAPITranslation:Bool? /** * What is the standard language your homepage information is written in. Select from the different countries, i.e. SE,NO,EN */ // @ApiMember(DataType="string", Description="What is the standard language your homepage information is written in. Select from the different countries, i.e. SE,NO,EN") public var defaultLanguage:String? /** * If you want to allow to send customer information in the tracking events to the external providers. Note you as a company are responsible for informing your customers and handling the data in terms of GDPR. */ // @ApiMember(Description="If you want to allow to send customer information in the tracking events to the external providers. Note you as a company are responsible for informing your customers and handling the data in terms of GDPR. ") public var sendCustomerInformationToExternalProviders:Bool? /** * The maximum number of SMS messages that can be sent per day. */ // @ApiMember(Description="The maximum number of SMS messages that can be sent per day.") public var smsMessageDailySendLimit:Int? /** * The maximum number of email messages that can be sent per day. */ // @ApiMember(Description="The maximum number of email messages that can be sent per day.") public var emailMessageDailySendLimit:Int? required public init(){} } public class CompanyWidgetSettings : Codable { /** * The service layouts id. */ // @ApiMember(Description="The service layouts id.") public var serviceLayoutId:Int? /** * The time layouts id. */ // @ApiMember(Description="The time layouts id.") public var timeLayoutId:Int? /** * The booking layouts id. */ // @ApiMember(Description="The booking layouts id.") public var bookingLayoutId:Int? /** * The primary color of the booking widget. */ // @ApiMember(Description="The primary color of the booking widget.") public var primaryColor:String? /** * If you should show the service image in the booking widget. */ // @ApiMember(Description="If you should show the service image in the booking widget.") public var showServiceImage:Bool? /** * If you should show the rebate code field in the booking widget. */ // @ApiMember(Description="If you should show the rebate code field in the booking widget.") public var showRebateCodeField:Bool? /** * If you should show the next available time in the booking widget. */ // @ApiMember(Description="If you should show the next available time in the booking widget.") public var showNextAvailableTime:Bool? /** * If you should show the end time in the booking widget. */ // @ApiMember(Description="If you should show the end time in the booking widget.") public var showEndTime:Bool? /** * What text to show on booked time slots. Default text is Booked */ // @ApiMember(Description="What text to show on booked time slots. Default text is Booked") public var bookedTimeSlotText:String? /** * If the widget should be displayed in dark theme */ // @ApiMember(Description="If the widget should be displayed in dark theme") public var darkTheme:Bool? /** * If you should show the subscribe to newsletter checkbox in the booking widget. */ // @ApiMember(Description="If you should show the subscribe to newsletter checkbox in the booking widget.") public var showSubscribeToNewsletter:Bool? required public init(){} } public class HomepageSettingsResponse : Codable { /** * The text for homepage heading */ // @ApiMember(Description="The text for homepage heading") public var homepageHeading:String? /** * The text for homepage startpage heading */ // @ApiMember(Description="The text for homepage startpage heading") public var welcomePageHeading:String? /** * The text for homepage startpage body */ // @ApiMember(Description="The text for homepage startpage body") public var welcomePageBody:String? /** * The text for homepage about us page heading */ // @ApiMember(Description="The text for homepage about us page heading") public var aboutUsPageHeading:String? /** * The text for homepage about us page body */ // @ApiMember(Description="The text for homepage about us page body") public var aboutUsPageBody:String? /** * The startpage image url */ // @ApiMember(Description="The startpage image url") public var imageUrl:Uri? /** * The cover image url */ // @ApiMember(Description="The cover image url") public var coverImage:Uri? /** * Show rating on the page */ // @ApiMember(Description="Show rating on the page") public var showRating:Bool? /** * The template for the homepage */ // @ApiMember(Description="The template for the homepage") public var homePageTemplateId:Int? /** * The hero section style for the homepage */ // @ApiMember(Description="The hero section style for the homepage") public var heroSectionStyleId:Int? /** * Enable the BokaMera Homepage */ // @ApiMember(Description="Enable the BokaMera Homepage") public var enableHomepage:Bool? required public init(){} } public class CompanyRatingSummary : Codable { /** * The average rating score */ // @ApiMember(Description="The average rating score") public var averageScore:Double? /** * The number of ratings of score 1 */ // @ApiMember(Description="The number of ratings of score 1") public var ratingScore1Count:Int? /** * The number of ratings of score 2 */ // @ApiMember(Description="The number of ratings of score 2") public var ratingScore2Count:Int? /** * The number of ratings of score 3 */ // @ApiMember(Description="The number of ratings of score 3") public var ratingScore3Count:Int? /** * The number of ratings of score 4 */ // @ApiMember(Description="The number of ratings of score 4") public var raingScore4Count:Int? /** * The number of ratings of score 5 */ // @ApiMember(Description="The number of ratings of score 5") public var ratingScore5Count:Int? /** * The number of ratings */ // @ApiMember(Description="The number of ratings") public var count:Int? required public init(){} } public class CustomFieldValueResponse : Codable { public var value:String? required public init(){} }