BokaMera.API.Host

<back to all web services

BookingQuery

The following routes are available for this service:
GET/bookingsFind booked events for currently logged in userThis service is used to get bookings for the current user, the result will be paged if the query returns a to large set of values.
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;

public class dtos
{

    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    public static class BookingQuery extends QueryDb<Booking, BookingQueryResponse>
    {
        /**
        * Query for specific Booked Resources, default is all resources
        */
        @DataMember(Name="BookedResourceIds")
        @SerializedName("BookedResourceIds")
        @ApiMember(Description="Query for specific Booked Resources, default is all resources", ParameterType="query")
        public ArrayList<Integer> BookingResourceRelationResourceIds = null;

        /**
        * Query for specific Booked Resource types, default is all resource types
        */
        @DataMember(Name="BookedResourceTypeIds")
        @SerializedName("BookedResourceTypeIds")
        @ApiMember(Description="Query for specific Booked Resource types, default is all resource types", ParameterType="query")
        public ArrayList<Integer> BookingResourceRelationResourceTypeIds = null;

        /**
        * 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.")
        public UUID CompanyId = null;

        /**
        * Id of the booking
        */
        @ApiMember(Description="Id of the booking", ParameterType="path")
        public Integer Id = null;

        /**
        * The cancellation code of the booking, can be used if you want to get a booking without being authenticated
        */
        @ApiMember(DataType="string", Description="The cancellation code of the booking, can be used if you want to get a booking without being authenticated", ParameterType="query")
        public String CancellationCode = null;

        /**
        * Start of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339
        */
        @ApiMember(DataType="dateTime", Description="Start of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
        public Date BookingStart = null;

        /**
        * End of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339
        */
        @ApiMember(DataType="dateTime", Description="End of interval to query for bookings. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
        public Date BookingEnd = null;

        /**
        * Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        */
        @ApiMember(DataType="dateTime", Description="Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
        public Date CreatedFrom = null;

        /**
        * End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
        */
        @ApiMember(DataType="dateTime", Description="End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
        public Date CreatedTo = null;

        /**
        * Set to true if you want to include the bookings for the company you are logged in as administrator on, if false only bookings for the logged in user will be retrieved. Only administrators are allowed to do this.
        */
        @ApiMember(DataType="boolean", Description="Set to true if you want to include the bookings for the company you are logged in as administrator on, if false only bookings for the logged in user will be retrieved. Only administrators are allowed to do this.", ParameterType="query")
        public Boolean CompanyBookings = null;

        /**
        * Query for specific services.
        */
        @ApiMember(Description="Query for specific services.", ParameterType="query")
        public ArrayList<Integer> ServiceIds = null;

        /**
        * Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, BookedAndPayed = 7, 8 = AwaitingPaymentRequestFromAdmin, 9 = AwaitingPaymentFromProvider. Default is all.
        */
        @ApiMember(Description="Query for specific booking statuses. Valid statuses are TimeBooked = 1, TimeUnbooked = 2, TimeReserved = 3, TimeCanceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, BookedAndPayed = 7, 8 = AwaitingPaymentRequestFromAdmin, 9 = AwaitingPaymentFromProvider. Default is all.", ParameterType="query")
        public ArrayList<Integer> StatusIds = null;

        /**
        * Query for specific customer
        */
        @ApiMember(Description="Query for specific customer", ParameterType="query")
        public UUID CustomerId = null;

        /**
        * If you want to include the external references for the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the external references for the booking", ParameterType="query")
        public Boolean IncludeExternalReferences = null;

        /**
        * If you want to include the connected resource types and resources
        */
        @ApiMember(DataType="boolean", Description="If you want to include the connected resource types and resources", ParameterType="query")
        public Boolean IncludeCustomFields = null;

        /**
        * If you want to include the connected custom fields
        */
        @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields", ParameterType="query")
        public Boolean IncludeCustomFieldValues = null;

        /**
        * If you want to include the booked resources
        */
        @ApiMember(DataType="boolean", Description="If you want to include the booked resources", ParameterType="query")
        public Boolean IncludeBookedResourceTypes = null;

        /**
        * If you want to include the company information for the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the company information for the booking", ParameterType="query")
        public Boolean IncludeCompanyInformation = null;

        /**
        * If you want to include the service information for the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the service information for the booking", ParameterType="query")
        public Boolean IncludeServiceInformation = null;

        /**
        * If you want to include the customer information for the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the customer information for the booking", ParameterType="query")
        public Boolean IncludeCustomerInformation = null;

        /**
        * If you want to include the log of all events on the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the log of all events on the booking", ParameterType="query")
        public Boolean IncludeLog = null;

        /**
        * If you want to include the payment log on the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the payment log on the booking", ParameterType="query")
        public Boolean IncludePaymentLog = null;

        /**
        * If you want to include the checkouts for payson
        */
        @ApiMember(DataType="boolean", Description="If you want to include the checkouts for payson", ParameterType="query")
        public Boolean IncludeCheckoutLog = null;

        /**
        * If you want to include the quantity and price information on the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the quantity and price information on the booking", ParameterType="query")
        public Boolean IncludeQuantityInformation = null;

        /**
        * If you want to include google calendar sync status
        */
        @ApiMember(DataType="boolean", Description="If you want to include google calendar sync status", ParameterType="query")
        public Boolean IncludeCalendarExportStatus = null;

        /**
        * If you want to include booking status information
        */
        @ApiMember(DataType="boolean", Description="If you want to include booking status information", ParameterType="query")
        public Boolean IncludeStatusInformation = null;

        /**
        * The max limit of records you want to retrieve, default is 100
        */
        @ApiMember(DataType="int", Description="The max limit of records you want to retrieve, default is 100", ParameterType="query")
        public Integer MaxLimit = null;

        public ResponseStatus ResponseStatus = null;
        
        public ArrayList<Integer> getBookingResourceRelationResourceIds() { return BookingResourceRelationResourceIds; }
        public BookingQuery setBookingResourceRelationResourceIds(ArrayList<Integer> value) { this.BookingResourceRelationResourceIds = value; return this; }
        public ArrayList<Integer> getBookingResourceRelationResourceTypeIds() { return BookingResourceRelationResourceTypeIds; }
        public BookingQuery setBookingResourceRelationResourceTypeIds(ArrayList<Integer> value) { this.BookingResourceRelationResourceTypeIds = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingQuery setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public BookingQuery setId(Integer value) { this.Id = value; return this; }
        public String getCancellationCode() { return CancellationCode; }
        public BookingQuery setCancellationCode(String value) { this.CancellationCode = value; return this; }
        public Date getBookingStart() { return BookingStart; }
        public BookingQuery setBookingStart(Date value) { this.BookingStart = value; return this; }
        public Date getBookingEnd() { return BookingEnd; }
        public BookingQuery setBookingEnd(Date value) { this.BookingEnd = value; return this; }
        public Date getCreatedFrom() { return CreatedFrom; }
        public BookingQuery setCreatedFrom(Date value) { this.CreatedFrom = value; return this; }
        public Date getCreatedTo() { return CreatedTo; }
        public BookingQuery setCreatedTo(Date value) { this.CreatedTo = value; return this; }
        public Boolean isCompanyBookings() { return CompanyBookings; }
        public BookingQuery setCompanyBookings(Boolean value) { this.CompanyBookings = value; return this; }
        public ArrayList<Integer> getServiceIds() { return ServiceIds; }
        public BookingQuery setServiceIds(ArrayList<Integer> value) { this.ServiceIds = value; return this; }
        public ArrayList<Integer> getStatusIds() { return StatusIds; }
        public BookingQuery setStatusIds(ArrayList<Integer> value) { this.StatusIds = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public BookingQuery setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public Boolean isIncludeExternalReferences() { return IncludeExternalReferences; }
        public BookingQuery setIncludeExternalReferences(Boolean value) { this.IncludeExternalReferences = value; return this; }
        public Boolean isIncludeCustomFields() { return IncludeCustomFields; }
        public BookingQuery setIncludeCustomFields(Boolean value) { this.IncludeCustomFields = value; return this; }
        public Boolean isIncludeCustomFieldValues() { return IncludeCustomFieldValues; }
        public BookingQuery setIncludeCustomFieldValues(Boolean value) { this.IncludeCustomFieldValues = value; return this; }
        public Boolean isIncludeBookedResourceTypes() { return IncludeBookedResourceTypes; }
        public BookingQuery setIncludeBookedResourceTypes(Boolean value) { this.IncludeBookedResourceTypes = value; return this; }
        public Boolean isIncludeCompanyInformation() { return IncludeCompanyInformation; }
        public BookingQuery setIncludeCompanyInformation(Boolean value) { this.IncludeCompanyInformation = value; return this; }
        public Boolean isIncludeServiceInformation() { return IncludeServiceInformation; }
        public BookingQuery setIncludeServiceInformation(Boolean value) { this.IncludeServiceInformation = value; return this; }
        public Boolean isIncludeCustomerInformation() { return IncludeCustomerInformation; }
        public BookingQuery setIncludeCustomerInformation(Boolean value) { this.IncludeCustomerInformation = value; return this; }
        public Boolean isIncludeLog() { return IncludeLog; }
        public BookingQuery setIncludeLog(Boolean value) { this.IncludeLog = value; return this; }
        public Boolean isIncludePaymentLog() { return IncludePaymentLog; }
        public BookingQuery setIncludePaymentLog(Boolean value) { this.IncludePaymentLog = value; return this; }
        public Boolean isIncludeCheckoutLog() { return IncludeCheckoutLog; }
        public BookingQuery setIncludeCheckoutLog(Boolean value) { this.IncludeCheckoutLog = value; return this; }
        public Boolean isIncludeQuantityInformation() { return IncludeQuantityInformation; }
        public BookingQuery setIncludeQuantityInformation(Boolean value) { this.IncludeQuantityInformation = value; return this; }
        public Boolean isIncludeCalendarExportStatus() { return IncludeCalendarExportStatus; }
        public BookingQuery setIncludeCalendarExportStatus(Boolean value) { this.IncludeCalendarExportStatus = value; return this; }
        public Boolean isIncludeStatusInformation() { return IncludeStatusInformation; }
        public BookingQuery setIncludeStatusInformation(Boolean value) { this.IncludeStatusInformation = value; return this; }
        public Integer getMaxLimit() { return MaxLimit; }
        public BookingQuery setMaxLimit(Integer value) { this.MaxLimit = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public BookingQuery setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class QueryDb<From, Into> extends QueryBase
    {
        
    }

    @DataContract
    public static class QueryBase
    {
        /**
        * Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code>
        */
        @DataMember(Order=1)
        public Integer Skip = null;

        /**
        * Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code>
        */
        @DataMember(Order=2)
        public Integer Take = null;

        /**
        * Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code>
        */
        @DataMember(Order=3)
        public String OrderBy = null;

        /**
        * Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code>
        */
        @DataMember(Order=4)
        public String OrderByDesc = null;

        /**
        * Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code>
        */
        @DataMember(Order=5)
        public String Include = null;

        @DataMember(Order=6)
        public String Fields = null;

        @DataMember(Order=7)
        public HashMap<String,String> Meta = null;
        
        public Integer getSkip() { return Skip; }
        public QueryBase setSkip(Integer value) { this.Skip = value; return this; }
        public Integer getTake() { return Take; }
        public QueryBase setTake(Integer value) { this.Take = value; return this; }
        public String getOrderBy() { return OrderBy; }
        public QueryBase setOrderBy(String value) { this.OrderBy = value; return this; }
        public String getOrderByDesc() { return OrderByDesc; }
        public QueryBase setOrderByDesc(String value) { this.OrderByDesc = value; return this; }
        public String getInclude() { return Include; }
        public QueryBase setInclude(String value) { this.Include = value; return this; }
        public String getFields() { return Fields; }
        public QueryBase setFields(String value) { this.Fields = value; return this; }
        public HashMap<String,String> getMeta() { return Meta; }
        public QueryBase setMeta(HashMap<String,String> value) { this.Meta = value; return this; }
    }

    public static class Booking extends BaseModel implements IInterval, ICustomFieldTable, IBaseModelUpdated, IBaseModelCreated
    {
        @Ignore()
        public Customer Customer = null;

        @Ignore()
        public Service Service = null;

        @Ignore()
        public CalendarExport CalendarExport = null;

        @Ignore()
        public ArrayList<BookingLog> Log = null;

        @Ignore()
        public ArrayList<PaymentLog> PaymentLog = null;

        @Ignore()
        public ArrayList<PaymentDetails> CheckoutLogs = null;

        @Ignore()
        public ArrayList<BookingPrice> Prices = null;

        @Ignore()
        public BookingStatusEnum Status = null;

        @Ignore()
        public Boolean isReserved = null;

        @Ignore()
        public String StatusName = null;

        @Ignore()
        public Company Company = null;

        @References(Currency.class)
        public String CurrencyId = null;

        public Currency CurrencyInfo = null;
        public BookingStatus BookingStatus = null;
        @Ignore()
        public Double TotalPrice = null;

        @Ignore()
        public Integer TotalSpots = null;

        @Ignore()
        public IList<Resource> Resources = null;

        @Ignore()
        public IList<ExternalReference> ExternalReferences = null;

        @Ignore()
        public IList<BookedResourceType> BookedResources = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldDataResponse> CustomFieldsData = null;

        @Ignore()
        public Boolean Active = null;

        @Ignore()
        public Date LastTimeToUnBook = null;

        @Ignore()
        public ArrayList<PriceMapping> PriceMappings = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public UUID CustomerId = null;

        @Required()
        public Integer ServiceId = null;

        @Required()
        public Integer StatusId = null;

        public Date UnbookedOn = null;
        public String UnbookedComments = null;
        public String BookedComments = null;
        @Required()
        public String BookedBy = null;

        public String UnBookedBy = null;
        @Required()
        public Boolean SendSmsReminder = null;

        @Required()
        public Boolean SendEmailReminder = null;

        @Required()
        public Boolean SendSmsConfirmation = null;

        public String RebateCode = null;
        public String Comments = null;
        public String IpAddress = null;
        @Required()
        public Integer NumberOfBookedSpots = null;

        public String CommentsToCustomer = null;
        public Date PaymentExpiration = null;
        public BigDecimal PriceVat = null;
        @Required()
        public Boolean SendEmailConfirmation = null;

        public String CancellationCode = null;
        public Date ModifiedDate = null;
        public String RatingCode = null;
        public String TextField1 = null;
        public String TextField2 = null;
        public String TextField3 = null;
        public String TextField4 = null;
        public String TextField5 = null;
        public String TextField6 = null;
        public String TextField7 = null;
        public String TextField8 = null;
        public String TextField9 = null;
        public String TextField10 = null;
        public String TextField11 = null;
        public String TextField12 = null;
        public String TextField13 = null;
        public String TextField14 = null;
        public String TextField15 = null;
        public String TextField16 = null;
        public String TextField17 = null;
        public String TextField18 = null;
        public String TextField19 = null;
        public String TextField20 = null;
        @Required()
        public Date From = null;

        @Required()
        public Date To = null;
        
        public Customer getCustomer() { return Customer; }
        public Booking setCustomer(Customer value) { this.Customer = value; return this; }
        public Service getService() { return Service; }
        public Booking setService(Service value) { this.Service = value; return this; }
        public CalendarExport getCalendarExport() { return CalendarExport; }
        public Booking setCalendarExport(CalendarExport value) { this.CalendarExport = value; return this; }
        public ArrayList<BookingLog> getLog() { return Log; }
        public Booking setLog(ArrayList<BookingLog> value) { this.Log = value; return this; }
        public ArrayList<PaymentLog> getPaymentLog() { return PaymentLog; }
        public Booking setPaymentLog(ArrayList<PaymentLog> value) { this.PaymentLog = value; return this; }
        public ArrayList<PaymentDetails> getCheckoutLogs() { return CheckoutLogs; }
        public Booking setCheckoutLogs(ArrayList<PaymentDetails> value) { this.CheckoutLogs = value; return this; }
        public ArrayList<BookingPrice> getPrices() { return Prices; }
        public Booking setPrices(ArrayList<BookingPrice> value) { this.Prices = value; return this; }
        public BookingStatusEnum getStatus() { return Status; }
        public Booking setStatus(BookingStatusEnum value) { this.Status = value; return this; }
        public Boolean getIsReserved() { return isReserved; }
        public Booking setIsReserved(Boolean value) { this.isReserved = value; return this; }
        public String getStatusName() { return StatusName; }
        public Booking setStatusName(String value) { this.StatusName = value; return this; }
        public Company getCompany() { return Company; }
        public Booking setCompany(Company value) { this.Company = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public Booking setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public Booking setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public BookingStatus getBookingStatus() { return BookingStatus; }
        public Booking setBookingStatus(BookingStatus value) { this.BookingStatus = value; return this; }
        public Double getTotalPrice() { return TotalPrice; }
        public Booking setTotalPrice(Double value) { this.TotalPrice = value; return this; }
        public Integer getTotalSpots() { return TotalSpots; }
        public Booking setTotalSpots(Integer value) { this.TotalSpots = value; return this; }
        public IList<Resource> getResources() { return Resources; }
        public Booking setResources(IList<Resource> value) { this.Resources = value; return this; }
        public IList<ExternalReference> getExternalReferences() { return ExternalReferences; }
        public Booking setExternalReferences(IList<ExternalReference> value) { this.ExternalReferences = value; return this; }
        public IList<BookedResourceType> getBookedResources() { return BookedResources; }
        public Booking setBookedResources(IList<BookedResourceType> value) { this.BookedResources = value; return this; }
        public IList<CustomFieldConfig> getCustomFieldsConfig() { return CustomFieldsConfig; }
        public Booking setCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomFieldsConfig = value; return this; }
        public IList<CustomFieldDataResponse> getCustomFieldsData() { return CustomFieldsData; }
        public Booking setCustomFieldsData(IList<CustomFieldDataResponse> value) { this.CustomFieldsData = value; return this; }
        public Boolean isActive() { return Active; }
        public Booking setActive(Boolean value) { this.Active = value; return this; }
        public Date getLastTimeToUnBook() { return LastTimeToUnBook; }
        public Booking setLastTimeToUnBook(Date value) { this.LastTimeToUnBook = value; return this; }
        public ArrayList<PriceMapping> getPriceMappings() { return PriceMappings; }
        public Booking setPriceMappings(ArrayList<PriceMapping> value) { this.PriceMappings = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public Booking setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public Booking setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Booking setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public Booking setId(Integer value) { this.Id = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public Booking setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public Booking setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Integer getStatusId() { return StatusId; }
        public Booking setStatusId(Integer value) { this.StatusId = value; return this; }
        public Date getUnbookedOn() { return UnbookedOn; }
        public Booking setUnbookedOn(Date value) { this.UnbookedOn = value; return this; }
        public String getUnbookedComments() { return UnbookedComments; }
        public Booking setUnbookedComments(String value) { this.UnbookedComments = value; return this; }
        public String getBookedComments() { return BookedComments; }
        public Booking setBookedComments(String value) { this.BookedComments = value; return this; }
        public String getBookedBy() { return BookedBy; }
        public Booking setBookedBy(String value) { this.BookedBy = value; return this; }
        public String getUnBookedBy() { return UnBookedBy; }
        public Booking setUnBookedBy(String value) { this.UnBookedBy = value; return this; }
        public Boolean isSendSmsReminder() { return SendSmsReminder; }
        public Booking setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; }
        public Boolean isSendEmailReminder() { return SendEmailReminder; }
        public Booking setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; }
        public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; }
        public Booking setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; }
        public String getRebateCode() { return RebateCode; }
        public Booking setRebateCode(String value) { this.RebateCode = value; return this; }
        public String getComments() { return Comments; }
        public Booking setComments(String value) { this.Comments = value; return this; }
        public String getIpAddress() { return IpAddress; }
        public Booking setIpAddress(String value) { this.IpAddress = value; return this; }
        public Integer getNumberOfBookedSpots() { return NumberOfBookedSpots; }
        public Booking setNumberOfBookedSpots(Integer value) { this.NumberOfBookedSpots = value; return this; }
        public String getCommentsToCustomer() { return CommentsToCustomer; }
        public Booking setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; }
        public Date getPaymentExpiration() { return PaymentExpiration; }
        public Booking setPaymentExpiration(Date value) { this.PaymentExpiration = value; return this; }
        public BigDecimal getPriceVat() { return PriceVat; }
        public Booking setPriceVat(BigDecimal value) { this.PriceVat = value; return this; }
        public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; }
        public Booking setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; }
        public String getCancellationCode() { return CancellationCode; }
        public Booking setCancellationCode(String value) { this.CancellationCode = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Booking setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getRatingCode() { return RatingCode; }
        public Booking setRatingCode(String value) { this.RatingCode = value; return this; }
        public String getTextField1() { return TextField1; }
        public Booking setTextField1(String value) { this.TextField1 = value; return this; }
        public String getTextField2() { return TextField2; }
        public Booking setTextField2(String value) { this.TextField2 = value; return this; }
        public String getTextField3() { return TextField3; }
        public Booking setTextField3(String value) { this.TextField3 = value; return this; }
        public String getTextField4() { return TextField4; }
        public Booking setTextField4(String value) { this.TextField4 = value; return this; }
        public String getTextField5() { return TextField5; }
        public Booking setTextField5(String value) { this.TextField5 = value; return this; }
        public String getTextField6() { return TextField6; }
        public Booking setTextField6(String value) { this.TextField6 = value; return this; }
        public String getTextField7() { return TextField7; }
        public Booking setTextField7(String value) { this.TextField7 = value; return this; }
        public String getTextField8() { return TextField8; }
        public Booking setTextField8(String value) { this.TextField8 = value; return this; }
        public String getTextField9() { return TextField9; }
        public Booking setTextField9(String value) { this.TextField9 = value; return this; }
        public String getTextField10() { return TextField10; }
        public Booking setTextField10(String value) { this.TextField10 = value; return this; }
        public String getTextField11() { return TextField11; }
        public Booking setTextField11(String value) { this.TextField11 = value; return this; }
        public String getTextField12() { return TextField12; }
        public Booking setTextField12(String value) { this.TextField12 = value; return this; }
        public String getTextField13() { return TextField13; }
        public Booking setTextField13(String value) { this.TextField13 = value; return this; }
        public String getTextField14() { return TextField14; }
        public Booking setTextField14(String value) { this.TextField14 = value; return this; }
        public String getTextField15() { return TextField15; }
        public Booking setTextField15(String value) { this.TextField15 = value; return this; }
        public String getTextField16() { return TextField16; }
        public Booking setTextField16(String value) { this.TextField16 = value; return this; }
        public String getTextField17() { return TextField17; }
        public Booking setTextField17(String value) { this.TextField17 = value; return this; }
        public String getTextField18() { return TextField18; }
        public Booking setTextField18(String value) { this.TextField18 = value; return this; }
        public String getTextField19() { return TextField19; }
        public Booking setTextField19(String value) { this.TextField19 = value; return this; }
        public String getTextField20() { return TextField20; }
        public Booking setTextField20(String value) { this.TextField20 = value; return this; }
        public Date getFrom() { return From; }
        public Booking setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public Booking setTo(Date value) { this.To = value; return this; }
    }

    public static class BaseModel
    {
        
    }

    public static class Customer extends BaseModel implements IUser, ICustomFieldTable
    {
        public Integer IdentityId = null;
        public UUID Id = null;
        @Ignore()
        public UUID CustomerId = null;

        @Ignore()
        public IList<UserAccessKeys> AccessKeys = null;

        public String Email = null;
        @Ignore()
        public IList<ExternalReference> ExternalReferences = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldDataResponse> CustomFieldsData = null;

        @Ignore()
        public IList<CustomerComment> Comments = null;

        public String Firstname = null;
        @Ignore()
        public String ImageUrl = null;

        @Required()
        public Boolean Active = null;

        public String FacebookUsername = null;
        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public String IpAddress = null;
        public Date ModifiedDate = null;
        public String TextField1 = null;
        public String TextField2 = null;
        public String TextField3 = null;
        public String TextField4 = null;
        public String TextField5 = null;
        public String TextField6 = null;
        public String TextField7 = null;
        public String TextField8 = null;
        public String TextField9 = null;
        public String TextField10 = null;
        public String TextField11 = null;
        public String TextField12 = null;
        public String TextField13 = null;
        public String TextField14 = null;
        public String TextField15 = null;
        public String TextField16 = null;
        public String TextField17 = null;
        public String TextField18 = null;
        public String TextField19 = null;
        public String TextField20 = null;
        public UUID UserId = null;
        public String Lastname = null;
        public String Phone = null;
        public String CorporateIdentityNumber = null;
        public String InvoiceAddress1 = null;
        public String InvoiceAddress2 = null;
        public String InvoiceCity = null;
        public String InvoicePostalCode = null;
        public String InvoiceCountryCode = null;
        @Required()
        public UUID CompanyId = null;

        public Boolean SubscribedToNewsletter = null;
        
        public Integer getIdentityId() { return IdentityId; }
        public Customer setIdentityId(Integer value) { this.IdentityId = value; return this; }
        public UUID getId() { return Id; }
        public Customer setId(UUID value) { this.Id = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public Customer setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public IList<UserAccessKeys> getAccessKeys() { return AccessKeys; }
        public Customer setAccessKeys(IList<UserAccessKeys> value) { this.AccessKeys = value; return this; }
        public String getEmail() { return Email; }
        public Customer setEmail(String value) { this.Email = value; return this; }
        public IList<ExternalReference> getExternalReferences() { return ExternalReferences; }
        public Customer setExternalReferences(IList<ExternalReference> value) { this.ExternalReferences = value; return this; }
        public IList<CustomFieldConfig> getCustomFieldsConfig() { return CustomFieldsConfig; }
        public Customer setCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomFieldsConfig = value; return this; }
        public IList<CustomFieldDataResponse> getCustomFieldsData() { return CustomFieldsData; }
        public Customer setCustomFieldsData(IList<CustomFieldDataResponse> value) { this.CustomFieldsData = value; return this; }
        public IList<CustomerComment> getComments() { return Comments; }
        public Customer setComments(IList<CustomerComment> value) { this.Comments = value; return this; }
        public String getFirstname() { return Firstname; }
        public Customer setFirstname(String value) { this.Firstname = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public Customer setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Boolean isActive() { return Active; }
        public Customer setActive(Boolean value) { this.Active = value; return this; }
        public String getFacebookUsername() { return FacebookUsername; }
        public Customer setFacebookUsername(String value) { this.FacebookUsername = value; return this; }
        public Date getUpdated() { return Updated; }
        public Customer setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public Customer setCreated(Date value) { this.Created = value; return this; }
        public String getIpAddress() { return IpAddress; }
        public Customer setIpAddress(String value) { this.IpAddress = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Customer setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getTextField1() { return TextField1; }
        public Customer setTextField1(String value) { this.TextField1 = value; return this; }
        public String getTextField2() { return TextField2; }
        public Customer setTextField2(String value) { this.TextField2 = value; return this; }
        public String getTextField3() { return TextField3; }
        public Customer setTextField3(String value) { this.TextField3 = value; return this; }
        public String getTextField4() { return TextField4; }
        public Customer setTextField4(String value) { this.TextField4 = value; return this; }
        public String getTextField5() { return TextField5; }
        public Customer setTextField5(String value) { this.TextField5 = value; return this; }
        public String getTextField6() { return TextField6; }
        public Customer setTextField6(String value) { this.TextField6 = value; return this; }
        public String getTextField7() { return TextField7; }
        public Customer setTextField7(String value) { this.TextField7 = value; return this; }
        public String getTextField8() { return TextField8; }
        public Customer setTextField8(String value) { this.TextField8 = value; return this; }
        public String getTextField9() { return TextField9; }
        public Customer setTextField9(String value) { this.TextField9 = value; return this; }
        public String getTextField10() { return TextField10; }
        public Customer setTextField10(String value) { this.TextField10 = value; return this; }
        public String getTextField11() { return TextField11; }
        public Customer setTextField11(String value) { this.TextField11 = value; return this; }
        public String getTextField12() { return TextField12; }
        public Customer setTextField12(String value) { this.TextField12 = value; return this; }
        public String getTextField13() { return TextField13; }
        public Customer setTextField13(String value) { this.TextField13 = value; return this; }
        public String getTextField14() { return TextField14; }
        public Customer setTextField14(String value) { this.TextField14 = value; return this; }
        public String getTextField15() { return TextField15; }
        public Customer setTextField15(String value) { this.TextField15 = value; return this; }
        public String getTextField16() { return TextField16; }
        public Customer setTextField16(String value) { this.TextField16 = value; return this; }
        public String getTextField17() { return TextField17; }
        public Customer setTextField17(String value) { this.TextField17 = value; return this; }
        public String getTextField18() { return TextField18; }
        public Customer setTextField18(String value) { this.TextField18 = value; return this; }
        public String getTextField19() { return TextField19; }
        public Customer setTextField19(String value) { this.TextField19 = value; return this; }
        public String getTextField20() { return TextField20; }
        public Customer setTextField20(String value) { this.TextField20 = value; return this; }
        public UUID getUserId() { return UserId; }
        public Customer setUserId(UUID value) { this.UserId = value; return this; }
        public String getLastname() { return Lastname; }
        public Customer setLastname(String value) { this.Lastname = value; return this; }
        public String getPhone() { return Phone; }
        public Customer setPhone(String value) { this.Phone = value; return this; }
        public String getCorporateIdentityNumber() { return CorporateIdentityNumber; }
        public Customer setCorporateIdentityNumber(String value) { this.CorporateIdentityNumber = value; return this; }
        public String getInvoiceAddress1() { return InvoiceAddress1; }
        public Customer setInvoiceAddress1(String value) { this.InvoiceAddress1 = value; return this; }
        public String getInvoiceAddress2() { return InvoiceAddress2; }
        public Customer setInvoiceAddress2(String value) { this.InvoiceAddress2 = value; return this; }
        public String getInvoiceCity() { return InvoiceCity; }
        public Customer setInvoiceCity(String value) { this.InvoiceCity = value; return this; }
        public String getInvoicePostalCode() { return InvoicePostalCode; }
        public Customer setInvoicePostalCode(String value) { this.InvoicePostalCode = value; return this; }
        public String getInvoiceCountryCode() { return InvoiceCountryCode; }
        public Customer setInvoiceCountryCode(String value) { this.InvoiceCountryCode = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Customer setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Boolean isSubscribedToNewsletter() { return SubscribedToNewsletter; }
        public Customer setSubscribedToNewsletter(Boolean value) { this.SubscribedToNewsletter = value; return this; }
    }

    public static class UserAccessKeys extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer AccessKeyTypeId = null;

        @Required()
        public String Value = null;

        @Required()
        public UUID CustomerId = null;

        public String Description = null;
        @Required()
        public UUID Id = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public UserAccessKeys setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getAccessKeyTypeId() { return AccessKeyTypeId; }
        public UserAccessKeys setAccessKeyTypeId(Integer value) { this.AccessKeyTypeId = value; return this; }
        public String getValue() { return Value; }
        public UserAccessKeys setValue(String value) { this.Value = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public UserAccessKeys setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public String getDescription() { return Description; }
        public UserAccessKeys setDescription(String value) { this.Description = value; return this; }
        public UUID getId() { return Id; }
        public UserAccessKeys setId(UUID value) { this.Id = value; return this; }
    }

    public static class ExternalReference extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public UUID Id = null;

        @Required()
        public UUID OwnerId = null;

        @Required()
        public String ReferenceType = null;

        public String ExternalData = null;
        public String CreatedBy = null;
        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public ExternalReference setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getId() { return Id; }
        public ExternalReference setId(UUID value) { this.Id = value; return this; }
        public UUID getOwnerId() { return OwnerId; }
        public ExternalReference setOwnerId(UUID value) { this.OwnerId = value; return this; }
        public String getReferenceType() { return ReferenceType; }
        public ExternalReference setReferenceType(String value) { this.ReferenceType = value; return this; }
        public String getExternalData() { return ExternalData; }
        public ExternalReference setExternalData(String value) { this.ExternalData = value; return this; }
        public String getCreatedBy() { return CreatedBy; }
        public ExternalReference setCreatedBy(String value) { this.CreatedBy = value; return this; }
        public Date getUpdated() { return Updated; }
        public ExternalReference setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public ExternalReference setCreated(Date value) { this.Created = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ExternalReference setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class CustomFieldConfig extends BaseModel
    {
        @Ignore()
        public ArrayList<CustomFieldValue> Values = null;

        public CustomField CustomField = null;
        @Ignore()
        public RegEx RegEx = null;

        @Ignore()
        public ArrayList<Service> Services = null;

        public ArrayList<CustomFieldServiceRelation> CustomFieldServiceRelation = null;
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        public Integer GroupId = null;
        @Required()
        public Integer FieldId = null;

        @Required()
        public Integer IconId = null;

        public Integer RegExId = null;
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Datatype = null;

        @Required()
        public Integer MaxLength = null;

        @Required()
        public Boolean IsPublic = null;

        @Required()
        public Boolean IsHidden = null;

        @Required()
        public Boolean IsMandatory = null;

        public String DefaultValue = null;
        public String RegExErrorMessage = null;
        public String MandatoryErrorMessage = null;
        public Integer Width = null;
        @Required()
        public Boolean MultipleLineText = null;

        public Date ModifiedDate = null;
        
        public ArrayList<CustomFieldValue> getValues() { return Values; }
        public CustomFieldConfig setValues(ArrayList<CustomFieldValue> value) { this.Values = value; return this; }
        public CustomField getCustomField() { return CustomField; }
        public CustomFieldConfig setCustomField(CustomField value) { this.CustomField = value; return this; }
        public RegEx getRegEx() { return RegEx; }
        public CustomFieldConfig setRegEx(RegEx value) { this.RegEx = value; return this; }
        public ArrayList<Service> getServices() { return Services; }
        public CustomFieldConfig setServices(ArrayList<Service> value) { this.Services = value; return this; }
        public ArrayList<CustomFieldServiceRelation> getCustomFieldServiceRelation() { return CustomFieldServiceRelation; }
        public CustomFieldConfig setCustomFieldServiceRelation(ArrayList<CustomFieldServiceRelation> value) { this.CustomFieldServiceRelation = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public CustomFieldConfig setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public CustomFieldConfig setId(Integer value) { this.Id = value; return this; }
        public Integer getGroupId() { return GroupId; }
        public CustomFieldConfig setGroupId(Integer value) { this.GroupId = value; return this; }
        public Integer getFieldId() { return FieldId; }
        public CustomFieldConfig setFieldId(Integer value) { this.FieldId = value; return this; }
        public Integer getIconId() { return IconId; }
        public CustomFieldConfig setIconId(Integer value) { this.IconId = value; return this; }
        public Integer getRegExId() { return RegExId; }
        public CustomFieldConfig setRegExId(Integer value) { this.RegExId = value; return this; }
        public String getName() { return Name; }
        public CustomFieldConfig setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CustomFieldConfig setDescription(String value) { this.Description = value; return this; }
        public String getDatatype() { return Datatype; }
        public CustomFieldConfig setDatatype(String value) { this.Datatype = value; return this; }
        public Integer getMaxLength() { return MaxLength; }
        public CustomFieldConfig setMaxLength(Integer value) { this.MaxLength = value; return this; }
        public Boolean getIsPublic() { return IsPublic; }
        public CustomFieldConfig setIsPublic(Boolean value) { this.IsPublic = value; return this; }
        public Boolean getIsHidden() { return IsHidden; }
        public CustomFieldConfig setIsHidden(Boolean value) { this.IsHidden = value; return this; }
        public Boolean getIsMandatory() { return IsMandatory; }
        public CustomFieldConfig setIsMandatory(Boolean value) { this.IsMandatory = value; return this; }
        public String getDefaultValue() { return DefaultValue; }
        public CustomFieldConfig setDefaultValue(String value) { this.DefaultValue = value; return this; }
        public String getRegExErrorMessage() { return RegExErrorMessage; }
        public CustomFieldConfig setRegExErrorMessage(String value) { this.RegExErrorMessage = value; return this; }
        public String getMandatoryErrorMessage() { return MandatoryErrorMessage; }
        public CustomFieldConfig setMandatoryErrorMessage(String value) { this.MandatoryErrorMessage = value; return this; }
        public Integer getWidth() { return Width; }
        public CustomFieldConfig setWidth(Integer value) { this.Width = value; return this; }
        public Boolean isMultipleLineText() { return MultipleLineText; }
        public CustomFieldConfig setMultipleLineText(Boolean value) { this.MultipleLineText = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CustomFieldConfig setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class CustomFieldValue extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public String Value = null;

        @Required()
        public Boolean Active = null;

        public Short SortOrder = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CustomFieldValue setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public CustomFieldValue setId(Integer value) { this.Id = value; return this; }
        public String getValue() { return Value; }
        public CustomFieldValue setValue(String value) { this.Value = value; return this; }
        public Boolean isActive() { return Active; }
        public CustomFieldValue setActive(Boolean value) { this.Active = value; return this; }
        public Short getSortOrder() { return SortOrder; }
        public CustomFieldValue setSortOrder(Short value) { this.SortOrder = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CustomFieldValue setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class CustomField extends BaseModel
    {
        @Required()
        public String Table = null;

        @Required()
        public String Column = null;

        @Required()
        public String DataType = null;

        @Required()
        public String Description = null;

        @Required()
        public Boolean Active = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getTable() { return Table; }
        public CustomField setTable(String value) { this.Table = value; return this; }
        public String getColumn() { return Column; }
        public CustomField setColumn(String value) { this.Column = value; return this; }
        public String getDataType() { return DataType; }
        public CustomField setDataType(String value) { this.DataType = value; return this; }
        public String getDescription() { return Description; }
        public CustomField setDescription(String value) { this.Description = value; return this; }
        public Boolean isActive() { return Active; }
        public CustomField setActive(Boolean value) { this.Active = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CustomField setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CustomField setId(Integer value) { this.Id = value; return this; }
    }

    public static class RegEx extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String RegExCode = null;

        public String ErrorMessage = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public RegEx setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public RegEx setDescription(String value) { this.Description = value; return this; }
        public String getRegExCode() { return RegExCode; }
        public RegEx setRegExCode(String value) { this.RegExCode = value; return this; }
        public String getErrorMessage() { return ErrorMessage; }
        public RegEx setErrorMessage(String value) { this.ErrorMessage = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RegEx setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public RegEx setId(Integer value) { this.Id = value; return this; }
    }

    public static class Service extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public ArrayList<ResourceType> ResourceTypes = null;

        @Ignore()
        public ArrayList<Resource> Resources = null;

        @Ignore()
        public TotalPriceInformation TotalPrice = null;

        @Ignore()
        public ArrayList<ServicePrice> Prices = null;

        @Ignore()
        public ArrayList<BookingStatusOptions> BookingStatusOptions = null;

        @Ignore()
        public Boolean IsGroupBooking = null;

        @Ignore()
        public Boolean IsMultipleResource = null;

        @Ignore()
        public BookingSettings Settings = null;

        @Ignore()
        public PaymentSetting PaymentSetting = null;

        @Ignore()
        public IList<CustomFieldConfig> BookingCustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomerCustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldDataResponse> CustomFieldsData = null;

        @Ignore()
        public IList<ISchedule> Schedules = null;

        @Ignore()
        public IList<Booking> CustomerActiveBookings = null;

        @Ignore()
        public ScheduleType ScheduleType = null;

        @Ignore()
        public TimeSpan LastTimeToUnbookThreshold = null;

        @Ignore()
        public TimeSpan LastTimeToBookThreshold = null;

        @Ignore()
        public AverageRatingScore RatingScore = null;

        @Ignore()
        public ArrayList<Rating> Ratings = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public String Group = null;
        @Required()
        public Boolean Active = null;

        @Required()
        public Integer SortOrder = null;

        @Required()
        public Integer PauseAfterBooking = null;

        @Required()
        public Integer UnbookBeforeDays = null;

        @Required()
        public Integer UnbookBeforeHours = null;

        @Required()
        public Integer UnbookBeforeMinutes = null;

        @Required()
        public Integer BookBeforeDays = null;

        @Required()
        public Integer BookBeforeHours = null;

        @Required()
        public Integer BookBeforeMinutes = null;

        public Integer Duration = null;
        public Integer DurationTypeId = null;
        public Integer MinDuration = null;
        public Integer MaxDuration = null;
        public Integer DurationInterval = null;
        public Integer TotalSpots = null;
        public String ImageUrl = null;
        @Required()
        public Integer ScheduleTypeId = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public Boolean OnlyVisibleByAdmin = null;

        @Required()
        public Integer MaxNumberOfSpotsPerBooking = null;

        @Required()
        public Integer MinNumberOfResourcesToBook = null;

        @Required()
        public Integer MaxNumberOfResourcesToBook = null;

        @Required()
        public Boolean IsPaymentEnabled = null;

        @Required()
        public Integer MaxPaymentTime = null;

        @Required()
        public Boolean LockSpotsToBooking = null;

        @Required()
        public Boolean EnableBookingQueue = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer BookingStatusId = null;

        @Required()
        public Boolean EnableCodeLockSync = null;

        @Required()
        public Boolean EnableCustomerManualPayment = null;

        public Integer PriceViewTypeId = null;
        public String TextField1 = null;
        public String TextField2 = null;
        public String TextField3 = null;
        public String TextField4 = null;
        public String TextField5 = null;
        public String TextField6 = null;
        public String TextField7 = null;
        public String TextField8 = null;
        public String TextField9 = null;
        public String TextField10 = null;
        public String TextField11 = null;
        public String TextField12 = null;
        public String TextField13 = null;
        public String TextField14 = null;
        public String TextField15 = null;
        public String TextField16 = null;
        public String TextField17 = null;
        public String TextField18 = null;
        public String TextField19 = null;
        public String TextField20 = null;
        
        public ArrayList<ResourceType> getResourceTypes() { return ResourceTypes; }
        public Service setResourceTypes(ArrayList<ResourceType> value) { this.ResourceTypes = value; return this; }
        public ArrayList<Resource> getResources() { return Resources; }
        public Service setResources(ArrayList<Resource> value) { this.Resources = value; return this; }
        public TotalPriceInformation getTotalPrice() { return TotalPrice; }
        public Service setTotalPrice(TotalPriceInformation value) { this.TotalPrice = value; return this; }
        public ArrayList<ServicePrice> getPrices() { return Prices; }
        public Service setPrices(ArrayList<ServicePrice> value) { this.Prices = value; return this; }
        public ArrayList<BookingStatusOptions> getBookingStatusOptions() { return BookingStatusOptions; }
        public Service setBookingStatusOptions(ArrayList<BookingStatusOptions> value) { this.BookingStatusOptions = value; return this; }
        public Boolean getIsGroupBooking() { return IsGroupBooking; }
        public Service setIsGroupBooking(Boolean value) { this.IsGroupBooking = value; return this; }
        public Boolean getIsMultipleResource() { return IsMultipleResource; }
        public Service setIsMultipleResource(Boolean value) { this.IsMultipleResource = value; return this; }
        public BookingSettings getSettings() { return Settings; }
        public Service setSettings(BookingSettings value) { this.Settings = value; return this; }
        public PaymentSetting getPaymentSetting() { return PaymentSetting; }
        public Service setPaymentSetting(PaymentSetting value) { this.PaymentSetting = value; return this; }
        public IList<CustomFieldConfig> getBookingCustomFieldsConfig() { return BookingCustomFieldsConfig; }
        public Service setBookingCustomFieldsConfig(IList<CustomFieldConfig> value) { this.BookingCustomFieldsConfig = value; return this; }
        public IList<CustomFieldConfig> getCustomerCustomFieldsConfig() { return CustomerCustomFieldsConfig; }
        public Service setCustomerCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomerCustomFieldsConfig = value; return this; }
        public IList<CustomFieldConfig> getCustomFieldsConfig() { return CustomFieldsConfig; }
        public Service setCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomFieldsConfig = value; return this; }
        public IList<CustomFieldDataResponse> getCustomFieldsData() { return CustomFieldsData; }
        public Service setCustomFieldsData(IList<CustomFieldDataResponse> value) { this.CustomFieldsData = value; return this; }
        public IList<ISchedule> getSchedules() { return Schedules; }
        public Service setSchedules(IList<ISchedule> value) { this.Schedules = value; return this; }
        public IList<Booking> getCustomerActiveBookings() { return CustomerActiveBookings; }
        public Service setCustomerActiveBookings(IList<Booking> value) { this.CustomerActiveBookings = value; return this; }
        public ScheduleType getScheduleType() { return ScheduleType; }
        public Service setScheduleType(ScheduleType value) { this.ScheduleType = value; return this; }
        public TimeSpan getLastTimeToUnbookThreshold() { return LastTimeToUnbookThreshold; }
        public Service setLastTimeToUnbookThreshold(TimeSpan value) { this.LastTimeToUnbookThreshold = value; return this; }
        public TimeSpan getLastTimeToBookThreshold() { return LastTimeToBookThreshold; }
        public Service setLastTimeToBookThreshold(TimeSpan value) { this.LastTimeToBookThreshold = value; return this; }
        public AverageRatingScore getRatingScore() { return RatingScore; }
        public Service setRatingScore(AverageRatingScore value) { this.RatingScore = value; return this; }
        public ArrayList<Rating> getRatings() { return Ratings; }
        public Service setRatings(ArrayList<Rating> value) { this.Ratings = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Service setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public Service setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public Service setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public Service setDescription(String value) { this.Description = value; return this; }
        public String getGroup() { return Group; }
        public Service setGroup(String value) { this.Group = value; return this; }
        public Boolean isActive() { return Active; }
        public Service setActive(Boolean value) { this.Active = value; return this; }
        public Integer getSortOrder() { return SortOrder; }
        public Service setSortOrder(Integer value) { this.SortOrder = value; return this; }
        public Integer getPauseAfterBooking() { return PauseAfterBooking; }
        public Service setPauseAfterBooking(Integer value) { this.PauseAfterBooking = value; return this; }
        public Integer getUnbookBeforeDays() { return UnbookBeforeDays; }
        public Service setUnbookBeforeDays(Integer value) { this.UnbookBeforeDays = value; return this; }
        public Integer getUnbookBeforeHours() { return UnbookBeforeHours; }
        public Service setUnbookBeforeHours(Integer value) { this.UnbookBeforeHours = value; return this; }
        public Integer getUnbookBeforeMinutes() { return UnbookBeforeMinutes; }
        public Service setUnbookBeforeMinutes(Integer value) { this.UnbookBeforeMinutes = value; return this; }
        public Integer getBookBeforeDays() { return BookBeforeDays; }
        public Service setBookBeforeDays(Integer value) { this.BookBeforeDays = value; return this; }
        public Integer getBookBeforeHours() { return BookBeforeHours; }
        public Service setBookBeforeHours(Integer value) { this.BookBeforeHours = value; return this; }
        public Integer getBookBeforeMinutes() { return BookBeforeMinutes; }
        public Service setBookBeforeMinutes(Integer value) { this.BookBeforeMinutes = value; return this; }
        public Integer getDuration() { return Duration; }
        public Service setDuration(Integer value) { this.Duration = value; return this; }
        public Integer getDurationTypeId() { return DurationTypeId; }
        public Service setDurationTypeId(Integer value) { this.DurationTypeId = value; return this; }
        public Integer getMinDuration() { return MinDuration; }
        public Service setMinDuration(Integer value) { this.MinDuration = value; return this; }
        public Integer getMaxDuration() { return MaxDuration; }
        public Service setMaxDuration(Integer value) { this.MaxDuration = value; return this; }
        public Integer getDurationInterval() { return DurationInterval; }
        public Service setDurationInterval(Integer value) { this.DurationInterval = value; return this; }
        public Integer getTotalSpots() { return TotalSpots; }
        public Service setTotalSpots(Integer value) { this.TotalSpots = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public Service setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Integer getScheduleTypeId() { return ScheduleTypeId; }
        public Service setScheduleTypeId(Integer value) { this.ScheduleTypeId = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public Service setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public Service setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Boolean isOnlyVisibleByAdmin() { return OnlyVisibleByAdmin; }
        public Service setOnlyVisibleByAdmin(Boolean value) { this.OnlyVisibleByAdmin = value; return this; }
        public Integer getMaxNumberOfSpotsPerBooking() { return MaxNumberOfSpotsPerBooking; }
        public Service setMaxNumberOfSpotsPerBooking(Integer value) { this.MaxNumberOfSpotsPerBooking = value; return this; }
        public Integer getMinNumberOfResourcesToBook() { return MinNumberOfResourcesToBook; }
        public Service setMinNumberOfResourcesToBook(Integer value) { this.MinNumberOfResourcesToBook = value; return this; }
        public Integer getMaxNumberOfResourcesToBook() { return MaxNumberOfResourcesToBook; }
        public Service setMaxNumberOfResourcesToBook(Integer value) { this.MaxNumberOfResourcesToBook = value; return this; }
        public Boolean getIsPaymentEnabled() { return IsPaymentEnabled; }
        public Service setIsPaymentEnabled(Boolean value) { this.IsPaymentEnabled = value; return this; }
        public Integer getMaxPaymentTime() { return MaxPaymentTime; }
        public Service setMaxPaymentTime(Integer value) { this.MaxPaymentTime = value; return this; }
        public Boolean isLockSpotsToBooking() { return LockSpotsToBooking; }
        public Service setLockSpotsToBooking(Boolean value) { this.LockSpotsToBooking = value; return this; }
        public Boolean isEnableBookingQueue() { return EnableBookingQueue; }
        public Service setEnableBookingQueue(Boolean value) { this.EnableBookingQueue = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Service setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getBookingStatusId() { return BookingStatusId; }
        public Service setBookingStatusId(Integer value) { this.BookingStatusId = value; return this; }
        public Boolean isEnableCodeLockSync() { return EnableCodeLockSync; }
        public Service setEnableCodeLockSync(Boolean value) { this.EnableCodeLockSync = value; return this; }
        public Boolean isEnableCustomerManualPayment() { return EnableCustomerManualPayment; }
        public Service setEnableCustomerManualPayment(Boolean value) { this.EnableCustomerManualPayment = value; return this; }
        public Integer getPriceViewTypeId() { return PriceViewTypeId; }
        public Service setPriceViewTypeId(Integer value) { this.PriceViewTypeId = value; return this; }
        public String getTextField1() { return TextField1; }
        public Service setTextField1(String value) { this.TextField1 = value; return this; }
        public String getTextField2() { return TextField2; }
        public Service setTextField2(String value) { this.TextField2 = value; return this; }
        public String getTextField3() { return TextField3; }
        public Service setTextField3(String value) { this.TextField3 = value; return this; }
        public String getTextField4() { return TextField4; }
        public Service setTextField4(String value) { this.TextField4 = value; return this; }
        public String getTextField5() { return TextField5; }
        public Service setTextField5(String value) { this.TextField5 = value; return this; }
        public String getTextField6() { return TextField6; }
        public Service setTextField6(String value) { this.TextField6 = value; return this; }
        public String getTextField7() { return TextField7; }
        public Service setTextField7(String value) { this.TextField7 = value; return this; }
        public String getTextField8() { return TextField8; }
        public Service setTextField8(String value) { this.TextField8 = value; return this; }
        public String getTextField9() { return TextField9; }
        public Service setTextField9(String value) { this.TextField9 = value; return this; }
        public String getTextField10() { return TextField10; }
        public Service setTextField10(String value) { this.TextField10 = value; return this; }
        public String getTextField11() { return TextField11; }
        public Service setTextField11(String value) { this.TextField11 = value; return this; }
        public String getTextField12() { return TextField12; }
        public Service setTextField12(String value) { this.TextField12 = value; return this; }
        public String getTextField13() { return TextField13; }
        public Service setTextField13(String value) { this.TextField13 = value; return this; }
        public String getTextField14() { return TextField14; }
        public Service setTextField14(String value) { this.TextField14 = value; return this; }
        public String getTextField15() { return TextField15; }
        public Service setTextField15(String value) { this.TextField15 = value; return this; }
        public String getTextField16() { return TextField16; }
        public Service setTextField16(String value) { this.TextField16 = value; return this; }
        public String getTextField17() { return TextField17; }
        public Service setTextField17(String value) { this.TextField17 = value; return this; }
        public String getTextField18() { return TextField18; }
        public Service setTextField18(String value) { this.TextField18 = value; return this; }
        public String getTextField19() { return TextField19; }
        public Service setTextField19(String value) { this.TextField19 = value; return this; }
        public String getTextField20() { return TextField20; }
        public Service setTextField20(String value) { this.TextField20 = value; return this; }
    }

    public static class ResourceType extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public Boolean SelectableByUser = null;

        @Ignore()
        public ArrayList<Resource> Resources = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public String Name = null;

        public String Description = null;
        @Required()
        public Boolean Active = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        public Date ModifiedDate = null;
        
        public Boolean isSelectableByUser() { return SelectableByUser; }
        public ResourceType setSelectableByUser(Boolean value) { this.SelectableByUser = value; return this; }
        public ArrayList<Resource> getResources() { return Resources; }
        public ResourceType setResources(ArrayList<Resource> value) { this.Resources = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public ResourceType setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public ResourceType setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ResourceType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public ResourceType setDescription(String value) { this.Description = value; return this; }
        public Boolean isActive() { return Active; }
        public ResourceType setActive(Boolean value) { this.Active = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public ResourceType setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public ResourceType setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ResourceType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class Resource extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public Integer Priority = null;

        @Ignore()
        public IList<ISchedule> Schedules = null;

        @Ignore()
        public IList<ITimeException> Exceptions = null;

        @Ignore()
        public IList<IBookedTime> Bookings = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomFieldsConfig = null;

        @Ignore()
        public IList<CustomFieldDataResponse> CustomFieldsData = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public String Name = null;

        @Required()
        public Boolean Active = null;

        public String Description = null;
        public String ImageUrl = null;
        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public String Color = null;

        public String Email = null;
        public String MobilePhone = null;
        public Boolean EmailNotification = null;
        public Boolean SMSNotification = null;
        @Required()
        public Boolean SendSMSReminder = null;

        @Required()
        public Boolean SendEmailReminder = null;

        public Date ModifiedDate = null;
        public String AccessGroup = null;
        public String TextField1 = null;
        public String TextField2 = null;
        public String TextField3 = null;
        public String TextField4 = null;
        public String TextField5 = null;
        public String TextField6 = null;
        public String TextField7 = null;
        public String TextField8 = null;
        public String TextField9 = null;
        public String TextField10 = null;
        public String TextField11 = null;
        public String TextField12 = null;
        public String TextField13 = null;
        public String TextField14 = null;
        public String TextField15 = null;
        public String TextField16 = null;
        public String TextField17 = null;
        public String TextField18 = null;
        public String TextField19 = null;
        public String TextField20 = null;
        
        public Integer getPriority() { return Priority; }
        public Resource setPriority(Integer value) { this.Priority = value; return this; }
        public IList<ISchedule> getSchedules() { return Schedules; }
        public Resource setSchedules(IList<ISchedule> value) { this.Schedules = value; return this; }
        public IList<ITimeException> getExceptions() { return Exceptions; }
        public Resource setExceptions(IList<ITimeException> value) { this.Exceptions = value; return this; }
        public IList<IBookedTime> getBookings() { return Bookings; }
        public Resource setBookings(IList<IBookedTime> value) { this.Bookings = value; return this; }
        public IList<CustomFieldConfig> getCustomFieldsConfig() { return CustomFieldsConfig; }
        public Resource setCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomFieldsConfig = value; return this; }
        public IList<CustomFieldDataResponse> getCustomFieldsData() { return CustomFieldsData; }
        public Resource setCustomFieldsData(IList<CustomFieldDataResponse> value) { this.CustomFieldsData = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Resource setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public Resource setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public Resource setName(String value) { this.Name = value; return this; }
        public Boolean isActive() { return Active; }
        public Resource setActive(Boolean value) { this.Active = value; return this; }
        public String getDescription() { return Description; }
        public Resource setDescription(String value) { this.Description = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public Resource setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public Resource setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public Resource setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public String getColor() { return Color; }
        public Resource setColor(String value) { this.Color = value; return this; }
        public String getEmail() { return Email; }
        public Resource setEmail(String value) { this.Email = value; return this; }
        public String getMobilePhone() { return MobilePhone; }
        public Resource setMobilePhone(String value) { this.MobilePhone = value; return this; }
        public Boolean isEmailNotification() { return EmailNotification; }
        public Resource setEmailNotification(Boolean value) { this.EmailNotification = value; return this; }
        public Boolean isSmsNotification() { return SMSNotification; }
        public Resource setSmsNotification(Boolean value) { this.SMSNotification = value; return this; }
        public Boolean isSendSMSReminder() { return SendSMSReminder; }
        public Resource setSendSMSReminder(Boolean value) { this.SendSMSReminder = value; return this; }
        public Boolean isSendEmailReminder() { return SendEmailReminder; }
        public Resource setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Resource setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getAccessGroup() { return AccessGroup; }
        public Resource setAccessGroup(String value) { this.AccessGroup = value; return this; }
        public String getTextField1() { return TextField1; }
        public Resource setTextField1(String value) { this.TextField1 = value; return this; }
        public String getTextField2() { return TextField2; }
        public Resource setTextField2(String value) { this.TextField2 = value; return this; }
        public String getTextField3() { return TextField3; }
        public Resource setTextField3(String value) { this.TextField3 = value; return this; }
        public String getTextField4() { return TextField4; }
        public Resource setTextField4(String value) { this.TextField4 = value; return this; }
        public String getTextField5() { return TextField5; }
        public Resource setTextField5(String value) { this.TextField5 = value; return this; }
        public String getTextField6() { return TextField6; }
        public Resource setTextField6(String value) { this.TextField6 = value; return this; }
        public String getTextField7() { return TextField7; }
        public Resource setTextField7(String value) { this.TextField7 = value; return this; }
        public String getTextField8() { return TextField8; }
        public Resource setTextField8(String value) { this.TextField8 = value; return this; }
        public String getTextField9() { return TextField9; }
        public Resource setTextField9(String value) { this.TextField9 = value; return this; }
        public String getTextField10() { return TextField10; }
        public Resource setTextField10(String value) { this.TextField10 = value; return this; }
        public String getTextField11() { return TextField11; }
        public Resource setTextField11(String value) { this.TextField11 = value; return this; }
        public String getTextField12() { return TextField12; }
        public Resource setTextField12(String value) { this.TextField12 = value; return this; }
        public String getTextField13() { return TextField13; }
        public Resource setTextField13(String value) { this.TextField13 = value; return this; }
        public String getTextField14() { return TextField14; }
        public Resource setTextField14(String value) { this.TextField14 = value; return this; }
        public String getTextField15() { return TextField15; }
        public Resource setTextField15(String value) { this.TextField15 = value; return this; }
        public String getTextField16() { return TextField16; }
        public Resource setTextField16(String value) { this.TextField16 = value; return this; }
        public String getTextField17() { return TextField17; }
        public Resource setTextField17(String value) { this.TextField17 = value; return this; }
        public String getTextField18() { return TextField18; }
        public Resource setTextField18(String value) { this.TextField18 = value; return this; }
        public String getTextField19() { return TextField19; }
        public Resource setTextField19(String value) { this.TextField19 = value; return this; }
        public String getTextField20() { return TextField20; }
        public Resource setTextField20(String value) { this.TextField20 = value; return this; }
    }

    public static interface ISchedule
    {
        public IList<Resource> Resources = null;
        public ScheduleType Type = null;
        public Boolean Active = null;
        public Boolean IsResourceSpecific = null;
    }

    public static enum ScheduleType
    {
        NotDefined,
        RecurringSchedule,
        DateSchedule;
    }

    public static interface ITimeException implements IInterval
    {
        public Integer Id = null;
        public String ReasonText = null;
        public Boolean IsBlock = null;
        public String ReasonTextPublic = null;
        public Boolean IsRecurring = null;
        public ArrayList<Integer> ResourceIds = null;
    }

    public static interface IBookedTime implements IInterval
    {
        public Integer Id = null;
        public Integer ServiceId = null;
        public Integer BookedSpots = null;
        public Integer TotalSpots = null;
        public Integer PauseAfterInMinutes = null;
        public BookingStatusEnum Status = null;
        public Integer StatusId = null;
        public BookedCustomer Customer = null;
    }

    public static enum BookingStatusEnum
    {
        Booked(1),
        Unbooked(2),
        Reserved(3),
        Canceled(4),
        AwaitingPayment(5),
        AwaitingPaymentNoTimeLimit(6),
        Payed(7),
        AwaitingPaymentRequestFromAdmin(8),
        AwaitingPaymentFromProvider(9),
        Invoiced(10);

        private final int value;
        BookingStatusEnum(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class BookedCustomer
    {
        public UUID Id = null;
        public String Firstname = null;
        public String Lastname = null;
        public String Email = null;
        public String Phone = null;
        public String FacebookUserName = null;
        public String ImageUrl = null;
        public String CorporateIdentityNumber = null;
        public String InvoiceAddress1 = null;
        public String InvoiceAddress2 = null;
        public String InvoiceCity = null;
        public String InvoicePostalCode = null;
        public String InvoiceCountryCode = null;
        
        public UUID getId() { return Id; }
        public BookedCustomer setId(UUID value) { this.Id = value; return this; }
        public String getFirstname() { return Firstname; }
        public BookedCustomer setFirstname(String value) { this.Firstname = value; return this; }
        public String getLastname() { return Lastname; }
        public BookedCustomer setLastname(String value) { this.Lastname = value; return this; }
        public String getEmail() { return Email; }
        public BookedCustomer setEmail(String value) { this.Email = value; return this; }
        public String getPhone() { return Phone; }
        public BookedCustomer setPhone(String value) { this.Phone = value; return this; }
        public String getFacebookUserName() { return FacebookUserName; }
        public BookedCustomer setFacebookUserName(String value) { this.FacebookUserName = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public BookedCustomer setImageUrl(String value) { this.ImageUrl = value; return this; }
        public String getCorporateIdentityNumber() { return CorporateIdentityNumber; }
        public BookedCustomer setCorporateIdentityNumber(String value) { this.CorporateIdentityNumber = value; return this; }
        public String getInvoiceAddress1() { return InvoiceAddress1; }
        public BookedCustomer setInvoiceAddress1(String value) { this.InvoiceAddress1 = value; return this; }
        public String getInvoiceAddress2() { return InvoiceAddress2; }
        public BookedCustomer setInvoiceAddress2(String value) { this.InvoiceAddress2 = value; return this; }
        public String getInvoiceCity() { return InvoiceCity; }
        public BookedCustomer setInvoiceCity(String value) { this.InvoiceCity = value; return this; }
        public String getInvoicePostalCode() { return InvoicePostalCode; }
        public BookedCustomer setInvoicePostalCode(String value) { this.InvoicePostalCode = value; return this; }
        public String getInvoiceCountryCode() { return InvoiceCountryCode; }
        public BookedCustomer setInvoiceCountryCode(String value) { this.InvoiceCountryCode = value; return this; }
    }

    public static class CustomFieldDataResponse
    {
        public Integer Id = null;
        public String Column = null;
        public String Name = null;
        public String Description = null;
        public String Value = null;
        /**
        * 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 String DataType = null;
        
        public Integer getId() { return Id; }
        public CustomFieldDataResponse setId(Integer value) { this.Id = value; return this; }
        public String getColumn() { return Column; }
        public CustomFieldDataResponse setColumn(String value) { this.Column = value; return this; }
        public String getName() { return Name; }
        public CustomFieldDataResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CustomFieldDataResponse setDescription(String value) { this.Description = value; return this; }
        public String getValue() { return Value; }
        public CustomFieldDataResponse setValue(String value) { this.Value = value; return this; }
        public String getDataType() { return DataType; }
        public CustomFieldDataResponse setDataType(String value) { this.DataType = value; return this; }
    }

    public static class TotalPriceInformation
    {
        public Double TotalPrice = null;
        public Double TotalVATAmount = null;
        public Double TotalRebate = null;
        public Double TotalPriceBeforeRebate = null;
        public ArrayList<AppliedRebateCodes> AppliedCodes = null;
        public String PriceSign = null;
        public String CurrencyId = null;
        public BigDecimal VAT = null;
        
        public Double getTotalPrice() { return TotalPrice; }
        public TotalPriceInformation setTotalPrice(Double value) { this.TotalPrice = value; return this; }
        public Double getTotalVATAmount() { return TotalVATAmount; }
        public TotalPriceInformation setTotalVATAmount(Double value) { this.TotalVATAmount = value; return this; }
        public Double getTotalRebate() { return TotalRebate; }
        public TotalPriceInformation setTotalRebate(Double value) { this.TotalRebate = value; return this; }
        public Double getTotalPriceBeforeRebate() { return TotalPriceBeforeRebate; }
        public TotalPriceInformation setTotalPriceBeforeRebate(Double value) { this.TotalPriceBeforeRebate = value; return this; }
        public ArrayList<AppliedRebateCodes> getAppliedCodes() { return AppliedCodes; }
        public TotalPriceInformation setAppliedCodes(ArrayList<AppliedRebateCodes> value) { this.AppliedCodes = value; return this; }
        public String getPriceSign() { return PriceSign; }
        public TotalPriceInformation setPriceSign(String value) { this.PriceSign = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public TotalPriceInformation setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public TotalPriceInformation setVat(BigDecimal value) { this.VAT = value; return this; }
    }

    public static class AppliedRebateCodes
    {
        public Integer RebateCodeId = null;
        public String RebateCodeSign = null;
        public Integer RebateCodeValue = null;
        public Double RebateAmount = null;
        public RebateCodeType RebateCodeType = null;
        
        public Integer getRebateCodeId() { return RebateCodeId; }
        public AppliedRebateCodes setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public String getRebateCodeSign() { return RebateCodeSign; }
        public AppliedRebateCodes setRebateCodeSign(String value) { this.RebateCodeSign = value; return this; }
        public Integer getRebateCodeValue() { return RebateCodeValue; }
        public AppliedRebateCodes setRebateCodeValue(Integer value) { this.RebateCodeValue = value; return this; }
        public Double getRebateAmount() { return RebateAmount; }
        public AppliedRebateCodes setRebateAmount(Double value) { this.RebateAmount = value; return this; }
        public RebateCodeType getRebateCodeType() { return RebateCodeType; }
        public AppliedRebateCodes setRebateCodeType(RebateCodeType value) { this.RebateCodeType = value; return this; }
    }

    public static class RebateCodeType extends BaseModel
    {
        @Required()
        public String Name = null;

        public String Description = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public RebateCodeType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public RebateCodeType setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeType setId(Integer value) { this.Id = value; return this; }
    }

    public static class ServicePrice extends BaseModel implements IInterval
    {
        @References(Currency.class)
        public String CurrencyId = null;

        public Currency CurrencyInfo = null;
        @Ignore()
        public Service Service = null;

        @Ignore()
        public ArrayList<PriceMapping> PriceMappings = null;

        @Ignore()
        public Boolean isTimeSpecific = null;

        @Ignore()
        public Boolean isDaysOfWeekSpecific = null;

        public ArrayList<ServicePriceDayOfWeekRelation> DayOfWeeks = null;
        @Ignore()
        public Double PriceBeforeRebate = null;

        @Ignore()
        public ArrayList<RebateCode> RebateCodesApplied = null;

        @Ignore()
        public String PriceText = null;

        @Ignore()
        public Boolean IsWeighted = null;

        @Ignore()
        public ArrayList<ServicePrice> OverlappingPrices = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public Integer ServiceId = null;

        public Double Price = null;
        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        @Required()
        public TimeSpan FromTime = null;

        @Required()
        public TimeSpan ToTime = null;

        @Required()
        public BigDecimal VAT = null;

        public String Category = null;
        public Date ModifiedDate = null;
        @Required()
        public Date From = null;

        @Required()
        public Date To = null;

        @Required()
        public Integer CalculationTypeId = null;
        
        public String getCurrencyId() { return CurrencyId; }
        public ServicePrice setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public ServicePrice setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public Service getService() { return Service; }
        public ServicePrice setService(Service value) { this.Service = value; return this; }
        public ArrayList<PriceMapping> getPriceMappings() { return PriceMappings; }
        public ServicePrice setPriceMappings(ArrayList<PriceMapping> value) { this.PriceMappings = value; return this; }
        public Boolean getIsTimeSpecific() { return isTimeSpecific; }
        public ServicePrice setIsTimeSpecific(Boolean value) { this.isTimeSpecific = value; return this; }
        public Boolean getIsDaysOfWeekSpecific() { return isDaysOfWeekSpecific; }
        public ServicePrice setIsDaysOfWeekSpecific(Boolean value) { this.isDaysOfWeekSpecific = value; return this; }
        public ArrayList<ServicePriceDayOfWeekRelation> getDayOfWeeks() { return DayOfWeeks; }
        public ServicePrice setDayOfWeeks(ArrayList<ServicePriceDayOfWeekRelation> value) { this.DayOfWeeks = value; return this; }
        public Double getPriceBeforeRebate() { return PriceBeforeRebate; }
        public ServicePrice setPriceBeforeRebate(Double value) { this.PriceBeforeRebate = value; return this; }
        public ArrayList<RebateCode> getRebateCodesApplied() { return RebateCodesApplied; }
        public ServicePrice setRebateCodesApplied(ArrayList<RebateCode> value) { this.RebateCodesApplied = value; return this; }
        public String getPriceText() { return PriceText; }
        public ServicePrice setPriceText(String value) { this.PriceText = value; return this; }
        public Boolean getIsWeighted() { return IsWeighted; }
        public ServicePrice setIsWeighted(Boolean value) { this.IsWeighted = value; return this; }
        public ArrayList<ServicePrice> getOverlappingPrices() { return OverlappingPrices; }
        public ServicePrice setOverlappingPrices(ArrayList<ServicePrice> value) { this.OverlappingPrices = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public ServicePrice setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public ServicePrice setId(Integer value) { this.Id = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public ServicePrice setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Double getPrice() { return Price; }
        public ServicePrice setPrice(Double value) { this.Price = value; return this; }
        public Date getUpdated() { return Updated; }
        public ServicePrice setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public ServicePrice setCreated(Date value) { this.Created = value; return this; }
        public TimeSpan getFromTime() { return FromTime; }
        public ServicePrice setFromTime(TimeSpan value) { this.FromTime = value; return this; }
        public TimeSpan getToTime() { return ToTime; }
        public ServicePrice setToTime(TimeSpan value) { this.ToTime = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public ServicePrice setVat(BigDecimal value) { this.VAT = value; return this; }
        public String getCategory() { return Category; }
        public ServicePrice setCategory(String value) { this.Category = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ServicePrice setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Date getFrom() { return From; }
        public ServicePrice setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public ServicePrice setTo(Date value) { this.To = value; return this; }
        public Integer getCalculationTypeId() { return CalculationTypeId; }
        public ServicePrice setCalculationTypeId(Integer value) { this.CalculationTypeId = value; return this; }
    }

    public static class Currency extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String CurrencySign = null;

        @Required()
        public Boolean Active = null;

        public Date ModifiedDate = null;
        @Required()
        public String Id = null;
        
        public String getName() { return Name; }
        public Currency setName(String value) { this.Name = value; return this; }
        public String getCurrencySign() { return CurrencySign; }
        public Currency setCurrencySign(String value) { this.CurrencySign = value; return this; }
        public Boolean isActive() { return Active; }
        public Currency setActive(Boolean value) { this.Active = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Currency setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getId() { return Id; }
        public Currency setId(String value) { this.Id = value; return this; }
    }

    public static class PriceMapping extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public UUID Id = null;

        @Required()
        public Integer PriceId = null;

        public String ReferenceType = null;
        public String ExternalReference = null;
        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public PriceMapping setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getId() { return Id; }
        public PriceMapping setId(UUID value) { this.Id = value; return this; }
        public Integer getPriceId() { return PriceId; }
        public PriceMapping setPriceId(Integer value) { this.PriceId = value; return this; }
        public String getReferenceType() { return ReferenceType; }
        public PriceMapping setReferenceType(String value) { this.ReferenceType = value; return this; }
        public String getExternalReference() { return ExternalReference; }
        public PriceMapping setExternalReference(String value) { this.ExternalReference = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public PriceMapping setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public PriceMapping setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public PriceMapping setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class ServicePriceDayOfWeekRelation extends BaseModel
    {
        @Ignore()
        public BokaMeraDayOfWeek DayOfWeek = null;

        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer ServicePriceId = null;

        @Required()
        public Integer DayOfWeekId = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public BokaMeraDayOfWeek getDayOfWeek() { return DayOfWeek; }
        public ServicePriceDayOfWeekRelation setDayOfWeek(BokaMeraDayOfWeek value) { this.DayOfWeek = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public ServicePriceDayOfWeekRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getServicePriceId() { return ServicePriceId; }
        public ServicePriceDayOfWeekRelation setServicePriceId(Integer value) { this.ServicePriceId = value; return this; }
        public Integer getDayOfWeekId() { return DayOfWeekId; }
        public ServicePriceDayOfWeekRelation setDayOfWeekId(Integer value) { this.DayOfWeekId = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ServicePriceDayOfWeekRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public ServicePriceDayOfWeekRelation setId(Integer value) { this.Id = value; return this; }
    }

    public static enum BokaMeraDayOfWeek
    {
        Monday(1),
        Tuesday(2),
        Wednesday(3),
        Thursday(4),
        Friday(5),
        Saturday(6),
        Sunday(7);

        private final int value;
        BokaMeraDayOfWeek(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class RebateCode extends BaseModel
    {
        @References(RebateCodeType.class)
        public Integer RebateCodeTypeId = null;

        public RebateCodeType RebateCodeTypeInfo = null;
        @References(RebateCodeStatus.class)
        public Integer RebateCodeStatusId = null;

        public RebateCodeType RebateCodeStatusInfo = null;
        @Ignore()
        public ArrayList<Service> Services = null;

        public ArrayList<RebateCodeDayOfWeekRelation> RebateCodeDayOfWeekRelation = null;
        public ArrayList<RebateCodeServiceRelation> RebateCodeServiceRelation = null;
        public ArrayList<RebateCodeBookingPriceRelation> RebateCodeBookingPriceRelation = null;
        public ArrayList<RebateCodeCustomerRelation> RebateCodeCustomerRelation = null;
        @Ignore()
        public ArrayList<DaysOfWeek> DaysOfWeek = null;

        @Ignore()
        public ArrayList<Customer> Customers = null;

        @Ignore()
        public RebateCodeStatus RebateCodeStatus = null;

        @Ignore()
        public RebateCodeType RebateCodeType = null;

        @Ignore()
        public Integer CurrentNumberOfUsesPerCustomer = null;

        @Ignore()
        public Boolean IsSpecificByDayOfWeek = null;

        @Ignore()
        public Boolean Active = null;

        public UUID CompanyId = null;
        @Required()
        public Date ValidFrom = null;

        @Required()
        public Date ValidTo = null;

        @Required()
        public String RebateCodeSign = null;

        @Required()
        public Integer RebateCodeValue = null;

        @Required()
        public Integer MaxNumberOfUses = null;

        @Required()
        public Integer MaxNumberOfUsesPerCustomer = null;

        @Required()
        public Integer NumberOfUsesUsed = null;

        public String PersonalNote = null;
        @Required()
        public String CreatedBy = null;

        @Required()
        public Date Created = null;

        @Required()
        public String UpdatedBy = null;

        @Required()
        public Date Updated = null;

        @Required()
        public TimeSpan FromTime = null;

        @Required()
        public TimeSpan ToTime = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public Integer getRebateCodeTypeId() { return RebateCodeTypeId; }
        public RebateCode setRebateCodeTypeId(Integer value) { this.RebateCodeTypeId = value; return this; }
        public RebateCodeType getRebateCodeTypeInfo() { return RebateCodeTypeInfo; }
        public RebateCode setRebateCodeTypeInfo(RebateCodeType value) { this.RebateCodeTypeInfo = value; return this; }
        public Integer getRebateCodeStatusId() { return RebateCodeStatusId; }
        public RebateCode setRebateCodeStatusId(Integer value) { this.RebateCodeStatusId = value; return this; }
        public RebateCodeType getRebateCodeStatusInfo() { return RebateCodeStatusInfo; }
        public RebateCode setRebateCodeStatusInfo(RebateCodeType value) { this.RebateCodeStatusInfo = value; return this; }
        public ArrayList<Service> getServices() { return Services; }
        public RebateCode setServices(ArrayList<Service> value) { this.Services = value; return this; }
        public ArrayList<RebateCodeDayOfWeekRelation> getRebateCodeDayOfWeekRelation() { return RebateCodeDayOfWeekRelation; }
        public RebateCode setRebateCodeDayOfWeekRelation(ArrayList<RebateCodeDayOfWeekRelation> value) { this.RebateCodeDayOfWeekRelation = value; return this; }
        public ArrayList<RebateCodeServiceRelation> getRebateCodeServiceRelation() { return RebateCodeServiceRelation; }
        public RebateCode setRebateCodeServiceRelation(ArrayList<RebateCodeServiceRelation> value) { this.RebateCodeServiceRelation = value; return this; }
        public ArrayList<RebateCodeBookingPriceRelation> getRebateCodeBookingPriceRelation() { return RebateCodeBookingPriceRelation; }
        public RebateCode setRebateCodeBookingPriceRelation(ArrayList<RebateCodeBookingPriceRelation> value) { this.RebateCodeBookingPriceRelation = value; return this; }
        public ArrayList<RebateCodeCustomerRelation> getRebateCodeCustomerRelation() { return RebateCodeCustomerRelation; }
        public RebateCode setRebateCodeCustomerRelation(ArrayList<RebateCodeCustomerRelation> value) { this.RebateCodeCustomerRelation = value; return this; }
        public ArrayList<DaysOfWeek> getDaysOfWeek() { return DaysOfWeek; }
        public RebateCode setDaysOfWeek(ArrayList<DaysOfWeek> value) { this.DaysOfWeek = value; return this; }
        public ArrayList<Customer> getCustomers() { return Customers; }
        public RebateCode setCustomers(ArrayList<Customer> value) { this.Customers = value; return this; }
        public RebateCodeStatus getRebateCodeStatus() { return RebateCodeStatus; }
        public RebateCode setRebateCodeStatus(RebateCodeStatus value) { this.RebateCodeStatus = value; return this; }
        public RebateCodeType getRebateCodeType() { return RebateCodeType; }
        public RebateCode setRebateCodeType(RebateCodeType value) { this.RebateCodeType = value; return this; }
        public Integer getCurrentNumberOfUsesPerCustomer() { return CurrentNumberOfUsesPerCustomer; }
        public RebateCode setCurrentNumberOfUsesPerCustomer(Integer value) { this.CurrentNumberOfUsesPerCustomer = value; return this; }
        public Boolean getIsSpecificByDayOfWeek() { return IsSpecificByDayOfWeek; }
        public RebateCode setIsSpecificByDayOfWeek(Boolean value) { this.IsSpecificByDayOfWeek = value; return this; }
        public Boolean isActive() { return Active; }
        public RebateCode setActive(Boolean value) { this.Active = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RebateCode setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Date getValidFrom() { return ValidFrom; }
        public RebateCode setValidFrom(Date value) { this.ValidFrom = value; return this; }
        public Date getValidTo() { return ValidTo; }
        public RebateCode setValidTo(Date value) { this.ValidTo = value; return this; }
        public String getRebateCodeSign() { return RebateCodeSign; }
        public RebateCode setRebateCodeSign(String value) { this.RebateCodeSign = value; return this; }
        public Integer getRebateCodeValue() { return RebateCodeValue; }
        public RebateCode setRebateCodeValue(Integer value) { this.RebateCodeValue = value; return this; }
        public Integer getMaxNumberOfUses() { return MaxNumberOfUses; }
        public RebateCode setMaxNumberOfUses(Integer value) { this.MaxNumberOfUses = value; return this; }
        public Integer getMaxNumberOfUsesPerCustomer() { return MaxNumberOfUsesPerCustomer; }
        public RebateCode setMaxNumberOfUsesPerCustomer(Integer value) { this.MaxNumberOfUsesPerCustomer = value; return this; }
        public Integer getNumberOfUsesUsed() { return NumberOfUsesUsed; }
        public RebateCode setNumberOfUsesUsed(Integer value) { this.NumberOfUsesUsed = value; return this; }
        public String getPersonalNote() { return PersonalNote; }
        public RebateCode setPersonalNote(String value) { this.PersonalNote = value; return this; }
        public String getCreatedBy() { return CreatedBy; }
        public RebateCode setCreatedBy(String value) { this.CreatedBy = value; return this; }
        public Date getCreated() { return Created; }
        public RebateCode setCreated(Date value) { this.Created = value; return this; }
        public String getUpdatedBy() { return UpdatedBy; }
        public RebateCode setUpdatedBy(String value) { this.UpdatedBy = value; return this; }
        public Date getUpdated() { return Updated; }
        public RebateCode setUpdated(Date value) { this.Updated = value; return this; }
        public TimeSpan getFromTime() { return FromTime; }
        public RebateCode setFromTime(TimeSpan value) { this.FromTime = value; return this; }
        public TimeSpan getToTime() { return ToTime; }
        public RebateCode setToTime(TimeSpan value) { this.ToTime = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCode setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public RebateCode setId(Integer value) { this.Id = value; return this; }
    }

    public static class RebateCodeDayOfWeekRelation extends BaseModel
    {
        @Ignore()
        public BokaMeraDayOfWeek DayOfWeek = null;

        @Required()
        public Integer DayOfWeekId = null;

        @Required()
        public Integer RebateCodeId = null;

        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public BokaMeraDayOfWeek getDayOfWeek() { return DayOfWeek; }
        public RebateCodeDayOfWeekRelation setDayOfWeek(BokaMeraDayOfWeek value) { this.DayOfWeek = value; return this; }
        public Integer getDayOfWeekId() { return DayOfWeekId; }
        public RebateCodeDayOfWeekRelation setDayOfWeekId(Integer value) { this.DayOfWeekId = value; return this; }
        public Integer getRebateCodeId() { return RebateCodeId; }
        public RebateCodeDayOfWeekRelation setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RebateCodeDayOfWeekRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeDayOfWeekRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeDayOfWeekRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class RebateCodeServiceRelation extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer ServiceId = null;

        @Required()
        public Integer RebateCodeId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RebateCodeServiceRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public RebateCodeServiceRelation setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Integer getRebateCodeId() { return RebateCodeId; }
        public RebateCodeServiceRelation setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeServiceRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeServiceRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class RebateCodeBookingPriceRelation extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer PriceId = null;

        @Required()
        public Integer RebateCodeId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RebateCodeBookingPriceRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getPriceId() { return PriceId; }
        public RebateCodeBookingPriceRelation setPriceId(Integer value) { this.PriceId = value; return this; }
        public Integer getRebateCodeId() { return RebateCodeId; }
        public RebateCodeBookingPriceRelation setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeBookingPriceRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeBookingPriceRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class RebateCodeCustomerRelation extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public UUID CustomerId = null;

        @Required()
        public Integer RebateCodeId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RebateCodeCustomerRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public RebateCodeCustomerRelation setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public Integer getRebateCodeId() { return RebateCodeId; }
        public RebateCodeCustomerRelation setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeCustomerRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeCustomerRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class DaysOfWeek extends BaseModel
    {
        @Required()
        public String DayOfWeek = null;

        @Required()
        public String DayOfWeekTranslation = null;

        public Boolean DayOfWeekActive = null;
        public Short DayOfWeekSortOrder = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getDayOfWeek() { return DayOfWeek; }
        public DaysOfWeek setDayOfWeek(String value) { this.DayOfWeek = value; return this; }
        public String getDayOfWeekTranslation() { return DayOfWeekTranslation; }
        public DaysOfWeek setDayOfWeekTranslation(String value) { this.DayOfWeekTranslation = value; return this; }
        public Boolean isDayOfWeekActive() { return DayOfWeekActive; }
        public DaysOfWeek setDayOfWeekActive(Boolean value) { this.DayOfWeekActive = value; return this; }
        public Short getDayOfWeekSortOrder() { return DayOfWeekSortOrder; }
        public DaysOfWeek setDayOfWeekSortOrder(Short value) { this.DayOfWeekSortOrder = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public DaysOfWeek setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public DaysOfWeek setId(Integer value) { this.Id = value; return this; }
    }

    public static class RebateCodeStatus extends BaseModel
    {
        @Required()
        public String Name = null;

        public String Description = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public RebateCodeStatus setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public RebateCodeStatus setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RebateCodeStatus setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeStatus setId(Integer value) { this.Id = value; return this; }
    }

    public static class BookingStatusOptions
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        
        public Integer getId() { return Id; }
        public BookingStatusOptions setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookingStatusOptions setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingStatusOptions setDescription(String value) { this.Description = value; return this; }
    }

    public static class BookingSettings extends BaseModel
    {
        @References(FreeSpotTexts.class)
        public Integer FreeSpotTextsId = null;

        @Ignore()
        public Boolean SendEmailConfirmation = null;

        @Ignore()
        public ArrayList<ScheduleView> ScheduleViewOptions = null;

        @Ignore()
        public ArrayList<WeekNumberSetting> WeekNumberSettingOptions = null;

        @Ignore()
        public ArrayList<BookingTemplate> BookingTemplateOptions = null;

        @Ignore()
        public ArrayList<CalendarType> CalendarTypeOptions = null;

        @Ignore()
        public ArrayList<FreeSpotTexts> FreeSpotTextOptions = null;

        @Ignore()
        public ArrayList<BookingStatusOptions> BookingStatusOptions = null;

        public FreeSpotTexts FreeSpotTextsInfo = null;
        @Ignore()
        public String FreeSpotsTextSingular = null;

        @Ignore()
        public String FreeSpotsTextPlural = null;

        @Required()
        public Integer BookingStatusId = null;

        @Required()
        public Integer ScheduleViewId = null;

        @Required()
        public Integer BookingTemplateId = null;

        @Required()
        public Integer CalendarTypeId = null;

        @Required()
        public Boolean AllowBookingOnUnbookedTimes = null;

        @Required()
        public Boolean SendEmailReminder = null;

        @Required()
        public Boolean SendSmsReminder = null;

        @Required()
        public Boolean SendSmsConfirmation = null;

        @Required()
        public Integer EmailReminderTime = null;

        @Required()
        public Integer SmsReminderTime = null;

        @Required()
        public Integer MaxActiveBookings = null;

        @Required()
        public Boolean SendNotifications = null;

        public String SendNotificationsEmail = null;
        @Required()
        public Boolean EnableMobileApp = null;

        public TimeSpan ScheduleStartTime = null;
        public TimeSpan ScheduleEndTime = null;
        public String ReceiptTemplate = null;
        @Required()
        public Integer ScheduleTimeSlotMinutes = null;

        @Required()
        public Boolean ShowFreeTimesLeft = null;

        @Required()
        public Boolean EnableICalGroupBookings = null;

        public String AgreementTemplate = null;
        @Required()
        public Boolean ScheduleShowTimeExeptions = null;

        @Required()
        public Boolean EnableBookingsOnSameTime = null;

        @Required()
        public Integer ShowWeekNumberSettingId = null;

        @Required()
        public Boolean EnableShowBookedTimes = null;

        @Required()
        public Boolean EnableSendFollowUpMessage = null;

        @Required()
        public Integer FollowUpMessageTime = null;

        public String MessageText = null;
        @Required()
        public Boolean ScheduleGroupResources = null;

        @Required()
        public Integer BookSpotUserResponseMinutes = null;

        @Required()
        public Boolean IsBookSpotDirectly = null;

        @Required()
        public Integer BookSpotDirectlyTimeLeftMinutes = null;

        @Required()
        public Boolean SendEmailNotificationQueue = null;

        @Required()
        public Boolean SendSMSNotificationQueue = null;

        @Required()
        public Boolean SchedulerDisableHorizontalScrolling = null;

        @Required()
        public Boolean BookOnlyOnExistingCustomers = null;

        @Required()
        public Boolean AutoGenerateUniquePinCode = null;

        @Required()
        public Boolean WeightedPrices = null;

        public Date ModifiedDate = null;
        @Required()
        public Boolean AutoCreateUserProfile = null;

        public Boolean ShowMultipleResourcesAsOne = null;
        public Boolean ShowMultiDayAsTime = null;
        @Required()
        public UUID Id = null;
        
        public Integer getFreeSpotTextsId() { return FreeSpotTextsId; }
        public BookingSettings setFreeSpotTextsId(Integer value) { this.FreeSpotTextsId = value; return this; }
        public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; }
        public BookingSettings setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; }
        public ArrayList<ScheduleView> getScheduleViewOptions() { return ScheduleViewOptions; }
        public BookingSettings setScheduleViewOptions(ArrayList<ScheduleView> value) { this.ScheduleViewOptions = value; return this; }
        public ArrayList<WeekNumberSetting> getWeekNumberSettingOptions() { return WeekNumberSettingOptions; }
        public BookingSettings setWeekNumberSettingOptions(ArrayList<WeekNumberSetting> value) { this.WeekNumberSettingOptions = value; return this; }
        public ArrayList<BookingTemplate> getBookingTemplateOptions() { return BookingTemplateOptions; }
        public BookingSettings setBookingTemplateOptions(ArrayList<BookingTemplate> value) { this.BookingTemplateOptions = value; return this; }
        public ArrayList<CalendarType> getCalendarTypeOptions() { return CalendarTypeOptions; }
        public BookingSettings setCalendarTypeOptions(ArrayList<CalendarType> value) { this.CalendarTypeOptions = value; return this; }
        public ArrayList<FreeSpotTexts> getFreeSpotTextOptions() { return FreeSpotTextOptions; }
        public BookingSettings setFreeSpotTextOptions(ArrayList<FreeSpotTexts> value) { this.FreeSpotTextOptions = value; return this; }
        public ArrayList<BookingStatusOptions> getBookingStatusOptions() { return BookingStatusOptions; }
        public BookingSettings setBookingStatusOptions(ArrayList<BookingStatusOptions> value) { this.BookingStatusOptions = value; return this; }
        public FreeSpotTexts getFreeSpotTextsInfo() { return FreeSpotTextsInfo; }
        public BookingSettings setFreeSpotTextsInfo(FreeSpotTexts value) { this.FreeSpotTextsInfo = value; return this; }
        public String getFreeSpotsTextSingular() { return FreeSpotsTextSingular; }
        public BookingSettings setFreeSpotsTextSingular(String value) { this.FreeSpotsTextSingular = value; return this; }
        public String getFreeSpotsTextPlural() { return FreeSpotsTextPlural; }
        public BookingSettings setFreeSpotsTextPlural(String value) { this.FreeSpotsTextPlural = value; return this; }
        public Integer getBookingStatusId() { return BookingStatusId; }
        public BookingSettings setBookingStatusId(Integer value) { this.BookingStatusId = value; return this; }
        public Integer getScheduleViewId() { return ScheduleViewId; }
        public BookingSettings setScheduleViewId(Integer value) { this.ScheduleViewId = value; return this; }
        public Integer getBookingTemplateId() { return BookingTemplateId; }
        public BookingSettings setBookingTemplateId(Integer value) { this.BookingTemplateId = value; return this; }
        public Integer getCalendarTypeId() { return CalendarTypeId; }
        public BookingSettings setCalendarTypeId(Integer value) { this.CalendarTypeId = value; return this; }
        public Boolean isAllowBookingOnUnbookedTimes() { return AllowBookingOnUnbookedTimes; }
        public BookingSettings setAllowBookingOnUnbookedTimes(Boolean value) { this.AllowBookingOnUnbookedTimes = value; return this; }
        public Boolean isSendEmailReminder() { return SendEmailReminder; }
        public BookingSettings setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; }
        public Boolean isSendSmsReminder() { return SendSmsReminder; }
        public BookingSettings setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; }
        public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; }
        public BookingSettings setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; }
        public Integer getEmailReminderTime() { return EmailReminderTime; }
        public BookingSettings setEmailReminderTime(Integer value) { this.EmailReminderTime = value; return this; }
        public Integer getSmsReminderTime() { return SmsReminderTime; }
        public BookingSettings setSmsReminderTime(Integer value) { this.SmsReminderTime = value; return this; }
        public Integer getMaxActiveBookings() { return MaxActiveBookings; }
        public BookingSettings setMaxActiveBookings(Integer value) { this.MaxActiveBookings = value; return this; }
        public Boolean isSendNotifications() { return SendNotifications; }
        public BookingSettings setSendNotifications(Boolean value) { this.SendNotifications = value; return this; }
        public String getSendNotificationsEmail() { return SendNotificationsEmail; }
        public BookingSettings setSendNotificationsEmail(String value) { this.SendNotificationsEmail = value; return this; }
        public Boolean isEnableMobileApp() { return EnableMobileApp; }
        public BookingSettings setEnableMobileApp(Boolean value) { this.EnableMobileApp = value; return this; }
        public TimeSpan getScheduleStartTime() { return ScheduleStartTime; }
        public BookingSettings setScheduleStartTime(TimeSpan value) { this.ScheduleStartTime = value; return this; }
        public TimeSpan getScheduleEndTime() { return ScheduleEndTime; }
        public BookingSettings setScheduleEndTime(TimeSpan value) { this.ScheduleEndTime = value; return this; }
        public String getReceiptTemplate() { return ReceiptTemplate; }
        public BookingSettings setReceiptTemplate(String value) { this.ReceiptTemplate = value; return this; }
        public Integer getScheduleTimeSlotMinutes() { return ScheduleTimeSlotMinutes; }
        public BookingSettings setScheduleTimeSlotMinutes(Integer value) { this.ScheduleTimeSlotMinutes = value; return this; }
        public Boolean isShowFreeTimesLeft() { return ShowFreeTimesLeft; }
        public BookingSettings setShowFreeTimesLeft(Boolean value) { this.ShowFreeTimesLeft = value; return this; }
        public Boolean isEnableICalGroupBookings() { return EnableICalGroupBookings; }
        public BookingSettings setEnableICalGroupBookings(Boolean value) { this.EnableICalGroupBookings = value; return this; }
        public String getAgreementTemplate() { return AgreementTemplate; }
        public BookingSettings setAgreementTemplate(String value) { this.AgreementTemplate = value; return this; }
        public Boolean isScheduleShowTimeExeptions() { return ScheduleShowTimeExeptions; }
        public BookingSettings setScheduleShowTimeExeptions(Boolean value) { this.ScheduleShowTimeExeptions = value; return this; }
        public Boolean isEnableBookingsOnSameTime() { return EnableBookingsOnSameTime; }
        public BookingSettings setEnableBookingsOnSameTime(Boolean value) { this.EnableBookingsOnSameTime = value; return this; }
        public Integer getShowWeekNumberSettingId() { return ShowWeekNumberSettingId; }
        public BookingSettings setShowWeekNumberSettingId(Integer value) { this.ShowWeekNumberSettingId = value; return this; }
        public Boolean isEnableShowBookedTimes() { return EnableShowBookedTimes; }
        public BookingSettings setEnableShowBookedTimes(Boolean value) { this.EnableShowBookedTimes = value; return this; }
        public Boolean isEnableSendFollowUpMessage() { return EnableSendFollowUpMessage; }
        public BookingSettings setEnableSendFollowUpMessage(Boolean value) { this.EnableSendFollowUpMessage = value; return this; }
        public Integer getFollowUpMessageTime() { return FollowUpMessageTime; }
        public BookingSettings setFollowUpMessageTime(Integer value) { this.FollowUpMessageTime = value; return this; }
        public String getMessageText() { return MessageText; }
        public BookingSettings setMessageText(String value) { this.MessageText = value; return this; }
        public Boolean isScheduleGroupResources() { return ScheduleGroupResources; }
        public BookingSettings setScheduleGroupResources(Boolean value) { this.ScheduleGroupResources = value; return this; }
        public Integer getBookSpotUserResponseMinutes() { return BookSpotUserResponseMinutes; }
        public BookingSettings setBookSpotUserResponseMinutes(Integer value) { this.BookSpotUserResponseMinutes = value; return this; }
        public Boolean getIsBookSpotDirectly() { return IsBookSpotDirectly; }
        public BookingSettings setIsBookSpotDirectly(Boolean value) { this.IsBookSpotDirectly = value; return this; }
        public Integer getBookSpotDirectlyTimeLeftMinutes() { return BookSpotDirectlyTimeLeftMinutes; }
        public BookingSettings setBookSpotDirectlyTimeLeftMinutes(Integer value) { this.BookSpotDirectlyTimeLeftMinutes = value; return this; }
        public Boolean isSendEmailNotificationQueue() { return SendEmailNotificationQueue; }
        public BookingSettings setSendEmailNotificationQueue(Boolean value) { this.SendEmailNotificationQueue = value; return this; }
        public Boolean isSendSMSNotificationQueue() { return SendSMSNotificationQueue; }
        public BookingSettings setSendSMSNotificationQueue(Boolean value) { this.SendSMSNotificationQueue = value; return this; }
        public Boolean isSchedulerDisableHorizontalScrolling() { return SchedulerDisableHorizontalScrolling; }
        public BookingSettings setSchedulerDisableHorizontalScrolling(Boolean value) { this.SchedulerDisableHorizontalScrolling = value; return this; }
        public Boolean isBookOnlyOnExistingCustomers() { return BookOnlyOnExistingCustomers; }
        public BookingSettings setBookOnlyOnExistingCustomers(Boolean value) { this.BookOnlyOnExistingCustomers = value; return this; }
        public Boolean isAutoGenerateUniquePinCode() { return AutoGenerateUniquePinCode; }
        public BookingSettings setAutoGenerateUniquePinCode(Boolean value) { this.AutoGenerateUniquePinCode = value; return this; }
        public Boolean isWeightedPrices() { return WeightedPrices; }
        public BookingSettings setWeightedPrices(Boolean value) { this.WeightedPrices = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingSettings setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Boolean isAutoCreateUserProfile() { return AutoCreateUserProfile; }
        public BookingSettings setAutoCreateUserProfile(Boolean value) { this.AutoCreateUserProfile = value; return this; }
        public Boolean isShowMultipleResourcesAsOne() { return ShowMultipleResourcesAsOne; }
        public BookingSettings setShowMultipleResourcesAsOne(Boolean value) { this.ShowMultipleResourcesAsOne = value; return this; }
        public Boolean isShowMultiDayAsTime() { return ShowMultiDayAsTime; }
        public BookingSettings setShowMultiDayAsTime(Boolean value) { this.ShowMultiDayAsTime = value; return this; }
        public UUID getId() { return Id; }
        public BookingSettings setId(UUID value) { this.Id = value; return this; }
    }

    public static class ScheduleView extends BaseModel
    {
        @Required()
        public String Name = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public ScheduleView setName(String value) { this.Name = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ScheduleView setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public ScheduleView setId(Integer value) { this.Id = value; return this; }
    }

    public static class WeekNumberSetting extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public WeekNumberSetting setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public WeekNumberSetting setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public WeekNumberSetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public WeekNumberSetting setId(Integer value) { this.Id = value; return this; }
    }

    public static class BookingTemplate extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String UsedByApplication = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public BookingTemplate setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingTemplate setDescription(String value) { this.Description = value; return this; }
        public String getUsedByApplication() { return UsedByApplication; }
        public BookingTemplate setUsedByApplication(String value) { this.UsedByApplication = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingTemplate setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public BookingTemplate setId(Integer value) { this.Id = value; return this; }
    }

    public static class CalendarType extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public Boolean Active = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public CalendarType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CalendarType setDescription(String value) { this.Description = value; return this; }
        public Boolean isActive() { return Active; }
        public CalendarType setActive(Boolean value) { this.Active = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CalendarType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CalendarType setId(Integer value) { this.Id = value; return this; }
    }

    public static class FreeSpotTexts extends BaseModel
    {
        @Required()
        public String TextSingular = null;

        @Required()
        public String TextPlural = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getTextSingular() { return TextSingular; }
        public FreeSpotTexts setTextSingular(String value) { this.TextSingular = value; return this; }
        public String getTextPlural() { return TextPlural; }
        public FreeSpotTexts setTextPlural(String value) { this.TextPlural = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public FreeSpotTexts setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public FreeSpotTexts setId(Integer value) { this.Id = value; return this; }
    }

    public static class PaymentSetting extends BaseModel
    {
        public AdminPaymentOptions AdminPaymentOption = null;
        @Ignore()
        public ArrayList<AdminPaymentOptions> AdminPaymentOptions = null;

        @Ignore()
        public ArrayList<PaymentProviders> PaymentProviderOptions = null;

        @Required()
        public Boolean Enabled = null;

        @Required()
        public Integer InvoiceFee = null;

        @Required()
        public Boolean AllowCreditCardPayment = null;

        @Required()
        public Boolean AllowInvoicePayment = null;

        @Required()
        public Boolean AllowBankPayment = null;

        @Required()
        public Boolean GuaranteeOffered = null;

        @Required()
        public Boolean RefundOnCancelBooking = null;

        public Integer DefaultPaymentOptionId = null;
        @Required()
        public Integer PaymentProviderId = null;

        @Required()
        public Boolean SendPaymentRequestDirectly = null;

        public Date ModifiedDate = null;
        @Required()
        public UUID Id = null;
        
        public AdminPaymentOptions getAdminPaymentOption() { return AdminPaymentOption; }
        public PaymentSetting setAdminPaymentOption(AdminPaymentOptions value) { this.AdminPaymentOption = value; return this; }
        public ArrayList<AdminPaymentOptions> getAdminPaymentOptions() { return AdminPaymentOptions; }
        public PaymentSetting setAdminPaymentOptions(ArrayList<AdminPaymentOptions> value) { this.AdminPaymentOptions = value; return this; }
        public ArrayList<PaymentProviders> getPaymentProviderOptions() { return PaymentProviderOptions; }
        public PaymentSetting setPaymentProviderOptions(ArrayList<PaymentProviders> value) { this.PaymentProviderOptions = value; return this; }
        public Boolean isEnabled() { return Enabled; }
        public PaymentSetting setEnabled(Boolean value) { this.Enabled = value; return this; }
        public Integer getInvoiceFee() { return InvoiceFee; }
        public PaymentSetting setInvoiceFee(Integer value) { this.InvoiceFee = value; return this; }
        public Boolean isAllowCreditCardPayment() { return AllowCreditCardPayment; }
        public PaymentSetting setAllowCreditCardPayment(Boolean value) { this.AllowCreditCardPayment = value; return this; }
        public Boolean isAllowInvoicePayment() { return AllowInvoicePayment; }
        public PaymentSetting setAllowInvoicePayment(Boolean value) { this.AllowInvoicePayment = value; return this; }
        public Boolean isAllowBankPayment() { return AllowBankPayment; }
        public PaymentSetting setAllowBankPayment(Boolean value) { this.AllowBankPayment = value; return this; }
        public Boolean isGuaranteeOffered() { return GuaranteeOffered; }
        public PaymentSetting setGuaranteeOffered(Boolean value) { this.GuaranteeOffered = value; return this; }
        public Boolean isRefundOnCancelBooking() { return RefundOnCancelBooking; }
        public PaymentSetting setRefundOnCancelBooking(Boolean value) { this.RefundOnCancelBooking = value; return this; }
        public Integer getDefaultPaymentOptionId() { return DefaultPaymentOptionId; }
        public PaymentSetting setDefaultPaymentOptionId(Integer value) { this.DefaultPaymentOptionId = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public PaymentSetting setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
        public Boolean isSendPaymentRequestDirectly() { return SendPaymentRequestDirectly; }
        public PaymentSetting setSendPaymentRequestDirectly(Boolean value) { this.SendPaymentRequestDirectly = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public PaymentSetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public UUID getId() { return Id; }
        public PaymentSetting setId(UUID value) { this.Id = value; return this; }
    }

    public static class AdminPaymentOptions extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public AdminPaymentOptions setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public AdminPaymentOptions setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public AdminPaymentOptions setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public AdminPaymentOptions setId(Integer value) { this.Id = value; return this; }
    }

    public static class PaymentProviders extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Category = null;

        public String Url = null;
        @Required()
        public Boolean Active = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public PaymentProviders setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public PaymentProviders setDescription(String value) { this.Description = value; return this; }
        public String getCategory() { return Category; }
        public PaymentProviders setCategory(String value) { this.Category = value; return this; }
        public String getUrl() { return Url; }
        public PaymentProviders setUrl(String value) { this.Url = value; return this; }
        public Boolean isActive() { return Active; }
        public PaymentProviders setActive(Boolean value) { this.Active = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public PaymentProviders setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public PaymentProviders setId(Integer value) { this.Id = value; return this; }
    }

    public static class AverageRatingScore
    {
        public Double AverageScore = null;
        public Integer Score1Count = null;
        public Integer Score2Count = null;
        public Integer Score3Count = null;
        public Integer Score4Count = null;
        public Integer Score5Count = null;
        public Integer Count = null;
        
        public Double getAverageScore() { return AverageScore; }
        public AverageRatingScore setAverageScore(Double value) { this.AverageScore = value; return this; }
        public Integer getScore1Count() { return Score1Count; }
        public AverageRatingScore setScore1Count(Integer value) { this.Score1Count = value; return this; }
        public Integer getScore2Count() { return Score2Count; }
        public AverageRatingScore setScore2Count(Integer value) { this.Score2Count = value; return this; }
        public Integer getScore3Count() { return Score3Count; }
        public AverageRatingScore setScore3Count(Integer value) { this.Score3Count = value; return this; }
        public Integer getScore4Count() { return Score4Count; }
        public AverageRatingScore setScore4Count(Integer value) { this.Score4Count = value; return this; }
        public Integer getScore5Count() { return Score5Count; }
        public AverageRatingScore setScore5Count(Integer value) { this.Score5Count = value; return this; }
        public Integer getCount() { return Count; }
        public AverageRatingScore setCount(Integer value) { this.Count = value; return this; }
    }

    public static class Rating extends BaseModel
    {
        public UUID ReviewId = null;
        public Review Review = null;
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer BookingId = null;

        @Required()
        public Integer RatingScore = null;

        @Required()
        public Integer Status = null;

        @Required()
        public Date Created = null;

        @Required()
        public Date Updated = null;

        public Date ModifiedDate = null;
        
        public UUID getReviewId() { return ReviewId; }
        public Rating setReviewId(UUID value) { this.ReviewId = value; return this; }
        public Review getReview() { return Review; }
        public Rating setReview(Review value) { this.Review = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Rating setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public Rating setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getRatingScore() { return RatingScore; }
        public Rating setRatingScore(Integer value) { this.RatingScore = value; return this; }
        public Integer getStatus() { return Status; }
        public Rating setStatus(Integer value) { this.Status = value; return this; }
        public Date getCreated() { return Created; }
        public Rating setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public Rating setUpdated(Date value) { this.Updated = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Rating setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class Review extends BaseModel
    {
        public UUID ReviewId = null;
        @Required()
        public UUID CompanyId = null;

        @Required()
        public String Title = null;

        @Required()
        public String Description = null;

        @Required()
        public String Author = null;

        @Required()
        public Integer Status = null;

        @Required()
        public Date Created = null;

        @Required()
        public Date Updated = null;

        public Date ModifiedDate = null;
        public String ReviewAnswer = null;
        
        public UUID getReviewId() { return ReviewId; }
        public Review setReviewId(UUID value) { this.ReviewId = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Review setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public String getTitle() { return Title; }
        public Review setTitle(String value) { this.Title = value; return this; }
        public String getDescription() { return Description; }
        public Review setDescription(String value) { this.Description = value; return this; }
        public String getAuthor() { return Author; }
        public Review setAuthor(String value) { this.Author = value; return this; }
        public Integer getStatus() { return Status; }
        public Review setStatus(Integer value) { this.Status = value; return this; }
        public Date getCreated() { return Created; }
        public Review setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public Review setUpdated(Date value) { this.Updated = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Review setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getReviewAnswer() { return ReviewAnswer; }
        public Review setReviewAnswer(String value) { this.ReviewAnswer = value; return this; }
    }

    public static class CustomFieldServiceRelation extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public Integer CustomFieldConfigId = null;

        @Required()
        public Integer ServiceId = null;

        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CustomFieldServiceRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public CustomFieldServiceRelation setId(Integer value) { this.Id = value; return this; }
        public Integer getCustomFieldConfigId() { return CustomFieldConfigId; }
        public CustomFieldServiceRelation setCustomFieldConfigId(Integer value) { this.CustomFieldConfigId = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public CustomFieldServiceRelation setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CustomFieldServiceRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class CustomerComment extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public UUID CustomerId = null;

        @Required()
        public String Comments = null;

        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public String ImageUrl = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CustomerComment setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public CustomerComment setId(Integer value) { this.Id = value; return this; }
        public UUID getCustomerId() { return CustomerId; }
        public CustomerComment setCustomerId(UUID value) { this.CustomerId = value; return this; }
        public String getComments() { return Comments; }
        public CustomerComment setComments(String value) { this.Comments = value; return this; }
        public Date getUpdated() { return Updated; }
        public CustomerComment setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public CustomerComment setCreated(Date value) { this.Created = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public CustomerComment setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CustomerComment setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class CalendarExport extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer BookingId = null;

        @Required()
        public Integer ExceptionId = null;

        public Boolean CalendarSync = null;
        public String CalendarId = null;
        public Boolean IsExceptionDeleted = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CalendarExport setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public CalendarExport setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getExceptionId() { return ExceptionId; }
        public CalendarExport setExceptionId(Integer value) { this.ExceptionId = value; return this; }
        public Boolean isCalendarSync() { return CalendarSync; }
        public CalendarExport setCalendarSync(Boolean value) { this.CalendarSync = value; return this; }
        public String getCalendarId() { return CalendarId; }
        public CalendarExport setCalendarId(String value) { this.CalendarId = value; return this; }
        public Boolean getIsExceptionDeleted() { return IsExceptionDeleted; }
        public CalendarExport setIsExceptionDeleted(Boolean value) { this.IsExceptionDeleted = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CalendarExport setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CalendarExport setId(Integer value) { this.Id = value; return this; }
    }

    public static class BookingLog extends BaseModel
    {
        @References(BookingLogEventType.class)
        public Integer EventTypeId = null;

        public BookingLogEventType EventType = null;
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer BookingId = null;

        public Integer Id = null;
        public String Comments = null;
        public String UserId = null;
        @Required()
        public Date Created = null;

        public Date ModifiedDate = null;
        
        public Integer getEventTypeId() { return EventTypeId; }
        public BookingLog setEventTypeId(Integer value) { this.EventTypeId = value; return this; }
        public BookingLogEventType getEventType() { return EventType; }
        public BookingLog setEventType(BookingLogEventType value) { this.EventType = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingLog setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingLog setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getId() { return Id; }
        public BookingLog setId(Integer value) { this.Id = value; return this; }
        public String getComments() { return Comments; }
        public BookingLog setComments(String value) { this.Comments = value; return this; }
        public String getUserId() { return UserId; }
        public BookingLog setUserId(String value) { this.UserId = value; return this; }
        public Date getCreated() { return Created; }
        public BookingLog setCreated(Date value) { this.Created = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingLog setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class BookingLogEventType extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public BookingLogEventType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingLogEventType setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingLogEventType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public BookingLogEventType setId(Integer value) { this.Id = value; return this; }
    }

    public static class PaymentLog extends BaseModel
    {
        @References(Currency.class)
        public String CurrencyId = null;

        public Currency CurrencyInfo = null;
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public Integer BookingId = null;

        public String PaymentReferenceId = null;
        public Integer PaymentProviderId = null;
        public String OrderItemReferenceId = null;
        public Double Amount = null;
        public BigDecimal VAT = null;
        public Double AmountCredited = null;
        public String Comments = null;
        @Required()
        public Date Created = null;

        @Required()
        public Date Updated = null;

        public Date ModifiedDate = null;
        
        public String getCurrencyId() { return CurrencyId; }
        public PaymentLog setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public PaymentLog setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public PaymentLog setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public PaymentLog setId(Integer value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public PaymentLog setBookingId(Integer value) { this.BookingId = value; return this; }
        public String getPaymentReferenceId() { return PaymentReferenceId; }
        public PaymentLog setPaymentReferenceId(String value) { this.PaymentReferenceId = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public PaymentLog setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
        public String getOrderItemReferenceId() { return OrderItemReferenceId; }
        public PaymentLog setOrderItemReferenceId(String value) { this.OrderItemReferenceId = value; return this; }
        public Double getAmount() { return Amount; }
        public PaymentLog setAmount(Double value) { this.Amount = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public PaymentLog setVat(BigDecimal value) { this.VAT = value; return this; }
        public Double getAmountCredited() { return AmountCredited; }
        public PaymentLog setAmountCredited(Double value) { this.AmountCredited = value; return this; }
        public String getComments() { return Comments; }
        public PaymentLog setComments(String value) { this.Comments = value; return this; }
        public Date getCreated() { return Created; }
        public PaymentLog setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public PaymentLog setUpdated(Date value) { this.Updated = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public PaymentLog setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class PaymentDetails extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public QvicklyCheckoutResponse QvicklyCheckoutSerialized = null;

        @Ignore()
        public Payson2CheckoutResponse Payson2CheckoutSerialized = null;

        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer BookingId = null;

        @Required()
        public String ExternalResponseData = null;

        @Required()
        public String ExternalResponseReference = null;

        @Required()
        public Integer PaymentProviderId = null;

        @Required()
        public Boolean IsPayment = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public Date UpdatedDate = null;

        public Date ModifiedDate = null;
        
        public QvicklyCheckoutResponse getQvicklyCheckoutSerialized() { return QvicklyCheckoutSerialized; }
        public PaymentDetails setQvicklyCheckoutSerialized(QvicklyCheckoutResponse value) { this.QvicklyCheckoutSerialized = value; return this; }
        public Payson2CheckoutResponse getPayson2CheckoutSerialized() { return Payson2CheckoutSerialized; }
        public PaymentDetails setPayson2CheckoutSerialized(Payson2CheckoutResponse value) { this.Payson2CheckoutSerialized = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public PaymentDetails setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public PaymentDetails setBookingId(Integer value) { this.BookingId = value; return this; }
        public String getExternalResponseData() { return ExternalResponseData; }
        public PaymentDetails setExternalResponseData(String value) { this.ExternalResponseData = value; return this; }
        public String getExternalResponseReference() { return ExternalResponseReference; }
        public PaymentDetails setExternalResponseReference(String value) { this.ExternalResponseReference = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public PaymentDetails setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
        public Boolean getIsPayment() { return IsPayment; }
        public PaymentDetails setIsPayment(Boolean value) { this.IsPayment = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public PaymentDetails setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public PaymentDetails setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public PaymentDetails setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class QvicklyCheckoutResponse
    {
        public Integer Number = null;
        public String Status = null;
        public String OrderId = null;
        public String Url = null;
        
        public Integer getNumber() { return Number; }
        public QvicklyCheckoutResponse setNumber(Integer value) { this.Number = value; return this; }
        public String getStatus() { return Status; }
        public QvicklyCheckoutResponse setStatus(String value) { this.Status = value; return this; }
        public String getOrderId() { return OrderId; }
        public QvicklyCheckoutResponse setOrderId(String value) { this.OrderId = value; return this; }
        public String getUrl() { return Url; }
        public QvicklyCheckoutResponse setUrl(String value) { this.Url = value; return this; }
    }

    public static class Payson2CheckoutResponse
    {
        public UUID Id = null;
        public Date ExpirationTime = null;
        public String Snippet = null;
        public Payson2CheckoutStatus Status = null;
        public Customer Customer = null;
        public Order Order = null;
        public Merchant Merchant = null;
        public Gui Gui = null;
        public History History = null;
        public Integer PurchaseId = null;
        
        public UUID getId() { return Id; }
        public Payson2CheckoutResponse setId(UUID value) { this.Id = value; return this; }
        public Date getExpirationTime() { return ExpirationTime; }
        public Payson2CheckoutResponse setExpirationTime(Date value) { this.ExpirationTime = value; return this; }
        public String getSnippet() { return Snippet; }
        public Payson2CheckoutResponse setSnippet(String value) { this.Snippet = value; return this; }
        public Payson2CheckoutStatus getStatus() { return Status; }
        public Payson2CheckoutResponse setStatus(Payson2CheckoutStatus value) { this.Status = value; return this; }
        public Customer getCustomer() { return Customer; }
        public Payson2CheckoutResponse setCustomer(Customer value) { this.Customer = value; return this; }
        public Order getOrder() { return Order; }
        public Payson2CheckoutResponse setOrder(Order value) { this.Order = value; return this; }
        public Merchant getMerchant() { return Merchant; }
        public Payson2CheckoutResponse setMerchant(Merchant value) { this.Merchant = value; return this; }
        public Gui getGui() { return Gui; }
        public Payson2CheckoutResponse setGui(Gui value) { this.Gui = value; return this; }
        public History getHistory() { return History; }
        public Payson2CheckoutResponse setHistory(History value) { this.History = value; return this; }
        public Integer getPurchaseId() { return PurchaseId; }
        public Payson2CheckoutResponse setPurchaseId(Integer value) { this.PurchaseId = value; return this; }
    }

    public static enum Payson2CheckoutStatus
    {
        None,
        Created,
        FormsFilled,
        ReadyToPay,
        ProcessingPayment,
        ReadyToShip,
        Shipped,
        PaidToAccount,
        Canceled,
        Credited,
        Expired,
        Denied;
    }

    public static class Customer
    {
        public String City = null;
        public String CountryCode = null;
        public String IdentityNumber = null;
        public String Email = null;
        public String FirstName = null;
        public String LastName = null;
        public String Phone = null;
        public String PostalCode = null;
        public String Street = null;
        public String Reference = null;
        public CustomerType Type = null;
        
        public String getCity() { return City; }
        public Customer setCity(String value) { this.City = value; return this; }
        public String getCountryCode() { return CountryCode; }
        public Customer setCountryCode(String value) { this.CountryCode = value; return this; }
        public String getIdentityNumber() { return IdentityNumber; }
        public Customer setIdentityNumber(String value) { this.IdentityNumber = value; return this; }
        public String getEmail() { return Email; }
        public Customer setEmail(String value) { this.Email = value; return this; }
        public String getFirstName() { return FirstName; }
        public Customer setFirstName(String value) { this.FirstName = value; return this; }
        public String getLastName() { return LastName; }
        public Customer setLastName(String value) { this.LastName = value; return this; }
        public String getPhone() { return Phone; }
        public Customer setPhone(String value) { this.Phone = value; return this; }
        public String getPostalCode() { return PostalCode; }
        public Customer setPostalCode(String value) { this.PostalCode = value; return this; }
        public String getStreet() { return Street; }
        public Customer setStreet(String value) { this.Street = value; return this; }
        public String getReference() { return Reference; }
        public Customer setReference(String value) { this.Reference = value; return this; }
        public CustomerType getType() { return Type; }
        public Customer setType(CustomerType value) { this.Type = value; return this; }
    }

    public static enum CustomerType
    {
        Person,
        Business;
    }

    public static class Order
    {
        public Currency Currency = null;
        public BigDecimal TotalFeeExcludingTax = null;
        public BigDecimal TotalFeeIncludingTax = null;
        public BigDecimal TotalPriceExcludingTax = null;
        public BigDecimal TotalPriceIncludingTax = null;
        public BigDecimal TotalTaxAmount = null;
        public BigDecimal TotalCreditedAmount = null;
        public IList<Item> Items = null;
        
        public Currency getCurrency() { return Currency; }
        public Order setCurrency(Currency value) { this.Currency = value; return this; }
        public BigDecimal getTotalFeeExcludingTax() { return TotalFeeExcludingTax; }
        public Order setTotalFeeExcludingTax(BigDecimal value) { this.TotalFeeExcludingTax = value; return this; }
        public BigDecimal getTotalFeeIncludingTax() { return TotalFeeIncludingTax; }
        public Order setTotalFeeIncludingTax(BigDecimal value) { this.TotalFeeIncludingTax = value; return this; }
        public BigDecimal getTotalPriceExcludingTax() { return TotalPriceExcludingTax; }
        public Order setTotalPriceExcludingTax(BigDecimal value) { this.TotalPriceExcludingTax = value; return this; }
        public BigDecimal getTotalPriceIncludingTax() { return TotalPriceIncludingTax; }
        public Order setTotalPriceIncludingTax(BigDecimal value) { this.TotalPriceIncludingTax = value; return this; }
        public BigDecimal getTotalTaxAmount() { return TotalTaxAmount; }
        public Order setTotalTaxAmount(BigDecimal value) { this.TotalTaxAmount = value; return this; }
        public BigDecimal getTotalCreditedAmount() { return TotalCreditedAmount; }
        public Order setTotalCreditedAmount(BigDecimal value) { this.TotalCreditedAmount = value; return this; }
        public IList<Item> getItems() { return Items; }
        public Order setItems(IList<Item> value) { this.Items = value; return this; }
    }

    public static enum Currency
    {
        Sek(1),
        Eur(2);

        private final int value;
        Currency(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class Item
    {
        public UUID ItemId = null;
        public BigDecimal DiscountRate = null;
        public String Ean = null;
        public Uri ImageUri = null;
        public String Name = null;
        public BigDecimal Quantity = null;
        public String Reference = null;
        public BigDecimal TaxRate = null;
        public BigDecimal TotalPriceExcludingTax = null;
        public BigDecimal TotalPriceIncludingTax = null;
        public BigDecimal TotalTaxAmount = null;
        public BigDecimal CreditedAmount = null;
        public ItemType Type = null;
        public BigDecimal UnitPrice = null;
        public Uri Uri = null;
        
        public UUID getItemId() { return ItemId; }
        public Item setItemId(UUID value) { this.ItemId = value; return this; }
        public BigDecimal getDiscountRate() { return DiscountRate; }
        public Item setDiscountRate(BigDecimal value) { this.DiscountRate = value; return this; }
        public String getEan() { return Ean; }
        public Item setEan(String value) { this.Ean = value; return this; }
        public Uri getImageUri() { return ImageUri; }
        public Item setImageUri(Uri value) { this.ImageUri = value; return this; }
        public String getName() { return Name; }
        public Item setName(String value) { this.Name = value; return this; }
        public BigDecimal getQuantity() { return Quantity; }
        public Item setQuantity(BigDecimal value) { this.Quantity = value; return this; }
        public String getReference() { return Reference; }
        public Item setReference(String value) { this.Reference = value; return this; }
        public BigDecimal getTaxRate() { return TaxRate; }
        public Item setTaxRate(BigDecimal value) { this.TaxRate = value; return this; }
        public BigDecimal getTotalPriceExcludingTax() { return TotalPriceExcludingTax; }
        public Item setTotalPriceExcludingTax(BigDecimal value) { this.TotalPriceExcludingTax = value; return this; }
        public BigDecimal getTotalPriceIncludingTax() { return TotalPriceIncludingTax; }
        public Item setTotalPriceIncludingTax(BigDecimal value) { this.TotalPriceIncludingTax = value; return this; }
        public BigDecimal getTotalTaxAmount() { return TotalTaxAmount; }
        public Item setTotalTaxAmount(BigDecimal value) { this.TotalTaxAmount = value; return this; }
        public BigDecimal getCreditedAmount() { return CreditedAmount; }
        public Item setCreditedAmount(BigDecimal value) { this.CreditedAmount = value; return this; }
        public ItemType getType() { return Type; }
        public Item setType(ItemType value) { this.Type = value; return this; }
        public BigDecimal getUnitPrice() { return UnitPrice; }
        public Item setUnitPrice(BigDecimal value) { this.UnitPrice = value; return this; }
        public Uri getUri() { return Uri; }
        public Item setUri(Uri value) { this.Uri = value; return this; }
    }

    public static enum ItemType
    {
        Physical,
        Service,
        Fee,
        Discount;
    }

    public static class Merchant
    {
        public Uri CheckoutUri = null;
        public Uri ConfirmationUri = null;
        public Uri NotificationUri = null;
        public Uri ValidationUri = null;
        public Uri TermsUri = null;
        public String Reference = null;
        public String PartnerId = null;
        
        public Uri getCheckoutUri() { return CheckoutUri; }
        public Merchant setCheckoutUri(Uri value) { this.CheckoutUri = value; return this; }
        public Uri getConfirmationUri() { return ConfirmationUri; }
        public Merchant setConfirmationUri(Uri value) { this.ConfirmationUri = value; return this; }
        public Uri getNotificationUri() { return NotificationUri; }
        public Merchant setNotificationUri(Uri value) { this.NotificationUri = value; return this; }
        public Uri getValidationUri() { return ValidationUri; }
        public Merchant setValidationUri(Uri value) { this.ValidationUri = value; return this; }
        public Uri getTermsUri() { return TermsUri; }
        public Merchant setTermsUri(Uri value) { this.TermsUri = value; return this; }
        public String getReference() { return Reference; }
        public Merchant setReference(String value) { this.Reference = value; return this; }
        public String getPartnerId() { return PartnerId; }
        public Merchant setPartnerId(String value) { this.PartnerId = value; return this; }
    }

    public static class Gui
    {
        public ColorScheme ColorScheme = null;
        public String Locale = null;
        public Boolean RequestPhone = null;
        public Boolean PhoneOptional = null;
        
        public ColorScheme getColorScheme() { return ColorScheme; }
        public Gui setColorScheme(ColorScheme value) { this.ColorScheme = value; return this; }
        public String getLocale() { return Locale; }
        public Gui setLocale(String value) { this.Locale = value; return this; }
        public Boolean isRequestPhone() { return RequestPhone; }
        public Gui setRequestPhone(Boolean value) { this.RequestPhone = value; return this; }
        public Boolean isPhoneOptional() { return PhoneOptional; }
        public Gui setPhoneOptional(Boolean value) { this.PhoneOptional = value; return this; }
    }

    public static enum ColorScheme
    {
        White,
        Blue,
        Gray,
        GrayTextLogos,
        BlueTextLogos,
        WhiteTextLogos,
        WhiteNoFooter,
        GrayNoFooter,
        BlueNoFooter;
    }

    public static class History
    {
        public Date Created = null;
        public Date ReadyToPay = null;
        public Date ReadyToShip = null;
        public Date Shipped = null;
        public Date PaidToAccount = null;
        public Date Canceled = null;
        public Date Expired = null;
        public Date Denied = null;
        
        public Date getCreated() { return Created; }
        public History setCreated(Date value) { this.Created = value; return this; }
        public Date getReadyToPay() { return ReadyToPay; }
        public History setReadyToPay(Date value) { this.ReadyToPay = value; return this; }
        public Date getReadyToShip() { return ReadyToShip; }
        public History setReadyToShip(Date value) { this.ReadyToShip = value; return this; }
        public Date getShipped() { return Shipped; }
        public History setShipped(Date value) { this.Shipped = value; return this; }
        public Date getPaidToAccount() { return PaidToAccount; }
        public History setPaidToAccount(Date value) { this.PaidToAccount = value; return this; }
        public Date getCanceled() { return Canceled; }
        public History setCanceled(Date value) { this.Canceled = value; return this; }
        public Date getExpired() { return Expired; }
        public History setExpired(Date value) { this.Expired = value; return this; }
        public Date getDenied() { return Denied; }
        public History setDenied(Date value) { this.Denied = value; return this; }
    }

    public static class BookingPrice extends BaseModel
    {
        @References(Currency.class)
        public String CurrencyId = null;

        public Integer PriceId = null;
        public Currency CurrencyInfo = null;
        @Ignore()
        public String PriceText = null;

        @Ignore()
        public ArrayList<AppliedRebateCodes> AppliedCodes = null;

        @Ignore()
        public Boolean IsRebate = null;

        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer BookingId = null;

        @Required()
        public Integer Quantity = null;

        public Double Price = null;
        public BigDecimal VAT = null;
        public String Category = null;
        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        @Required()
        public Boolean Invoiced = null;

        @Required()
        public Boolean OccupiesSpot = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getCurrencyId() { return CurrencyId; }
        public BookingPrice setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Integer getPriceId() { return PriceId; }
        public BookingPrice setPriceId(Integer value) { this.PriceId = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public BookingPrice setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public String getPriceText() { return PriceText; }
        public BookingPrice setPriceText(String value) { this.PriceText = value; return this; }
        public ArrayList<AppliedRebateCodes> getAppliedCodes() { return AppliedCodes; }
        public BookingPrice setAppliedCodes(ArrayList<AppliedRebateCodes> value) { this.AppliedCodes = value; return this; }
        public Boolean getIsRebate() { return IsRebate; }
        public BookingPrice setIsRebate(Boolean value) { this.IsRebate = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingPrice setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingPrice setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getQuantity() { return Quantity; }
        public BookingPrice setQuantity(Integer value) { this.Quantity = value; return this; }
        public Double getPrice() { return Price; }
        public BookingPrice setPrice(Double value) { this.Price = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public BookingPrice setVat(BigDecimal value) { this.VAT = value; return this; }
        public String getCategory() { return Category; }
        public BookingPrice setCategory(String value) { this.Category = value; return this; }
        public Date getUpdated() { return Updated; }
        public BookingPrice setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public BookingPrice setCreated(Date value) { this.Created = value; return this; }
        public Boolean isInvoiced() { return Invoiced; }
        public BookingPrice setInvoiced(Boolean value) { this.Invoiced = value; return this; }
        public Boolean isOccupiesSpot() { return OccupiesSpot; }
        public BookingPrice setOccupiesSpot(Boolean value) { this.OccupiesSpot = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingPrice setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public BookingPrice setId(Integer value) { this.Id = value; return this; }
    }

    public static class Company extends BaseModel
    {
        @Ignore()
        public CompanyStatus Status = null;

        @Ignore()
        public Boolean Active = null;

        @Ignore()
        public IList<CustomFieldConfig> CustomerCustomFieldsConfig = null;

        @Ignore()
        public String BookingAgreements = null;

        @Ignore()
        public BookingSettings BookingSettings = null;

        @Ignore()
        public CompanyType CompanyType = null;

        @Ignore()
        public CodeLockSetting CodeLockSettings = null;

        @Ignore()
        public PaymentSetting PaymentSettings = null;

        @Ignore()
        public CompanySetting Settings = null;

        @Ignore()
        public HomepageWidgetSetting WidgetSettings = null;

        @Ignore()
        public HomepageSetting HomepageSettings = null;

        @Ignore()
        public AverageRatingScore RatingScore = null;

        @Ignore()
        public ArrayList<Rating> Ratings = null;

        @Ignore()
        public Double Distance = null;

        @Ignore()
        public ArrayList<License> Licenses = null;

        @Ignore()
        public ArrayList<License> ActiveLicenses = null;

        @Ignore()
        public License CurrentLicense = null;

        @Ignore()
        public Boolean IsFreeAccount = null;

        @Ignore()
        public CultureInfo DefaultLanguage = null;

        public CompanyCategory Category = null;
        @Ignore()
        public Double Lat = null;

        @Ignore()
        public Double Lon = null;

        @Ignore()
        public Boolean IsFavorite = null;

        @Ignore()
        public IList<ExternalReference> ExternalReferences = null;

        @Required()
        public String OrganisationNumber = null;

        @Required()
        public Integer StatusId = null;

        @Required()
        public Integer CategoryId = null;

        @Required()
        public String SitePath = null;

        @Required()
        public String Name = null;

        public String Street1 = null;
        public String Street2 = null;
        public String ZipCode = null;
        public String City = null;
        public String OpeningHours = null;
        public String FaxNumber = null;
        @Required()
        public String Email = null;

        public String Phone = null;
        public String Details = null;
        public String LogoType = null;
        @Required()
        public Boolean ApprovedByAdmin = null;

        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public String IpAddress = null;
        public String Homepage = null;
        public String DomainName = null;
        @Required()
        public String CountryId = null;

        @Required()
        public Integer CompanyOwnerId = null;

        public Integer TypeId = null;
        public Date ModifiedDate = null;
        @Required()
        public UUID Id = null;
        
        public CompanyStatus getStatus() { return Status; }
        public Company setStatus(CompanyStatus value) { this.Status = value; return this; }
        public Boolean isActive() { return Active; }
        public Company setActive(Boolean value) { this.Active = value; return this; }
        public IList<CustomFieldConfig> getCustomerCustomFieldsConfig() { return CustomerCustomFieldsConfig; }
        public Company setCustomerCustomFieldsConfig(IList<CustomFieldConfig> value) { this.CustomerCustomFieldsConfig = value; return this; }
        public String getBookingAgreements() { return BookingAgreements; }
        public Company setBookingAgreements(String value) { this.BookingAgreements = value; return this; }
        public BookingSettings getBookingSettings() { return BookingSettings; }
        public Company setBookingSettings(BookingSettings value) { this.BookingSettings = value; return this; }
        public CompanyType getCompanyType() { return CompanyType; }
        public Company setCompanyType(CompanyType value) { this.CompanyType = value; return this; }
        public CodeLockSetting getCodeLockSettings() { return CodeLockSettings; }
        public Company setCodeLockSettings(CodeLockSetting value) { this.CodeLockSettings = value; return this; }
        public PaymentSetting getPaymentSettings() { return PaymentSettings; }
        public Company setPaymentSettings(PaymentSetting value) { this.PaymentSettings = value; return this; }
        public CompanySetting getSettings() { return Settings; }
        public Company setSettings(CompanySetting value) { this.Settings = value; return this; }
        public HomepageWidgetSetting getWidgetSettings() { return WidgetSettings; }
        public Company setWidgetSettings(HomepageWidgetSetting value) { this.WidgetSettings = value; return this; }
        public HomepageSetting getHomepageSettings() { return HomepageSettings; }
        public Company setHomepageSettings(HomepageSetting value) { this.HomepageSettings = value; return this; }
        public AverageRatingScore getRatingScore() { return RatingScore; }
        public Company setRatingScore(AverageRatingScore value) { this.RatingScore = value; return this; }
        public ArrayList<Rating> getRatings() { return Ratings; }
        public Company setRatings(ArrayList<Rating> value) { this.Ratings = value; return this; }
        public Double getDistance() { return Distance; }
        public Company setDistance(Double value) { this.Distance = value; return this; }
        public ArrayList<License> getLicenses() { return Licenses; }
        public Company setLicenses(ArrayList<License> value) { this.Licenses = value; return this; }
        public ArrayList<License> getActiveLicenses() { return ActiveLicenses; }
        public Company setActiveLicenses(ArrayList<License> value) { this.ActiveLicenses = value; return this; }
        public License getCurrentLicense() { return CurrentLicense; }
        public Company setCurrentLicense(License value) { this.CurrentLicense = value; return this; }
        public Boolean getIsFreeAccount() { return IsFreeAccount; }
        public Company setIsFreeAccount(Boolean value) { this.IsFreeAccount = value; return this; }
        public CultureInfo getDefaultLanguage() { return DefaultLanguage; }
        public Company setDefaultLanguage(CultureInfo value) { this.DefaultLanguage = value; return this; }
        public CompanyCategory getCategory() { return Category; }
        public Company setCategory(CompanyCategory value) { this.Category = value; return this; }
        public Double getLat() { return Lat; }
        public Company setLat(Double value) { this.Lat = value; return this; }
        public Double getLon() { return Lon; }
        public Company setLon(Double value) { this.Lon = value; return this; }
        public Boolean getIsFavorite() { return IsFavorite; }
        public Company setIsFavorite(Boolean value) { this.IsFavorite = value; return this; }
        public IList<ExternalReference> getExternalReferences() { return ExternalReferences; }
        public Company setExternalReferences(IList<ExternalReference> value) { this.ExternalReferences = value; return this; }
        public String getOrganisationNumber() { return OrganisationNumber; }
        public Company setOrganisationNumber(String value) { this.OrganisationNumber = value; return this; }
        public Integer getStatusId() { return StatusId; }
        public Company setStatusId(Integer value) { this.StatusId = value; return this; }
        public Integer getCategoryId() { return CategoryId; }
        public Company setCategoryId(Integer value) { this.CategoryId = value; return this; }
        public String getSitePath() { return SitePath; }
        public Company setSitePath(String value) { this.SitePath = value; return this; }
        public String getName() { return Name; }
        public Company setName(String value) { this.Name = value; return this; }
        public String getStreet1() { return Street1; }
        public Company setStreet1(String value) { this.Street1 = value; return this; }
        public String getStreet2() { return Street2; }
        public Company setStreet2(String value) { this.Street2 = value; return this; }
        public String getZipCode() { return ZipCode; }
        public Company setZipCode(String value) { this.ZipCode = value; return this; }
        public String getCity() { return City; }
        public Company setCity(String value) { this.City = value; return this; }
        public String getOpeningHours() { return OpeningHours; }
        public Company setOpeningHours(String value) { this.OpeningHours = value; return this; }
        public String getFaxNumber() { return FaxNumber; }
        public Company setFaxNumber(String value) { this.FaxNumber = value; return this; }
        public String getEmail() { return Email; }
        public Company setEmail(String value) { this.Email = value; return this; }
        public String getPhone() { return Phone; }
        public Company setPhone(String value) { this.Phone = value; return this; }
        public String getDetails() { return Details; }
        public Company setDetails(String value) { this.Details = value; return this; }
        public String getLogoType() { return LogoType; }
        public Company setLogoType(String value) { this.LogoType = value; return this; }
        public Boolean isApprovedByAdmin() { return ApprovedByAdmin; }
        public Company setApprovedByAdmin(Boolean value) { this.ApprovedByAdmin = value; return this; }
        public Date getUpdated() { return Updated; }
        public Company setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public Company setCreated(Date value) { this.Created = value; return this; }
        public String getIpAddress() { return IpAddress; }
        public Company setIpAddress(String value) { this.IpAddress = value; return this; }
        public String getHomepage() { return Homepage; }
        public Company setHomepage(String value) { this.Homepage = value; return this; }
        public String getDomainName() { return DomainName; }
        public Company setDomainName(String value) { this.DomainName = value; return this; }
        public String getCountryId() { return CountryId; }
        public Company setCountryId(String value) { this.CountryId = value; return this; }
        public Integer getCompanyOwnerId() { return CompanyOwnerId; }
        public Company setCompanyOwnerId(Integer value) { this.CompanyOwnerId = value; return this; }
        public Integer getTypeId() { return TypeId; }
        public Company setTypeId(Integer value) { this.TypeId = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Company setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public UUID getId() { return Id; }
        public Company setId(UUID value) { this.Id = value; return this; }
    }

    public static enum CompanyStatus
    {
        Registered(1),
        AwaitingApproval(2),
        Approved(3),
        Inactive(4),
        ClosedDown(5),
        NotApproved(6);

        private final int value;
        CompanyStatus(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class CompanyType extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public CompanyType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CompanyType setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CompanyType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CompanyType setId(Integer value) { this.Id = value; return this; }
    }

    public static class CodeLockSetting extends BaseModel
    {
        @Ignore()
        public ArrayList<CodeLockSystem> CodeLockSystemOptions = null;

        @Required()
        public Boolean Active = null;

        @Required()
        public Integer CodeLockSystemsId = null;

        @Required()
        public Integer ValidBeforeMinutes = null;

        @Required()
        public Integer ValidAfterMinutes = null;

        @Required()
        public Boolean DeleteOldBySchedule = null;

        @Required()
        public Date Created = null;

        @Required()
        public Date Updated = null;

        public Date ModifiedDate = null;
        @Required()
        public Boolean SendEmailNotification = null;

        @Required()
        public Boolean SendSMSNotification = null;

        @Required()
        public Short EmailNotificationTime = null;

        @Required()
        public Short SMSNotificationTime = null;

        @Required()
        public UUID Id = null;
        
        public ArrayList<CodeLockSystem> getCodeLockSystemOptions() { return CodeLockSystemOptions; }
        public CodeLockSetting setCodeLockSystemOptions(ArrayList<CodeLockSystem> value) { this.CodeLockSystemOptions = value; return this; }
        public Boolean isActive() { return Active; }
        public CodeLockSetting setActive(Boolean value) { this.Active = value; return this; }
        public Integer getCodeLockSystemsId() { return CodeLockSystemsId; }
        public CodeLockSetting setCodeLockSystemsId(Integer value) { this.CodeLockSystemsId = value; return this; }
        public Integer getValidBeforeMinutes() { return ValidBeforeMinutes; }
        public CodeLockSetting setValidBeforeMinutes(Integer value) { this.ValidBeforeMinutes = value; return this; }
        public Integer getValidAfterMinutes() { return ValidAfterMinutes; }
        public CodeLockSetting setValidAfterMinutes(Integer value) { this.ValidAfterMinutes = value; return this; }
        public Boolean isDeleteOldBySchedule() { return DeleteOldBySchedule; }
        public CodeLockSetting setDeleteOldBySchedule(Boolean value) { this.DeleteOldBySchedule = value; return this; }
        public Date getCreated() { return Created; }
        public CodeLockSetting setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public CodeLockSetting setUpdated(Date value) { this.Updated = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CodeLockSetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Boolean isSendEmailNotification() { return SendEmailNotification; }
        public CodeLockSetting setSendEmailNotification(Boolean value) { this.SendEmailNotification = value; return this; }
        public Boolean isSendSMSNotification() { return SendSMSNotification; }
        public CodeLockSetting setSendSMSNotification(Boolean value) { this.SendSMSNotification = value; return this; }
        public Short getEmailNotificationTime() { return EmailNotificationTime; }
        public CodeLockSetting setEmailNotificationTime(Short value) { this.EmailNotificationTime = value; return this; }
        public Short getSmsNotificationTime() { return SMSNotificationTime; }
        public CodeLockSetting setSmsNotificationTime(Short value) { this.SMSNotificationTime = value; return this; }
        public UUID getId() { return Id; }
        public CodeLockSetting setId(UUID value) { this.Id = value; return this; }
    }

    public static class CodeLockSystem extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Supplier = null;

        public String LogoType = null;
        @Required()
        public String Description = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public CodeLockSystem setName(String value) { this.Name = value; return this; }
        public String getSupplier() { return Supplier; }
        public CodeLockSystem setSupplier(String value) { this.Supplier = value; return this; }
        public String getLogoType() { return LogoType; }
        public CodeLockSystem setLogoType(String value) { this.LogoType = value; return this; }
        public String getDescription() { return Description; }
        public CodeLockSystem setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CodeLockSystem setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CodeLockSystem setId(Integer value) { this.Id = value; return this; }
    }

    public static class CompanySetting extends BaseModel
    {
        @Ignore()
        public ArrayList<LanguageResponse> Languages = null;

        @Required()
        public Boolean Active = null;

        public String InactiveMessage = null;
        @Required()
        public Boolean Searchable = null;

        public String GATrackingId = null;
        public String FacebookPixelId = null;
        @Required()
        public Boolean MultiLanguage = null;

        @Required()
        public Boolean EnableAPITranslation = null;

        @Required()
        public String DefaultLanguage = null;

        public Date ModifiedDate = null;
        public String GTMTrackingId = null;
        @Required()
        public Boolean ShowOnMarketPlace = null;

        public String GoogleAdsConversionId = null;
        public String LinkedinTagId = null;
        public String GoogleAdsConversionLabel = null;
        @Required()
        public UUID Id = null;
        
        public ArrayList<LanguageResponse> getLanguages() { return Languages; }
        public CompanySetting setLanguages(ArrayList<LanguageResponse> value) { this.Languages = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanySetting setActive(Boolean value) { this.Active = value; return this; }
        public String getInactiveMessage() { return InactiveMessage; }
        public CompanySetting setInactiveMessage(String value) { this.InactiveMessage = value; return this; }
        public Boolean isSearchable() { return Searchable; }
        public CompanySetting setSearchable(Boolean value) { this.Searchable = value; return this; }
        public String getGaTrackingId() { return GATrackingId; }
        public CompanySetting setGaTrackingId(String value) { this.GATrackingId = value; return this; }
        public String getFacebookPixelId() { return FacebookPixelId; }
        public CompanySetting setFacebookPixelId(String value) { this.FacebookPixelId = value; return this; }
        public Boolean isMultiLanguage() { return MultiLanguage; }
        public CompanySetting setMultiLanguage(Boolean value) { this.MultiLanguage = value; return this; }
        public Boolean isEnableAPITranslation() { return EnableAPITranslation; }
        public CompanySetting setEnableAPITranslation(Boolean value) { this.EnableAPITranslation = value; return this; }
        public String getDefaultLanguage() { return DefaultLanguage; }
        public CompanySetting setDefaultLanguage(String value) { this.DefaultLanguage = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CompanySetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getGtmTrackingId() { return GTMTrackingId; }
        public CompanySetting setGtmTrackingId(String value) { this.GTMTrackingId = value; return this; }
        public Boolean isShowOnMarketPlace() { return ShowOnMarketPlace; }
        public CompanySetting setShowOnMarketPlace(Boolean value) { this.ShowOnMarketPlace = value; return this; }
        public String getGoogleAdsConversionId() { return GoogleAdsConversionId; }
        public CompanySetting setGoogleAdsConversionId(String value) { this.GoogleAdsConversionId = value; return this; }
        public String getLinkedinTagId() { return LinkedinTagId; }
        public CompanySetting setLinkedinTagId(String value) { this.LinkedinTagId = value; return this; }
        public String getGoogleAdsConversionLabel() { return GoogleAdsConversionLabel; }
        public CompanySetting setGoogleAdsConversionLabel(String value) { this.GoogleAdsConversionLabel = value; return this; }
        public UUID getId() { return Id; }
        public CompanySetting setId(UUID value) { this.Id = value; return this; }
    }

    public static class LanguageResponse
    {
        public String Id = null;
        public String Name = null;
        
        public String getId() { return Id; }
        public LanguageResponse setId(String value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public LanguageResponse setName(String value) { this.Name = value; return this; }
    }

    public static class HomepageWidgetSetting extends BaseModel
    {
        @Ignore()
        public ArrayList<WidgetServiceLayouts> WidgetServiceLayoutOptions = null;

        @Ignore()
        public ArrayList<WidgetTimeLayouts> WidgetTimeLayoutOptions = null;

        @Ignore()
        public ArrayList<WidgetBookingLayouts> WidgetBookingLayoutOptions = null;

        @Ignore()
        public ArrayList<WidgetBookingMethods> WidgetBookingMethodOptions = null;

        @Required()
        public Integer ServiceLayoutId = null;

        @Required()
        public Integer TimeLayoutId = null;

        @Required()
        public Integer BookingLayoutId = null;

        @Required()
        public String PrimaryColor = null;

        @Required()
        public Boolean ShowServiceImage = null;

        @Required()
        public Boolean ShowNextAvailableTime = null;

        @Required()
        public Boolean ShowEndTime = null;

        public String BookedTimeSlotText = null;
        @Required()
        public Boolean DarkTheme = null;

        @Required()
        public Boolean ShowRebateCodeField = null;

        public Date ModifiedDate = null;
        @Required()
        public Boolean EnableCreateAccount = null;

        @Required()
        public Boolean EnableLogin = null;

        @Required()
        public Boolean EnableDirectBooking = null;

        @Required()
        public Boolean EnableFacebookLogin = null;

        @Required()
        public UUID Id = null;
        
        public ArrayList<WidgetServiceLayouts> getWidgetServiceLayoutOptions() { return WidgetServiceLayoutOptions; }
        public HomepageWidgetSetting setWidgetServiceLayoutOptions(ArrayList<WidgetServiceLayouts> value) { this.WidgetServiceLayoutOptions = value; return this; }
        public ArrayList<WidgetTimeLayouts> getWidgetTimeLayoutOptions() { return WidgetTimeLayoutOptions; }
        public HomepageWidgetSetting setWidgetTimeLayoutOptions(ArrayList<WidgetTimeLayouts> value) { this.WidgetTimeLayoutOptions = value; return this; }
        public ArrayList<WidgetBookingLayouts> getWidgetBookingLayoutOptions() { return WidgetBookingLayoutOptions; }
        public HomepageWidgetSetting setWidgetBookingLayoutOptions(ArrayList<WidgetBookingLayouts> value) { this.WidgetBookingLayoutOptions = value; return this; }
        public ArrayList<WidgetBookingMethods> getWidgetBookingMethodOptions() { return WidgetBookingMethodOptions; }
        public HomepageWidgetSetting setWidgetBookingMethodOptions(ArrayList<WidgetBookingMethods> value) { this.WidgetBookingMethodOptions = value; return this; }
        public Integer getServiceLayoutId() { return ServiceLayoutId; }
        public HomepageWidgetSetting setServiceLayoutId(Integer value) { this.ServiceLayoutId = value; return this; }
        public Integer getTimeLayoutId() { return TimeLayoutId; }
        public HomepageWidgetSetting setTimeLayoutId(Integer value) { this.TimeLayoutId = value; return this; }
        public Integer getBookingLayoutId() { return BookingLayoutId; }
        public HomepageWidgetSetting setBookingLayoutId(Integer value) { this.BookingLayoutId = value; return this; }
        public String getPrimaryColor() { return PrimaryColor; }
        public HomepageWidgetSetting setPrimaryColor(String value) { this.PrimaryColor = value; return this; }
        public Boolean isShowServiceImage() { return ShowServiceImage; }
        public HomepageWidgetSetting setShowServiceImage(Boolean value) { this.ShowServiceImage = value; return this; }
        public Boolean isShowNextAvailableTime() { return ShowNextAvailableTime; }
        public HomepageWidgetSetting setShowNextAvailableTime(Boolean value) { this.ShowNextAvailableTime = value; return this; }
        public Boolean isShowEndTime() { return ShowEndTime; }
        public HomepageWidgetSetting setShowEndTime(Boolean value) { this.ShowEndTime = value; return this; }
        public String getBookedTimeSlotText() { return BookedTimeSlotText; }
        public HomepageWidgetSetting setBookedTimeSlotText(String value) { this.BookedTimeSlotText = value; return this; }
        public Boolean isDarkTheme() { return DarkTheme; }
        public HomepageWidgetSetting setDarkTheme(Boolean value) { this.DarkTheme = value; return this; }
        public Boolean isShowRebateCodeField() { return ShowRebateCodeField; }
        public HomepageWidgetSetting setShowRebateCodeField(Boolean value) { this.ShowRebateCodeField = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public HomepageWidgetSetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Boolean isEnableCreateAccount() { return EnableCreateAccount; }
        public HomepageWidgetSetting setEnableCreateAccount(Boolean value) { this.EnableCreateAccount = value; return this; }
        public Boolean isEnableLogin() { return EnableLogin; }
        public HomepageWidgetSetting setEnableLogin(Boolean value) { this.EnableLogin = value; return this; }
        public Boolean isEnableDirectBooking() { return EnableDirectBooking; }
        public HomepageWidgetSetting setEnableDirectBooking(Boolean value) { this.EnableDirectBooking = value; return this; }
        public Boolean isEnableFacebookLogin() { return EnableFacebookLogin; }
        public HomepageWidgetSetting setEnableFacebookLogin(Boolean value) { this.EnableFacebookLogin = value; return this; }
        public UUID getId() { return Id; }
        public HomepageWidgetSetting setId(UUID value) { this.Id = value; return this; }
    }

    public static class WidgetServiceLayouts extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Code = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public WidgetServiceLayouts setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public WidgetServiceLayouts setDescription(String value) { this.Description = value; return this; }
        public String getCode() { return Code; }
        public WidgetServiceLayouts setCode(String value) { this.Code = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public WidgetServiceLayouts setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public WidgetServiceLayouts setId(Integer value) { this.Id = value; return this; }
    }

    public static class WidgetTimeLayouts extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Code = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public WidgetTimeLayouts setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public WidgetTimeLayouts setDescription(String value) { this.Description = value; return this; }
        public String getCode() { return Code; }
        public WidgetTimeLayouts setCode(String value) { this.Code = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public WidgetTimeLayouts setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public WidgetTimeLayouts setId(Integer value) { this.Id = value; return this; }
    }

    public static class WidgetBookingLayouts extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Code = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public WidgetBookingLayouts setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public WidgetBookingLayouts setDescription(String value) { this.Description = value; return this; }
        public String getCode() { return Code; }
        public WidgetBookingLayouts setCode(String value) { this.Code = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public WidgetBookingLayouts setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public WidgetBookingLayouts setId(Integer value) { this.Id = value; return this; }
    }

    public static class WidgetBookingMethods extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Code = null;

        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public WidgetBookingMethods setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public WidgetBookingMethods setDescription(String value) { this.Description = value; return this; }
        public String getCode() { return Code; }
        public WidgetBookingMethods setCode(String value) { this.Code = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public WidgetBookingMethods setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public WidgetBookingMethods setId(Integer value) { this.Id = value; return this; }
    }

    public static class HomepageSetting extends BaseModel implements ICompany
    {
        @Ignore()
        public ArrayList<HomepageTemplate> HomepageTemplateOptions = null;

        @Ignore()
        public ArrayList<HeroSectionStyle> HomepageHeroSectionStyleOptions = null;

        @Ignore()
        public UUID CompanyId = null;

        public String WelcomePageHeading = null;
        public String WelcomePageBody = null;
        public String AboutUsPageHeading = null;
        public String AboutUsPageBody = null;
        @Required()
        public Integer HomePageTemplateId = null;

        public String ImageUrl = null;
        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public String HomepageHeading = null;
        @Required()
        public Integer HeroSectionStyleId = null;

        public Date ModifiedDate = null;
        @Required()
        public Boolean ShowRating = null;

        @Required()
        public Boolean EnableHomepage = null;

        @Required()
        public UUID Id = null;
        
        public ArrayList<HomepageTemplate> getHomepageTemplateOptions() { return HomepageTemplateOptions; }
        public HomepageSetting setHomepageTemplateOptions(ArrayList<HomepageTemplate> value) { this.HomepageTemplateOptions = value; return this; }
        public ArrayList<HeroSectionStyle> getHomepageHeroSectionStyleOptions() { return HomepageHeroSectionStyleOptions; }
        public HomepageSetting setHomepageHeroSectionStyleOptions(ArrayList<HeroSectionStyle> value) { this.HomepageHeroSectionStyleOptions = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public HomepageSetting setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public String getWelcomePageHeading() { return WelcomePageHeading; }
        public HomepageSetting setWelcomePageHeading(String value) { this.WelcomePageHeading = value; return this; }
        public String getWelcomePageBody() { return WelcomePageBody; }
        public HomepageSetting setWelcomePageBody(String value) { this.WelcomePageBody = value; return this; }
        public String getAboutUsPageHeading() { return AboutUsPageHeading; }
        public HomepageSetting setAboutUsPageHeading(String value) { this.AboutUsPageHeading = value; return this; }
        public String getAboutUsPageBody() { return AboutUsPageBody; }
        public HomepageSetting setAboutUsPageBody(String value) { this.AboutUsPageBody = value; return this; }
        public Integer getHomePageTemplateId() { return HomePageTemplateId; }
        public HomepageSetting setHomePageTemplateId(Integer value) { this.HomePageTemplateId = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public HomepageSetting setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Date getUpdated() { return Updated; }
        public HomepageSetting setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public HomepageSetting setCreated(Date value) { this.Created = value; return this; }
        public String getHomepageHeading() { return HomepageHeading; }
        public HomepageSetting setHomepageHeading(String value) { this.HomepageHeading = value; return this; }
        public Integer getHeroSectionStyleId() { return HeroSectionStyleId; }
        public HomepageSetting setHeroSectionStyleId(Integer value) { this.HeroSectionStyleId = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public HomepageSetting setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Boolean isShowRating() { return ShowRating; }
        public HomepageSetting setShowRating(Boolean value) { this.ShowRating = value; return this; }
        public Boolean isEnableHomepage() { return EnableHomepage; }
        public HomepageSetting setEnableHomepage(Boolean value) { this.EnableHomepage = value; return this; }
        public UUID getId() { return Id; }
        public HomepageSetting setId(UUID value) { this.Id = value; return this; }
    }

    public static class HomepageTemplate extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        public Uri ImageUrl = null;
        @Required()
        public Boolean Premium = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public HomepageTemplate setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public HomepageTemplate setDescription(String value) { this.Description = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public HomepageTemplate setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Boolean isPremium() { return Premium; }
        public HomepageTemplate setPremium(Boolean value) { this.Premium = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public HomepageTemplate setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public HomepageTemplate setId(Integer value) { this.Id = value; return this; }
    }

    public static class HeroSectionStyle extends BaseModel
    {
        @Required()
        public String Name = null;

        public String Description = null;
        public Date ModifiedDate = null;
        @Required()
        public Integer Id = null;
        
        public String getName() { return Name; }
        public HeroSectionStyle setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public HeroSectionStyle setDescription(String value) { this.Description = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public HeroSectionStyle setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public HeroSectionStyle setId(Integer value) { this.Id = value; return this; }
    }

    public static class License extends BaseModel
    {
        public LicenseType Type = null;
        @Required()
        public UUID CompanyId = null;

        public Integer Id = null;
        @Required()
        public Integer TypeId = null;

        @Required()
        public Date ValidFrom = null;

        @Required()
        public Date ValidTo = null;

        @Required()
        public Boolean Active = null;

        @Required()
        public Date Updated = null;

        @Required()
        public Date Created = null;

        public Date ModifiedDate = null;
        public String MetaData = null;
        
        public LicenseType getType() { return Type; }
        public License setType(LicenseType value) { this.Type = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public License setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public License setId(Integer value) { this.Id = value; return this; }
        public Integer getTypeId() { return TypeId; }
        public License setTypeId(Integer value) { this.TypeId = value; return this; }
        public Date getValidFrom() { return ValidFrom; }
        public License setValidFrom(Date value) { this.ValidFrom = value; return this; }
        public Date getValidTo() { return ValidTo; }
        public License setValidTo(Date value) { this.ValidTo = value; return this; }
        public Boolean isActive() { return Active; }
        public License setActive(Boolean value) { this.Active = value; return this; }
        public Date getUpdated() { return Updated; }
        public License setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public License setCreated(Date value) { this.Created = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public License setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getMetaData() { return MetaData; }
        public License setMetaData(String value) { this.MetaData = value; return this; }
    }

    public static class LicenseType extends BaseModel
    {
        @Ignore()
        public IList<LicenseTypeItem> LicenseItems = null;

        @Ignore()
        public IList<LicensePrice> Prices = null;

        @Ignore()
        public Integer PeriodOfNoticeDays = null;

        @Ignore()
        public LicenseType NextLicenseOption = null;

        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public Boolean ExtraLicenseOption = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public IList<LicenseTypeItem> getLicenseItems() { return LicenseItems; }
        public LicenseType setLicenseItems(IList<LicenseTypeItem> value) { this.LicenseItems = value; return this; }
        public IList<LicensePrice> getPrices() { return Prices; }
        public LicenseType setPrices(IList<LicensePrice> value) { this.Prices = value; return this; }
        public Integer getPeriodOfNoticeDays() { return PeriodOfNoticeDays; }
        public LicenseType setPeriodOfNoticeDays(Integer value) { this.PeriodOfNoticeDays = value; return this; }
        public LicenseType getNextLicenseOption() { return NextLicenseOption; }
        public LicenseType setNextLicenseOption(LicenseType value) { this.NextLicenseOption = value; return this; }
        public String getName() { return Name; }
        public LicenseType setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public LicenseType setDescription(String value) { this.Description = value; return this; }
        public Boolean isExtraLicenseOption() { return ExtraLicenseOption; }
        public LicenseType setExtraLicenseOption(Boolean value) { this.ExtraLicenseOption = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public LicenseType setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public LicenseType setId(Integer value) { this.Id = value; return this; }
    }

    public static class LicenseTypeItem extends BaseModel
    {
        @Ignore()
        public String Name = null;

        @Required()
        public Integer LicenseTypesId = null;

        @Required()
        public Integer LicenseItemsId = null;

        @Required()
        public Integer NumberOfItems = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public String getName() { return Name; }
        public LicenseTypeItem setName(String value) { this.Name = value; return this; }
        public Integer getLicenseTypesId() { return LicenseTypesId; }
        public LicenseTypeItem setLicenseTypesId(Integer value) { this.LicenseTypesId = value; return this; }
        public Integer getLicenseItemsId() { return LicenseItemsId; }
        public LicenseTypeItem setLicenseItemsId(Integer value) { this.LicenseItemsId = value; return this; }
        public Integer getNumberOfItems() { return NumberOfItems; }
        public LicenseTypeItem setNumberOfItems(Integer value) { this.NumberOfItems = value; return this; }
        public Integer getId() { return Id; }
        public LicenseTypeItem setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public LicenseTypeItem setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class LicensePrice extends BaseModel
    {
        @Ignore()
        public Country Country = null;

        @Ignore()
        public Boolean MonthlyPayment = null;

        @Required()
        public Integer LicenseTypeId = null;

        @Required()
        public String CountryId = null;

        @Required()
        public Integer Price = null;

        public Date ModifiedDate = null;
        
        public Country getCountry() { return Country; }
        public LicensePrice setCountry(Country value) { this.Country = value; return this; }
        public Boolean isMonthlyPayment() { return MonthlyPayment; }
        public LicensePrice setMonthlyPayment(Boolean value) { this.MonthlyPayment = value; return this; }
        public Integer getLicenseTypeId() { return LicenseTypeId; }
        public LicensePrice setLicenseTypeId(Integer value) { this.LicenseTypeId = value; return this; }
        public String getCountryId() { return CountryId; }
        public LicensePrice setCountryId(String value) { this.CountryId = value; return this; }
        public Integer getPrice() { return Price; }
        public LicensePrice setPrice(Integer value) { this.Price = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public LicensePrice setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class Country extends BaseModel
    {
        @References(Currency.class)
        public String CurrencyId = null;

        public Currency CurrencyInfo = null;
        @Required()
        public String Name = null;

        public String Culture = null;
        public String TimeZone = null;
        public Date ModifiedDate = null;
        @Required()
        public String Id = null;
        
        public String getCurrencyId() { return CurrencyId; }
        public Country setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public Country setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public String getName() { return Name; }
        public Country setName(String value) { this.Name = value; return this; }
        public String getCulture() { return Culture; }
        public Country setCulture(String value) { this.Culture = value; return this; }
        public String getTimeZone() { return TimeZone; }
        public Country setTimeZone(String value) { this.TimeZone = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Country setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public String getId() { return Id; }
        public Country setId(String value) { this.Id = value; return this; }
    }

    public static class CompanyCategory extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Header = null;

        @Required()
        public String Description = null;

        public Uri ImageUrl = null;
        @Required()
        public Boolean Active = null;

        public Integer SortOrder = null;
        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public CompanyCategory setName(String value) { this.Name = value; return this; }
        public String getHeader() { return Header; }
        public CompanyCategory setHeader(String value) { this.Header = value; return this; }
        public String getDescription() { return Description; }
        public CompanyCategory setDescription(String value) { this.Description = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public CompanyCategory setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanyCategory setActive(Boolean value) { this.Active = value; return this; }
        public Integer getSortOrder() { return SortOrder; }
        public CompanyCategory setSortOrder(Integer value) { this.SortOrder = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CompanyCategory setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public CompanyCategory setId(Integer value) { this.Id = value; return this; }
    }

    public static class BookingStatus extends BaseModel
    {
        @Required()
        public String Name = null;

        @Required()
        public String Description = null;

        @Required()
        public String Color = null;

        @Required()
        public String Icon = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        
        public String getName() { return Name; }
        public BookingStatus setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingStatus setDescription(String value) { this.Description = value; return this; }
        public String getColor() { return Color; }
        public BookingStatus setColor(String value) { this.Color = value; return this; }
        public String getIcon() { return Icon; }
        public BookingStatus setIcon(String value) { this.Icon = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public BookingStatus setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Integer getId() { return Id; }
        public BookingStatus setId(Integer value) { this.Id = value; return this; }
    }

    public static class BookedResourceType
    {
        /**
        * The resource type id
        */
        @ApiMember(Description="The resource type id")
        public Integer Id = null;

        /**
        * The resource type name
        */
        @ApiMember(Description="The resource type name")
        public String Name = null;

        /**
        * The resources inside resource type
        */
        @ApiMember(Description="The resources inside resource type")
        public ArrayList<BookedResource> Resources = null;
        
        public Integer getId() { return Id; }
        public BookedResourceType setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedResourceType setName(String value) { this.Name = value; return this; }
        public ArrayList<BookedResource> getResources() { return Resources; }
        public BookedResourceType setResources(ArrayList<BookedResource> value) { this.Resources = value; return this; }
    }

    public static class BookedResource
    {
        public Integer Id = null;
        public String Name = null;
        public String Color = null;
        public Uri ImageUrl = null;
        public String Email = null;
        public String MobilePhone = null;
        public String AccessGroup = null;
        public Boolean EmailNotification = null;
        public Boolean SMSNotification = null;
        public Boolean EmailReminder = null;
        public Boolean SMSReminder = null;
        
        public Integer getId() { return Id; }
        public BookedResource setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedResource setName(String value) { this.Name = value; return this; }
        public String getColor() { return Color; }
        public BookedResource setColor(String value) { this.Color = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public BookedResource setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public String getEmail() { return Email; }
        public BookedResource setEmail(String value) { this.Email = value; return this; }
        public String getMobilePhone() { return MobilePhone; }
        public BookedResource setMobilePhone(String value) { this.MobilePhone = value; return this; }
        public String getAccessGroup() { return AccessGroup; }
        public BookedResource setAccessGroup(String value) { this.AccessGroup = value; return this; }
        public Boolean isEmailNotification() { return EmailNotification; }
        public BookedResource setEmailNotification(Boolean value) { this.EmailNotification = value; return this; }
        public Boolean isSmsNotification() { return SMSNotification; }
        public BookedResource setSmsNotification(Boolean value) { this.SMSNotification = value; return this; }
        public Boolean isEmailReminder() { return EmailReminder; }
        public BookedResource setEmailReminder(Boolean value) { this.EmailReminder = value; return this; }
        public Boolean isSmsReminder() { return SMSReminder; }
        public BookedResource setSmsReminder(Boolean value) { this.SMSReminder = value; return this; }
    }

    public static class BookingQueryResponse
    {
        public Integer Id = null;
        public UUID CompanyId = null;
        public Date From = null;
        public Date To = null;
        public BookingStatusEnum Status = null;
        public Integer StatusId = null;
        public String StatusName = null;
        public BookingStatusQueryResponse StatusInfo = null;
        public Boolean SendEmailReminder = null;
        public Boolean SendSmsReminder = null;
        public Boolean SendSmsConfirmation = null;
        public Boolean SendEmailConfirmation = null;
        public Date LastTimeToUnBook = null;
        public ArrayList<CustomFieldConfigData> CustomFields = null;
        public ArrayList<CustomFieldDataResponse> CustomFieldValues = null;
        public ArrayList<BookedResourceType> BookedResourceTypes = null;
        public BookedCompany Company = null;
        public BookedCustomer Customer = null;
        public ArrayList<BookedQuantity> Quantities = null;
        public ServiceInfoResponse Service = null;
        public Date PaymentExpiration = null;
        public ArrayList<BookingLogQueryResponse> Log = null;
        public ArrayList<BookingPaymentLogQueryResponse> PaymentLog = null;
        public ArrayList<BookingCheckoutQueryResponse> CheckoutLog = null;
        public ArrayList<ExternalReferenceResponse> ExternalReference = null;
        public ResponseStatus ResponseStatus = null;
        public BookingCalendarExportStatus CalendarExportStatus = null;
        public Integer LengthInMinutes = null;
        public String BookedBy = null;
        public String BookedComments = null;
        public String UnbookedComments = null;
        public String CommentsToCustomer = null;
        public Date CreatedDate = null;
        public Date UpdatedDate = null;
        public Date UnbookedOn = null;
        public String CancellationCode = null;
        public String RatingCode = null;
        
        public Integer getId() { return Id; }
        public BookingQueryResponse setId(Integer value) { this.Id = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingQueryResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Date getFrom() { return From; }
        public BookingQueryResponse setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public BookingQueryResponse setTo(Date value) { this.To = value; return this; }
        public BookingStatusEnum getStatus() { return Status; }
        public BookingQueryResponse setStatus(BookingStatusEnum value) { this.Status = value; return this; }
        public Integer getStatusId() { return StatusId; }
        public BookingQueryResponse setStatusId(Integer value) { this.StatusId = value; return this; }
        public String getStatusName() { return StatusName; }
        public BookingQueryResponse setStatusName(String value) { this.StatusName = value; return this; }
        public BookingStatusQueryResponse getStatusInfo() { return StatusInfo; }
        public BookingQueryResponse setStatusInfo(BookingStatusQueryResponse value) { this.StatusInfo = value; return this; }
        public Boolean isSendEmailReminder() { return SendEmailReminder; }
        public BookingQueryResponse setSendEmailReminder(Boolean value) { this.SendEmailReminder = value; return this; }
        public Boolean isSendSmsReminder() { return SendSmsReminder; }
        public BookingQueryResponse setSendSmsReminder(Boolean value) { this.SendSmsReminder = value; return this; }
        public Boolean isSendSmsConfirmation() { return SendSmsConfirmation; }
        public BookingQueryResponse setSendSmsConfirmation(Boolean value) { this.SendSmsConfirmation = value; return this; }
        public Boolean isSendEmailConfirmation() { return SendEmailConfirmation; }
        public BookingQueryResponse setSendEmailConfirmation(Boolean value) { this.SendEmailConfirmation = value; return this; }
        public Date getLastTimeToUnBook() { return LastTimeToUnBook; }
        public BookingQueryResponse setLastTimeToUnBook(Date value) { this.LastTimeToUnBook = value; return this; }
        public ArrayList<CustomFieldConfigData> getCustomFields() { return CustomFields; }
        public BookingQueryResponse setCustomFields(ArrayList<CustomFieldConfigData> value) { this.CustomFields = value; return this; }
        public ArrayList<CustomFieldDataResponse> getCustomFieldValues() { return CustomFieldValues; }
        public BookingQueryResponse setCustomFieldValues(ArrayList<CustomFieldDataResponse> value) { this.CustomFieldValues = value; return this; }
        public ArrayList<BookedResourceType> getBookedResourceTypes() { return BookedResourceTypes; }
        public BookingQueryResponse setBookedResourceTypes(ArrayList<BookedResourceType> value) { this.BookedResourceTypes = value; return this; }
        public BookedCompany getCompany() { return Company; }
        public BookingQueryResponse setCompany(BookedCompany value) { this.Company = value; return this; }
        public BookedCustomer getCustomer() { return Customer; }
        public BookingQueryResponse setCustomer(BookedCustomer value) { this.Customer = value; return this; }
        public ArrayList<BookedQuantity> getQuantities() { return Quantities; }
        public BookingQueryResponse setQuantities(ArrayList<BookedQuantity> value) { this.Quantities = value; return this; }
        public ServiceInfoResponse getService() { return Service; }
        public BookingQueryResponse setService(ServiceInfoResponse value) { this.Service = value; return this; }
        public Date getPaymentExpiration() { return PaymentExpiration; }
        public BookingQueryResponse setPaymentExpiration(Date value) { this.PaymentExpiration = value; return this; }
        public ArrayList<BookingLogQueryResponse> getLog() { return Log; }
        public BookingQueryResponse setLog(ArrayList<BookingLogQueryResponse> value) { this.Log = value; return this; }
        public ArrayList<BookingPaymentLogQueryResponse> getPaymentLog() { return PaymentLog; }
        public BookingQueryResponse setPaymentLog(ArrayList<BookingPaymentLogQueryResponse> value) { this.PaymentLog = value; return this; }
        public ArrayList<BookingCheckoutQueryResponse> getCheckoutLog() { return CheckoutLog; }
        public BookingQueryResponse setCheckoutLog(ArrayList<BookingCheckoutQueryResponse> value) { this.CheckoutLog = value; return this; }
        public ArrayList<ExternalReferenceResponse> getExternalReference() { return ExternalReference; }
        public BookingQueryResponse setExternalReference(ArrayList<ExternalReferenceResponse> value) { this.ExternalReference = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public BookingQueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
        public BookingCalendarExportStatus getCalendarExportStatus() { return CalendarExportStatus; }
        public BookingQueryResponse setCalendarExportStatus(BookingCalendarExportStatus value) { this.CalendarExportStatus = value; return this; }
        public Integer getLengthInMinutes() { return LengthInMinutes; }
        public BookingQueryResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; }
        public String getBookedBy() { return BookedBy; }
        public BookingQueryResponse setBookedBy(String value) { this.BookedBy = value; return this; }
        public String getBookedComments() { return BookedComments; }
        public BookingQueryResponse setBookedComments(String value) { this.BookedComments = value; return this; }
        public String getUnbookedComments() { return UnbookedComments; }
        public BookingQueryResponse setUnbookedComments(String value) { this.UnbookedComments = value; return this; }
        public String getCommentsToCustomer() { return CommentsToCustomer; }
        public BookingQueryResponse setCommentsToCustomer(String value) { this.CommentsToCustomer = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public BookingQueryResponse setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public BookingQueryResponse setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getUnbookedOn() { return UnbookedOn; }
        public BookingQueryResponse setUnbookedOn(Date value) { this.UnbookedOn = value; return this; }
        public String getCancellationCode() { return CancellationCode; }
        public BookingQueryResponse setCancellationCode(String value) { this.CancellationCode = value; return this; }
        public String getRatingCode() { return RatingCode; }
        public BookingQueryResponse setRatingCode(String value) { this.RatingCode = value; return this; }
    }

    public static class BookingStatusQueryResponse
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        public String Icon = null;
        public String Color = null;
        
        public Integer getId() { return Id; }
        public BookingStatusQueryResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookingStatusQueryResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingStatusQueryResponse setDescription(String value) { this.Description = value; return this; }
        public String getIcon() { return Icon; }
        public BookingStatusQueryResponse setIcon(String value) { this.Icon = value; return this; }
        public String getColor() { return Color; }
        public BookingStatusQueryResponse setColor(String value) { this.Color = value; return this; }
    }

    public static class CustomFieldConfigData
    {
        /**
        * Custom field id
        */
        @ApiMember(Description="Custom field id")
        public Integer Id = null;

        /**
        * Configuration name. Example: 'Number of persons'.
        */
        @ApiMember(Description="Configuration name. Example: 'Number of persons'.")
        public String Name = null;

        /**
        * 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 String Description = null;

        /**
        * Field width. Example: 20 for 20px
        */
        @ApiMember(Description="Field width. Example: 20 for 20px")
        public Integer Width = null;

        /**
        * 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 String DataType = null;

        /**
        * Default value of the field. Example: '3'
        */
        @ApiMember(Description="Default value of the field. Example: '3'")
        public String DefaultValue = null;

        /**
        * 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 Boolean IsMandatory = null;

        /**
        * 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 String MandatoryErrorMessage = null;

        /**
        * Max lenght of the field
        */
        @ApiMember(Description="Max lenght of the field")
        public Integer MaxLength = null;

        /**
        * If the field should have multiple lines
        */
        @ApiMember(Description="If the field should have multiple lines")
        public Boolean MultipleLineText = null;

        /**
        * Regular expression used for validation of the field
        */
        @ApiMember(Description="Regular expression used for validation of the field")
        public String RegEx = null;

        /**
        * Error message shown if the regular expression validation failed
        */
        @ApiMember(Description="Error message shown if the regular expression validation failed")
        public String RegExErrorMessage = null;

        /**
        * 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 ArrayList<CustomFieldValueResponse> Values = null;
        
        public Integer getId() { return Id; }
        public CustomFieldConfigData setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public CustomFieldConfigData setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CustomFieldConfigData setDescription(String value) { this.Description = value; return this; }
        public Integer getWidth() { return Width; }
        public CustomFieldConfigData setWidth(Integer value) { this.Width = value; return this; }
        public String getDataType() { return DataType; }
        public CustomFieldConfigData setDataType(String value) { this.DataType = value; return this; }
        public String getDefaultValue() { return DefaultValue; }
        public CustomFieldConfigData setDefaultValue(String value) { this.DefaultValue = value; return this; }
        public Boolean getIsMandatory() { return IsMandatory; }
        public CustomFieldConfigData setIsMandatory(Boolean value) { this.IsMandatory = value; return this; }
        public String getMandatoryErrorMessage() { return MandatoryErrorMessage; }
        public CustomFieldConfigData setMandatoryErrorMessage(String value) { this.MandatoryErrorMessage = value; return this; }
        public Integer getMaxLength() { return MaxLength; }
        public CustomFieldConfigData setMaxLength(Integer value) { this.MaxLength = value; return this; }
        public Boolean isMultipleLineText() { return MultipleLineText; }
        public CustomFieldConfigData setMultipleLineText(Boolean value) { this.MultipleLineText = value; return this; }
        public String getRegEx() { return RegEx; }
        public CustomFieldConfigData setRegEx(String value) { this.RegEx = value; return this; }
        public String getRegExErrorMessage() { return RegExErrorMessage; }
        public CustomFieldConfigData setRegExErrorMessage(String value) { this.RegExErrorMessage = value; return this; }
        public ArrayList<CustomFieldValueResponse> getValues() { return Values; }
        public CustomFieldConfigData setValues(ArrayList<CustomFieldValueResponse> value) { this.Values = value; return this; }
    }

    public static class CustomFieldValueResponse
    {
        public String Value = null;
        
        public String getValue() { return Value; }
        public CustomFieldValueResponse setValue(String value) { this.Value = value; return this; }
    }

    public static class BookedCompany
    {
        public UUID Id = null;
        public String Name = null;
        public Uri LogoType = null;
        public String Category = null;
        public String Street1 = null;
        public String Street2 = null;
        public String ZipCode = null;
        public String City = null;
        public String CountryId = null;
        public String Longitude = null;
        public String Latitude = null;
        public String Phone = null;
        public String Email = null;
        public String HomePage = null;
        public String SitePath = null;
        public Boolean IsFavorite = null;
        public Integer PaymentProviderId = null;
        
        public UUID getId() { return Id; }
        public BookedCompany setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookedCompany setName(String value) { this.Name = value; return this; }
        public Uri getLogoType() { return LogoType; }
        public BookedCompany setLogoType(Uri value) { this.LogoType = value; return this; }
        public String getCategory() { return Category; }
        public BookedCompany setCategory(String value) { this.Category = value; return this; }
        public String getStreet1() { return Street1; }
        public BookedCompany setStreet1(String value) { this.Street1 = value; return this; }
        public String getStreet2() { return Street2; }
        public BookedCompany setStreet2(String value) { this.Street2 = value; return this; }
        public String getZipCode() { return ZipCode; }
        public BookedCompany setZipCode(String value) { this.ZipCode = value; return this; }
        public String getCity() { return City; }
        public BookedCompany setCity(String value) { this.City = value; return this; }
        public String getCountryId() { return CountryId; }
        public BookedCompany setCountryId(String value) { this.CountryId = value; return this; }
        public String getLongitude() { return Longitude; }
        public BookedCompany setLongitude(String value) { this.Longitude = value; return this; }
        public String getLatitude() { return Latitude; }
        public BookedCompany setLatitude(String value) { this.Latitude = value; return this; }
        public String getPhone() { return Phone; }
        public BookedCompany setPhone(String value) { this.Phone = value; return this; }
        public String getEmail() { return Email; }
        public BookedCompany setEmail(String value) { this.Email = value; return this; }
        public String getHomePage() { return HomePage; }
        public BookedCompany setHomePage(String value) { this.HomePage = value; return this; }
        public String getSitePath() { return SitePath; }
        public BookedCompany setSitePath(String value) { this.SitePath = value; return this; }
        public Boolean getIsFavorite() { return IsFavorite; }
        public BookedCompany setIsFavorite(Boolean value) { this.IsFavorite = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public BookedCompany setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
    }

    public static class BookedQuantity
    {
        /**
        * The quantity Id
        */
        @ApiMember(Description="The quantity Id")
        public Integer Id = null;

        /**
        * The quantity for booked on this price category
        */
        @ApiMember(Description="The quantity for booked on this price category")
        public Integer Quantity = null;

        /**
        * The price
        */
        @ApiMember(Description="The price")
        public Double Price = null;

        /**
        * The price bofore rebate codes
        */
        @ApiMember(Description="The price bofore rebate codes")
        public Double PriceBeforeRebate = null;

        /**
        * The price currency
        */
        @ApiMember(Description="The price currency")
        public String CurrencyId = null;

        /**
        * The price sign
        */
        @ApiMember(Description="The price sign")
        public String PriceSign = null;

        /**
        * The price category
        */
        @ApiMember(Description="The price category")
        public String Category = null;

        /**
        * The price VAT in percent
        */
        @ApiMember(Description="The price VAT in percent")
        public BigDecimal VAT = null;

        /**
        * The price text to display
        */
        @ApiMember(Description="The price text to display")
        public String PriceText = null;

        /**
        * If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
        */
        @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")
        public Boolean OccupiesSpot = null;
        
        public Integer getId() { return Id; }
        public BookedQuantity setId(Integer value) { this.Id = value; return this; }
        public Integer getQuantity() { return Quantity; }
        public BookedQuantity setQuantity(Integer value) { this.Quantity = value; return this; }
        public Double getPrice() { return Price; }
        public BookedQuantity setPrice(Double value) { this.Price = value; return this; }
        public Double getPriceBeforeRebate() { return PriceBeforeRebate; }
        public BookedQuantity setPriceBeforeRebate(Double value) { this.PriceBeforeRebate = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public BookedQuantity setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public String getPriceSign() { return PriceSign; }
        public BookedQuantity setPriceSign(String value) { this.PriceSign = value; return this; }
        public String getCategory() { return Category; }
        public BookedQuantity setCategory(String value) { this.Category = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public BookedQuantity setVat(BigDecimal value) { this.VAT = value; return this; }
        public String getPriceText() { return PriceText; }
        public BookedQuantity setPriceText(String value) { this.PriceText = value; return this; }
        public Boolean isOccupiesSpot() { return OccupiesSpot; }
        public BookedQuantity setOccupiesSpot(Boolean value) { this.OccupiesSpot = value; return this; }
    }

    public static class ServiceInfoResponse
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        public Uri ImageUrl = null;
        public Integer LengthInMinutes = null;
        public Integer MaxNumberOfSpotsPerBooking = null;
        public GroupBookingSettings GroupBooking = null;
        public MultipleResourceSettings MultipleResource = null;
        public Boolean IsGroupBooking = null;
        public Boolean IsPaymentEnabled = null;
        
        public Integer getId() { return Id; }
        public ServiceInfoResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ServiceInfoResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public ServiceInfoResponse setDescription(String value) { this.Description = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public ServiceInfoResponse setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Integer getLengthInMinutes() { return LengthInMinutes; }
        public ServiceInfoResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; }
        public Integer getMaxNumberOfSpotsPerBooking() { return MaxNumberOfSpotsPerBooking; }
        public ServiceInfoResponse setMaxNumberOfSpotsPerBooking(Integer value) { this.MaxNumberOfSpotsPerBooking = value; return this; }
        public GroupBookingSettings getGroupBooking() { return GroupBooking; }
        public ServiceInfoResponse setGroupBooking(GroupBookingSettings value) { this.GroupBooking = value; return this; }
        public MultipleResourceSettings getMultipleResource() { return MultipleResource; }
        public ServiceInfoResponse setMultipleResource(MultipleResourceSettings value) { this.MultipleResource = value; return this; }
        public Boolean getIsGroupBooking() { return IsGroupBooking; }
        public ServiceInfoResponse setIsGroupBooking(Boolean value) { this.IsGroupBooking = value; return this; }
        public Boolean getIsPaymentEnabled() { return IsPaymentEnabled; }
        public ServiceInfoResponse setIsPaymentEnabled(Boolean value) { this.IsPaymentEnabled = value; return this; }
    }

    public static class GroupBookingSettings
    {
        public Boolean Active = null;
        public Integer Min = null;
        public Integer Max = null;
        
        public Boolean isActive() { return Active; }
        public GroupBookingSettings setActive(Boolean value) { this.Active = value; return this; }
        public Integer getMin() { return Min; }
        public GroupBookingSettings setMin(Integer value) { this.Min = value; return this; }
        public Integer getMax() { return Max; }
        public GroupBookingSettings setMax(Integer value) { this.Max = value; return this; }
    }

    public static class MultipleResourceSettings
    {
        public Boolean Active = null;
        public Integer Min = null;
        public Integer Max = null;
        
        public Boolean isActive() { return Active; }
        public MultipleResourceSettings setActive(Boolean value) { this.Active = value; return this; }
        public Integer getMin() { return Min; }
        public MultipleResourceSettings setMin(Integer value) { this.Min = value; return this; }
        public Integer getMax() { return Max; }
        public MultipleResourceSettings setMax(Integer value) { this.Max = value; return this; }
    }

    public static class BookingLogQueryResponse
    {
        /**
        * The booking log id
        */
        @ApiMember(Description="The booking log id")
        public Integer Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The type of event
        */
        @ApiMember(Description="The type of event")
        public Integer EventTypeId = null;

        /**
        * The type of event
        */
        @ApiMember(Description="The type of event")
        public BookingLogEventTypeResponse EventType = null;

        /**
        * Comments that could be added to the event log item
        */
        @ApiMember(Description="Comments that could be added to the event log item")
        public String Comments = null;

        /**
        * The user created the event
        */
        @ApiMember(Description="The user created the event")
        public String UserName = null;

        /**
        * Then date when the event occured
        */
        @ApiMember(Description="Then date when the event occured")
        public Date Created = null;
        
        public Integer getId() { return Id; }
        public BookingLogQueryResponse setId(Integer value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingLogQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getEventTypeId() { return EventTypeId; }
        public BookingLogQueryResponse setEventTypeId(Integer value) { this.EventTypeId = value; return this; }
        public BookingLogEventTypeResponse getEventType() { return EventType; }
        public BookingLogQueryResponse setEventType(BookingLogEventTypeResponse value) { this.EventType = value; return this; }
        public String getComments() { return Comments; }
        public BookingLogQueryResponse setComments(String value) { this.Comments = value; return this; }
        public String getUserName() { return UserName; }
        public BookingLogQueryResponse setUserName(String value) { this.UserName = value; return this; }
        public Date getCreated() { return Created; }
        public BookingLogQueryResponse setCreated(Date value) { this.Created = value; return this; }
    }

    public static class BookingLogEventTypeResponse
    {
        /**
        * The event type id
        */
        @ApiMember(Description="The event type id")
        public Integer Id = null;

        /**
        * The event type name
        */
        @ApiMember(Description="The event type name")
        public String Name = null;

        /**
        * The event type description
        */
        @ApiMember(Description="The event type description")
        public String Description = null;
        
        public Integer getId() { return Id; }
        public BookingLogEventTypeResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public BookingLogEventTypeResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public BookingLogEventTypeResponse setDescription(String value) { this.Description = value; return this; }
    }

    public static class BookingPaymentLogQueryResponse
    {
        /**
        * The booking payment log id
        */
        @ApiMember(Description="The booking payment log id")
        public Integer Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The payment reference id
        */
        @ApiMember(Description="The payment reference id")
        public String PaymentReferenceId = null;

        /**
        * The payment order item reference id
        */
        @ApiMember(Description="The payment order item reference id")
        public String OrderItemReferenceId = null;

        /**
        * The payment reference id
        */
        @ApiMember(Description="The payment reference id")
        public Integer PaymentProviderId = null;

        /**
        * The payment amount
        */
        @ApiMember(Description="The payment amount")
        public Double Amount = null;

        /**
        * The payment VAT in percent
        */
        @ApiMember(Description="The payment VAT in percent")
        public BigDecimal VAT = null;

        /**
        * The payment amount that is credited
        */
        @ApiMember(Description="The payment amount that is credited")
        public Double AmountCredited = null;

        /**
        * The payment currency id
        */
        @ApiMember(Description="The payment currency id")
        public String CurrencyId = null;

        /**
        * The payment currency info
        */
        @ApiMember(Description="The payment currency info")
        public CurrencyInfoResponse CurrencyInfo = null;

        /**
        * Comments that could be added to the event log item
        */
        @ApiMember(Description="Comments that could be added to the event log item")
        public String Comments = null;

        /**
        * The date when the payment items was created
        */
        @ApiMember(Description="The date when the payment items was created")
        public Date Created = null;

        /**
        * The date when the payment items was update
        */
        @ApiMember(Description="The date when the payment items was update")
        public Date Updated = null;
        
        public Integer getId() { return Id; }
        public BookingPaymentLogQueryResponse setId(Integer value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingPaymentLogQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public String getPaymentReferenceId() { return PaymentReferenceId; }
        public BookingPaymentLogQueryResponse setPaymentReferenceId(String value) { this.PaymentReferenceId = value; return this; }
        public String getOrderItemReferenceId() { return OrderItemReferenceId; }
        public BookingPaymentLogQueryResponse setOrderItemReferenceId(String value) { this.OrderItemReferenceId = value; return this; }
        public Integer getPaymentProviderId() { return PaymentProviderId; }
        public BookingPaymentLogQueryResponse setPaymentProviderId(Integer value) { this.PaymentProviderId = value; return this; }
        public Double getAmount() { return Amount; }
        public BookingPaymentLogQueryResponse setAmount(Double value) { this.Amount = value; return this; }
        public BigDecimal getVat() { return VAT; }
        public BookingPaymentLogQueryResponse setVat(BigDecimal value) { this.VAT = value; return this; }
        public Double getAmountCredited() { return AmountCredited; }
        public BookingPaymentLogQueryResponse setAmountCredited(Double value) { this.AmountCredited = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public BookingPaymentLogQueryResponse setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public CurrencyInfoResponse getCurrencyInfo() { return CurrencyInfo; }
        public BookingPaymentLogQueryResponse setCurrencyInfo(CurrencyInfoResponse value) { this.CurrencyInfo = value; return this; }
        public String getComments() { return Comments; }
        public BookingPaymentLogQueryResponse setComments(String value) { this.Comments = value; return this; }
        public Date getCreated() { return Created; }
        public BookingPaymentLogQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public BookingPaymentLogQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
    }

    public static class CurrencyInfoResponse
    {
        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String Id = null;

        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String Name = null;

        /**
        * The currency id
        */
        @ApiMember(Description="The currency id")
        public String CurrencySign = null;
        
        public String getId() { return Id; }
        public CurrencyInfoResponse setId(String value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public CurrencyInfoResponse setName(String value) { this.Name = value; return this; }
        public String getCurrencySign() { return CurrencySign; }
        public CurrencyInfoResponse setCurrencySign(String value) { this.CurrencySign = value; return this; }
    }

    public static class BookingCheckoutQueryResponse
    {
        /**
        * The checkout id
        */
        @ApiMember(Description="The checkout id")
        public UUID Id = null;

        /**
        * The booking id
        */
        @ApiMember(Description="The booking id")
        public Integer BookingId = null;

        /**
        * The purchase id
        */
        @ApiMember(Description="The purchase id")
        public Integer PurchaseId = null;

        /**
        * The payment checkout expiration datetime
        */
        @ApiMember(Description="The payment checkout expiration datetime")
        public Date ExpirationTime = null;

        /**
        * The payment snippet code
        */
        @ApiMember(Description="The payment snippet code")
        public String Snippet = null;

        /**
        * The payment status
        */
        @ApiMember(Description="The payment status")
        public String Status = null;

        /**
        * Log message
        */
        @ApiMember(Description="Log message")
        public String Message = null;

        /**
        * When the checkout log item was created
        */
        @ApiMember(Description="When the checkout log item was created")
        public Date Created = null;

        /**
        * When the checkout log item was updated
        */
        @ApiMember(Description="When the checkout log item was updated")
        public Date Updated = null;
        
        public UUID getId() { return Id; }
        public BookingCheckoutQueryResponse setId(UUID value) { this.Id = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingCheckoutQueryResponse setBookingId(Integer value) { this.BookingId = value; return this; }
        public Integer getPurchaseId() { return PurchaseId; }
        public BookingCheckoutQueryResponse setPurchaseId(Integer value) { this.PurchaseId = value; return this; }
        public Date getExpirationTime() { return ExpirationTime; }
        public BookingCheckoutQueryResponse setExpirationTime(Date value) { this.ExpirationTime = value; return this; }
        public String getSnippet() { return Snippet; }
        public BookingCheckoutQueryResponse setSnippet(String value) { this.Snippet = value; return this; }
        public String getStatus() { return Status; }
        public BookingCheckoutQueryResponse setStatus(String value) { this.Status = value; return this; }
        public String getMessage() { return Message; }
        public BookingCheckoutQueryResponse setMessage(String value) { this.Message = value; return this; }
        public Date getCreated() { return Created; }
        public BookingCheckoutQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public BookingCheckoutQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
    }

    public static class ExternalReferenceResponse
    {
        public UUID CompanyId = null;
        public UUID Id = null;
        public UUID OwnerId = null;
        public String ReferenceType = null;
        public String ExternalData = null;
        public String CreatedBy = null;
        public Date Updated = null;
        public Date Created = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public ExternalReferenceResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getId() { return Id; }
        public ExternalReferenceResponse setId(UUID value) { this.Id = value; return this; }
        public UUID getOwnerId() { return OwnerId; }
        public ExternalReferenceResponse setOwnerId(UUID value) { this.OwnerId = value; return this; }
        public String getReferenceType() { return ReferenceType; }
        public ExternalReferenceResponse setReferenceType(String value) { this.ReferenceType = value; return this; }
        public String getExternalData() { return ExternalData; }
        public ExternalReferenceResponse setExternalData(String value) { this.ExternalData = value; return this; }
        public String getCreatedBy() { return CreatedBy; }
        public ExternalReferenceResponse setCreatedBy(String value) { this.CreatedBy = value; return this; }
        public Date getUpdated() { return Updated; }
        public ExternalReferenceResponse setUpdated(Date value) { this.Updated = value; return this; }
        public Date getCreated() { return Created; }
        public ExternalReferenceResponse setCreated(Date value) { this.Created = value; return this; }
    }

    public static class BookingCalendarExportStatus
    {
        public String CalendarId = null;
        public Integer BookingId = null;
        public Boolean Synced = null;
        
        public String getCalendarId() { return CalendarId; }
        public BookingCalendarExportStatus setCalendarId(String value) { this.CalendarId = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public BookingCalendarExportStatus setBookingId(Integer value) { this.BookingId = value; return this; }
        public Boolean isSynced() { return Synced; }
        public BookingCalendarExportStatus setSynced(Boolean value) { this.Synced = value; return this; }
    }

    @DataContract
    public static class QueryResponse<AccessKeyTypeResponse>
    {
        @DataMember(Order=1)
        public Integer Offset = null;

        @DataMember(Order=2)
        public Integer Total = null;

        @DataMember(Order=3)
        public ArrayList<AccessKeyTypeResponse> Results = null;

        @DataMember(Order=4)
        public HashMap<String,String> Meta = null;

        @DataMember(Order=5)
        public ResponseStatus ResponseStatus = null;
        
        public Integer getOffset() { return Offset; }
        public QueryResponse<AccessKeyTypeResponse> setOffset(Integer value) { this.Offset = value; return this; }
        public Integer getTotal() { return Total; }
        public QueryResponse<AccessKeyTypeResponse> setTotal(Integer value) { this.Total = value; return this; }
        public ArrayList<AccessKeyTypeResponse> getResults() { return Results; }
        public QueryResponse<AccessKeyTypeResponse> setResults(ArrayList<AccessKeyTypeResponse> value) { this.Results = value; return this; }
        public HashMap<String,String> getMeta() { return Meta; }
        public QueryResponse<AccessKeyTypeResponse> setMeta(HashMap<String,String> value) { this.Meta = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public QueryResponse<AccessKeyTypeResponse> setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class AccessKeyTypeResponse
    {
        public Integer Id = null;
        public String KeyType = null;
        public String Description = null;
        
        public Integer getId() { return Id; }
        public AccessKeyTypeResponse setId(Integer value) { this.Id = value; return this; }
        public String getKeyType() { return KeyType; }
        public AccessKeyTypeResponse setKeyType(String value) { this.KeyType = value; return this; }
        public String getDescription() { return Description; }
        public AccessKeyTypeResponse setDescription(String value) { this.Description = value; return this; }
    }

}

Java BookingQuery DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /bookings HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"Status":"Booked","StatusId":0,"StatusName":"String","StatusInfo":{"Id":0,"Name":"String","Description":"String","Icon":"String","Color":"String"},"SendEmailReminder":false,"SendSmsReminder":false,"SendSmsConfirmation":false,"SendEmailConfirmation":false,"LastTimeToUnBook":"0001-01-01T00:00:00","CustomFields":[{"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"}]}],"CustomFieldValues":[{"Id":0,"Column":"String","Name":"String","Description":"String","Value":"String","DataType":"String"}],"BookedResourceTypes":[{"Id":0,"Name":"String","Resources":[{"Id":0,"Name":"String","Color":"String","Email":"String","MobilePhone":"String","AccessGroup":"String","EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false}]}],"Company":{"Name":"String","Category":"String","Street1":"String","Street2":"String","ZipCode":"String","City":"String","CountryId":"String","Longitude":"String","Latitude":"String","Phone":"String","Email":"String","HomePage":"String","SitePath":"String","IsFavorite":false,"PaymentProviderId":0},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String","ImageUrl":"String","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"},"Quantities":[{"Id":0,"Quantity":0,"Price":0,"PriceBeforeRebate":0,"CurrencyId":"String","PriceSign":"String","Category":"String","VAT":0,"PriceText":"String","OccupiesSpot":false}],"Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false},"PaymentExpiration":"0001-01-01T00:00:00","Log":[{"Id":0,"BookingId":0,"EventTypeId":0,"EventType":{"Id":0,"Name":"String","Description":"String"},"Comments":"String","UserName":"String"}],"PaymentLog":[{"Id":0,"BookingId":0,"PaymentReferenceId":"String","OrderItemReferenceId":"String","PaymentProviderId":0,"Amount":0,"VAT":0,"AmountCredited":0,"CurrencyId":"String","CurrencyInfo":{"Id":"String","Name":"String","CurrencySign":"String"},"Comments":"String"}],"CheckoutLog":[{"BookingId":0,"PurchaseId":0,"ExpirationTime":"0001-01-01T00:00:00","Snippet":"String","Status":"String","Message":"String"}],"ExternalReference":[{"ReferenceType":"String","ExternalData":"String","CreatedBy":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"CalendarExportStatus":{"CalendarId":"String","BookingId":0,"Synced":false},"LengthInMinutes":0,"BookedBy":"String","BookedComments":"String","UnbookedComments":"String","CommentsToCustomer":"String","UnbookedOn":"0001-01-01T00:00:00","CancellationCode":"String","RatingCode":"String"}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}