BokaMera.API.Host

<back to all web services

UpdateCompany

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/companies/{CompanyId}Update existing companyUpdates your company profile information.
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type CodeLockSystemType =
        | Sample = 0
        | RcoM5 = 1
        | AxemaVaka = 2
        | VanderbiltOmnis = 3
        | ParakeyParakey = 4
        | AmidoDax = 5
        | TelkeyTelkey = 6
        | TechSolutionsSiedle = 7
        | Accessy = 8
        | Zesec = 9
        | Enabla = 10

    [<AllowNullLiteral>]
    type CompanyBookingSettings() = 
        member val EnableMobileApp:Boolean = new Boolean() with get,set
        member val BookingReceiptMessage:String = null with get,set
        member val ShowFreeTimesLeft:Boolean = new Boolean() with get,set
        member val EnableShowBookedTimes:Boolean = new Boolean() with get,set
        member val BookingAgreement:String = null with get,set
        ///<summary>
        ///The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber  
        ///</summary>
        [<ApiMember(DataType="int", Description="The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber  ")>]
        member val WeekNumberSetting:Int32 = new Int32() with get,set

        member val ShowBookedTimes:Boolean = new Boolean() with get,set
        ///<summary>
        ///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
        ///</summary>
        [<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")>]
        member val PaymentProviderId:Int32 = new Int32() with get,set

        ///<summary>
        ///If it's only allowed for existing customers to book
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If it's only allowed for existing customers to book")>]
        member val BookOnlyOnExistingCustomers:Boolean = new Boolean() with get,set

        ///<summary>
        ///If payment is enabled
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If payment is enabled")>]
        member val PaymentEnabled:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CompanySystemSettings() = 
        ///<summary>
        ///If the booking is active or not
        ///</summary>
        [<ApiMember(DataType="bool", Description="If the booking is active or not")>]
        member val Active:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the booking is not active, what message to show to the customers
        ///</summary>
        [<ApiMember(DataType="string", Description="If the booking is not active, what message to show to the customers")>]
        member val InactiveMessage:String = null with get,set

        ///<summary>
        ///If the company should be visible in search results on hompage
        ///</summary>
        [<ApiMember(DataType="bool", Description="If the company should be visible in search results on hompage")>]
        member val Searchable:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you have a google analytics account and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a google analytics account and want to track your customers behaviors.")>]
        member val GATrackingId:String = null with get,set

        ///<summary>
        ///If you have a google Ads Conversion Id account and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a google Ads Conversion Id account and want to track your customers behaviors.")>]
        member val GoogleAdsConversionId:String = null with get,set

        ///<summary>
        ///If you have a LinkedIn account and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a LinkedIn account and want to track your customers behaviors.")>]
        member val LinkedinTagId:String = null with get,set

        ///<summary>
        ///If you have a Google Ads Conversion Label and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a Google Ads Conversion Label and want to track your customers behaviors.")>]
        member val GoogleAdsConversionLabel:String = null with get,set

        ///<summary>
        ///If you have a google tag manager account and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a google tag manager account and want to track your customers behaviors.")>]
        member val GTMTrackingId:String = null with get,set

        ///<summary>
        ///If you have a facebook account and want to track your customers behaviors.
        ///</summary>
        [<ApiMember(DataType="string", Description="If you have a facebook account and want to track your customers behaviors.")>]
        member val FacebookPixelId:String = null with get,set

        ///<summary>
        ///If you want your customers to be albe to change language on your homepage
        ///</summary>
        [<ApiMember(DataType="bool", Description="If you want your customers to be albe to change language on your homepage")>]
        member val MultiLanguage:Boolean = new Boolean() with get,set

        ///<summary>
        ///If the company should be visible on the marketplace
        ///</summary>
        [<ApiMember(DataType="bool", Description="If the company should be visible on the marketplace")>]
        member val ShowOnMarketplace:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you want your own written text on your homepage to be translated using google analytics when a user changes language
        ///</summary>
        [<ApiMember(DataType="bool", Description="If you want your own written text on your homepage to be translated using google analytics when a user changes language")>]
        member val EnableAPITranslation:Boolean = new Boolean() with get,set

        ///<summary>
        ///What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN
        ///</summary>
        [<ApiMember(DataType="string", Description="What is the standard language your homepage information is written in. Select from the different countries, ie. SE,NO,EN")>]
        member val DefaultLanguage:String = null with get,set

    [<AllowNullLiteral>]
    type CompanyWidgetSettings() = 
        ///<summary>
        ///The service layouts id.
        ///</summary>
        [<ApiMember(Description="The service layouts id.")>]
        member val ServiceLayoutId:Int32 = new Int32() with get,set

        ///<summary>
        ///The time layouts id.
        ///</summary>
        [<ApiMember(Description="The time layouts id.")>]
        member val TimeLayoutId:Int32 = new Int32() with get,set

        ///<summary>
        ///The booking layouts id.
        ///</summary>
        [<ApiMember(Description="The booking layouts id.")>]
        member val BookingLayoutId:Int32 = new Int32() with get,set

        ///<summary>
        ///The primary color of the booking widget.
        ///</summary>
        [<ApiMember(Description="The primary color of the booking widget.")>]
        member val PrimaryColor:String = null with get,set

        ///<summary>
        ///If you should show the service image in the booking widget.
        ///</summary>
        [<ApiMember(Description="If you should show the service image in the booking widget.")>]
        member val ShowServiceImage:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you should show the rebate code field in the booking widget.
        ///</summary>
        [<ApiMember(Description="If you should show the rebate code field in the booking widget.")>]
        member val ShowRebateCodeField:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you should show the next available time in the booking widget.
        ///</summary>
        [<ApiMember(Description="If you should show the next available time in the booking widget.")>]
        member val ShowNextAvailableTime:Boolean = new Boolean() with get,set

        ///<summary>
        ///If you should show the end time in the booking widget.
        ///</summary>
        [<ApiMember(Description="If you should show the end time in the booking widget.")>]
        member val ShowEndTime:Boolean = new Boolean() with get,set

        ///<summary>
        ///What text to show on booked time slots. Default text is Booked
        ///</summary>
        [<ApiMember(Description="What text to show on booked time slots. Default text is Booked")>]
        member val BookedTimeSlotText:String = null with get,set

        ///<summary>
        ///If the widget should be displayed in dark theme
        ///</summary>
        [<ApiMember(Description="If the widget should be displayed in dark theme")>]
        member val DarkTheme:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type HomepageSettingsResponse() = 
        ///<summary>
        ///The text for homepage heading
        ///</summary>
        [<ApiMember(Description="The text for homepage heading")>]
        member val HomepageHeading:String = null with get,set

        ///<summary>
        ///The text for homepage startpage heading
        ///</summary>
        [<ApiMember(Description="The text for homepage startpage heading")>]
        member val WelcomePageHeading:String = null with get,set

        ///<summary>
        ///The text for homepage startpage body
        ///</summary>
        [<ApiMember(Description="The text for homepage startpage body")>]
        member val WelcomePageBody:String = null with get,set

        ///<summary>
        ///The text for homepage about us page heading
        ///</summary>
        [<ApiMember(Description="The text for homepage about us page heading")>]
        member val AboutUsPageHeading:String = null with get,set

        ///<summary>
        ///The text for homepage about us page body
        ///</summary>
        [<ApiMember(Description="The text for homepage about us page body")>]
        member val AboutUsPageBody:String = null with get,set

        ///<summary>
        ///The startpage image url
        ///</summary>
        [<ApiMember(Description="The startpage image url")>]
        member val ImageUrl:Uri = null with get,set

        ///<summary>
        ///The cover image url
        ///</summary>
        [<ApiMember(Description="The cover image url")>]
        member val CoverImage:Uri = null with get,set

        ///<summary>
        ///Show rating on the page
        ///</summary>
        [<ApiMember(Description="Show rating on the page")>]
        member val ShowRating:Boolean = new Boolean() with get,set

        ///<summary>
        ///The template for the homepage
        ///</summary>
        [<ApiMember(Description="The template for the homepage")>]
        member val HomePageTemplateId:Int32 = new Int32() with get,set

        ///<summary>
        ///The hero section style for the homepage
        ///</summary>
        [<ApiMember(Description="The hero section style for the homepage")>]
        member val HeroSectionStyleId:Int32 = new Int32() with get,set

        ///<summary>
        ///Enable the BokaMera Homepage
        ///</summary>
        [<ApiMember(Description="Enable the BokaMera Homepage")>]
        member val EnableHomepage:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CompanyRatingSummary() = 
        ///<summary>
        ///The average rating score
        ///</summary>
        [<ApiMember(Description="The average rating score")>]
        member val AverageScore:Double = new Double() with get,set

        ///<summary>
        ///The number of ratings of score 1
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 1")>]
        member val RatingScore1Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 2
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 2")>]
        member val RatingScore2Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 3
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 3")>]
        member val RatingScore3Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 4
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 4")>]
        member val RaingScore4Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings of score 5
        ///</summary>
        [<ApiMember(Description="The number of ratings of score 5")>]
        member val RatingScore5Count:Int32 = new Int32() with get,set

        ///<summary>
        ///The number of ratings
        ///</summary>
        [<ApiMember(Description="The number of ratings")>]
        member val Count:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RatingReviewResponse() = 
        ///<summary>
        ///The title for the review
        ///</summary>
        [<ApiMember(Description="The title for the review")>]
        member val Title:String = null with get,set

        ///<summary>
        ///The description for the review
        ///</summary>
        [<ApiMember(Description="The description for the review")>]
        member val Description:String = null with get,set

        ///<summary>
        ///The rating score
        ///</summary>
        [<ApiMember(Description="The rating score")>]
        member val RatingScore:Int32 = new Int32() with get,set

        ///<summary>
        ///The review author
        ///</summary>
        [<ApiMember(Description="The review author")>]
        member val Author:String = null with get,set

        ///<summary>
        ///The created date
        ///</summary>
        [<ApiMember(Description="The created date")>]
        member val Created:DateTime = new DateTime() with get,set

        ///<summary>
        ///The review answer from the company
        ///</summary>
        [<ApiMember(Description="The review answer from the company")>]
        member val ReviewAnswer:String = null with get,set

    [<AllowNullLiteral>]
    type CustomFieldValueResponse() = 
        member val Value:String = null with get,set

    [<AllowNullLiteral>]
    type CustomFieldConfigData() = 
        ///<summary>
        ///Custom field id
        ///</summary>
        [<ApiMember(Description="Custom field id")>]
        member val Id:Int32 = new Int32() with get,set

        ///<summary>
        ///Configuration name. Example: 'Number of persons'.
        ///</summary>
        [<ApiMember(Description="Configuration name. Example: 'Number of persons'.")>]
        member val Name:String = null with get,set

        ///<summary>
        ///Custom field description. Example: 'For how many persons is this booking?'
        ///</summary>
        [<ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'")>]
        member val Description:String = null with get,set

        ///<summary>
        ///Field width. Example: 20 for 20px
        ///</summary>
        [<ApiMember(Description="Field width. Example: 20 for 20px")>]
        member val Width:Nullable<Int32> = new Nullable<Int32>() with get,set

        ///<summary>
        ///Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'
        ///</summary>
        [<ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'")>]
        member val DataType:String = null with get,set

        ///<summary>
        ///Default value of the field. Example: '3'
        ///</summary>
        [<ApiMember(Description="Default value of the field. Example: '3'")>]
        member val DefaultValue:String = null with get,set

        ///<summary>
        ///Determines if the field is required to have a value or not
        ///</summary>
        [<ApiMember(Description="Determines if the field is required to have a value or not")>]
        member val IsMandatory:Boolean = new Boolean() with get,set

        ///<summary>
        ///Error message shown to the user if the field data is required but not entered
        ///</summary>
        [<ApiMember(Description="Error message shown to the user if the field data is required but not entered")>]
        member val MandatoryErrorMessage:String = null with get,set

        ///<summary>
        ///Max lenght of the field
        ///</summary>
        [<ApiMember(Description="Max lenght of the field")>]
        member val MaxLength:Int32 = new Int32() with get,set

        ///<summary>
        ///If the field should have multiple lines
        ///</summary>
        [<ApiMember(Description="If the field should have multiple lines")>]
        member val MultipleLineText:Boolean = new Boolean() with get,set

        ///<summary>
        ///Regular expression used for validation of the field
        ///</summary>
        [<ApiMember(Description="Regular expression used for validation of the field")>]
        member val RegEx:String = null with get,set

        ///<summary>
        ///Error message shown if the regular expression validation failed
        ///</summary>
        [<ApiMember(Description="Error message shown if the regular expression validation failed")>]
        member val RegExErrorMessage:String = null with get,set

        ///<summary>
        ///The values to select from if Datatype is DropDown for this custom field
        ///</summary>
        [<ApiMember(Description="The values to select from if Datatype is DropDown for this custom field")>]
        member val Values:ResizeArray<CustomFieldValueResponse> = new ResizeArray<CustomFieldValueResponse>() with get,set

    [<AllowNullLiteral>]
    type CompanyQueryResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val Name:String = null with get,set
        ///<summary>
        ///The organisation number will only be visible if your owner to the company
        ///</summary>
        [<ApiMember(DataType="string", Description="The organisation number will only be visible if your owner to the company")>]
        member val OrganisationNumber:String = null with get,set

        ///<summary>
        ///What type of company. If it's used for personal use or as a company.
        ///</summary>
        [<ApiMember(DataType="int", Description="What type of company. If it's used for personal use or as a company.")>]
        member val TypeId:Nullable<Int32> = new Nullable<Int32>() with get,set

        member val Details:String = null with get,set
        member val CategoryId:Int32 = new Int32() with get,set
        member val Category:String = null with get,set
        member val LogoType:Uri = null with get,set
        member val CoverImage:Uri = null with get,set
        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val ZipCode:String = null with get,set
        member val City:String = null with get,set
        member val CountryId:String = null with get,set
        member val Longitude:String = null with get,set
        member val Latitude:String = null with get,set
        member val Distance:Nullable<Double> = new Nullable<Double>() with get,set
        member val Phone:String = null with get,set
        member val Email:String = null with get,set
        member val Homepage:String = null with get,set
        member val SitePath:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val CodeLockSystem:Nullable<CodeLockSystemType> = new Nullable<CodeLockSystemType>() with get,set
        member val IsFreeAccount:Boolean = new Boolean() with get,set
        ///<summary>
        ///Will show when the company was updated, note it will only be shown if your logged in as admin for the company.
        ///</summary>
        [<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.")>]
        member val Updated:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Will show when the company was created, note it will only be shown if your logged in as admin for the company.
        ///</summary>
        [<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.")>]
        member val Created:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        member val StatusId:Int32 = new Int32() with get,set
        ///<summary>
        ///If the company is marked as favourite for the logged in user
        ///</summary>
        [<ApiMember(DataType="boolean", Description="If the company is marked as favourite for the logged in user")>]
        member val IsFavorite:Boolean = new Boolean() with get,set

        member val BookingAgreements:String = null with get,set
        member val BookingSettings:CompanyBookingSettings = null with get,set
        member val SystemSettings:CompanySystemSettings = null with get,set
        member val WidgetSettings:CompanyWidgetSettings = null with get,set
        member val HomepageSettings:HomepageSettingsResponse = null with get,set
        member val RatingSummary:CompanyRatingSummary = null with get,set
        member val Reviews:ResizeArray<RatingReviewResponse> = new ResizeArray<RatingReviewResponse>() with get,set
        member val CustomerCustomFields:ResizeArray<CustomFieldConfigData> = new ResizeArray<CustomFieldConfigData>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<ValidateRequest(Validator="IsAuthenticated")>]
    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<AllowNullLiteral>]
    type UpdateCompany() = 
        ///<summary>
        ///The company id, if empty will use the company id for the user you are logged in with.
        ///</summary>
        [<ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.", IsRequired=true, ParameterType="path")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        member val Name:String = null with get,set
        member val OrganisationNumber:String = null with get,set
        ///<summary>
        ///What type of company. If it's used for personal use or as a company. 1 = Company use, 2 = Personal use
        ///</summary>
        [<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")>]
        member val TypeId:Nullable<Int32> = new Nullable<Int32>() with get,set

        member val OpeningHours:String = null with get,set
        member val Details:String = null with get,set
        member val CategoryId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val LogoType:Uri = null with get,set
        member val Street1:String = null with get,set
        member val Street2:String = null with get,set
        member val ZipCode:String = null with get,set
        member val City:String = null with get,set
        member val CountryId:String = null with get,set
        member val Longitude:String = null with get,set
        member val Latitude:String = null with get,set
        member val Phone:String = null with get,set
        member val Email:String = null with get,set
        member val Fax:String = null with get,set
        member val Homepage:String = null with get,set
        member val SitePath:String = null with get,set

F# UpdateCompany DTOs

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

HTTP + CSV

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

PUT /companies/{CompanyId} HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","Name":"String","OrganisationNumber":"String","TypeId":0,"OpeningHours":"String","Details":"String","CategoryId":0,"Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Phone":"String","Email":"String","Fax":"String","Homepage":"String","SitePath":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Name":"String","OrganisationNumber":"String","TypeId":0,"Details":"String","CategoryId":0,"Category":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Distance":0,"Phone":"String","Email":"String","Homepage":"String","SitePath":"String","Active":false,"CodeLockSystem":"Sample","IsFreeAccount":false,"Updated":"0001-01-01T00:00:00","Created":"0001-01-01T00:00:00","StatusId":0,"IsFavorite":false,"BookingAgreements":"String","BookingSettings":{"EnableMobileApp":false,"BookingReceiptMessage":"String","ShowFreeTimesLeft":false,"EnableShowBookedTimes":false,"BookingAgreement":"String","WeekNumberSetting":0,"ShowBookedTimes":false,"PaymentProviderId":0,"BookOnlyOnExistingCustomers":false,"PaymentEnabled":false},"SystemSettings":{"Active":false,"InactiveMessage":"String","Searchable":false,"GATrackingId":"String","GoogleAdsConversionId":"String","LinkedinTagId":"String","GoogleAdsConversionLabel":"String","GTMTrackingId":"String","FacebookPixelId":"String","MultiLanguage":false,"ShowOnMarketplace":false,"EnableAPITranslation":false,"DefaultLanguage":"String"},"WidgetSettings":{"ServiceLayoutId":0,"TimeLayoutId":0,"BookingLayoutId":0,"PrimaryColor":"String","ShowServiceImage":false,"ShowRebateCodeField":false,"ShowNextAvailableTime":false,"ShowEndTime":false,"BookedTimeSlotText":"String","DarkTheme":false},"HomepageSettings":{"HomepageHeading":"String","WelcomePageHeading":"String","WelcomePageBody":"String","AboutUsPageHeading":"String","AboutUsPageBody":"String","ShowRating":false,"HomePageTemplateId":0,"HeroSectionStyleId":0,"EnableHomepage":false},"RatingSummary":{"AverageScore":0,"RatingScore1Count":0,"RatingScore2Count":0,"RatingScore3Count":0,"RaingScore4Count":0,"RatingScore5Count":0,"Count":0},"Reviews":[{"Title":"String","Description":"String","RatingScore":0,"Author":"String","ReviewAnswer":"String"}],"CustomerCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}