BokaMera.API.Host

<back to all web services

RecuringScheduleQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, bookingsupplier-administrator-read, superadmin
The following routes are available for this service:
GET/schedules/recurringFind recurring schedules for a company
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;

public class dtos
{

    @ValidateRequest(Validator="IsAuthenticated")
    public static class RecuringScheduleQuery extends QueryDb<RecurringSchedule, RecurringScheduleQueryResponse>
    {
        /**
        * Enter the company you want to see news for, if blank and you are an admin, your company id will be used
        */
        @ApiMember(Description="Enter the company you want to see news for, if blank and you are an admin, your company id will be used", ParameterType="path")
        public UUID CompanyId = null;

        /**
        * Enter the From Date you want to see news from, only allowed if admin
        */
        @ApiMember(DataType="dateTime", Description="Enter the From Date you want to see news from, only allowed if admin", ParameterType="query")
        public Date ValidFrom = null;

        /**
        * Enter the To Date you want to see news to, only allowed if admin
        */
        @ApiMember(DataType="dateTime", Description="Enter the To Date you want to see news to, only allowed if admin", ParameterType="query")
        public Date ValidTo = null;

        /**
        * If you want to include the connected days for the schedule
        */
        @ApiMember(DataType="bool", Description="If you want to include the connected days for the schedule", ParameterType="query")
        public Boolean IncludeRecurringDays = null;

        /**
        * If you want to include the connected resources for the schedule
        */
        @ApiMember(DataType="bool", Description="If you want to include the connected resources for the schedule", ParameterType="query")
        public Boolean IncludeConnectedResources = null;

        /**
        * If you want to include the connected services for the schedule
        */
        @ApiMember(DataType="bool", Description="If you want to include the connected services for the schedule", ParameterType="query")
        public Boolean IncludeConnectedServices = null;

        /**
        * If you want to include the exceptions for the schedule
        */
        @ApiMember(DataType="bool", Description="If you want to include the exceptions for the schedule", ParameterType="query")
        public Boolean IncludeExceptions = null;

        /**
        * Use this parameter if you want to only show active news
        */
        @ApiMember(DataType="boolean", Description="Use this parameter if you want to only show active news")
        public Boolean Active = null;

        /**
        * If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week).
        */
        @ApiMember(DataType="bool", Description="If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week).", ParameterType="query")
        public Boolean IncludeScheduleDates = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RecuringScheduleQuery setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Date getValidFrom() { return ValidFrom; }
        public RecuringScheduleQuery setValidFrom(Date value) { this.ValidFrom = value; return this; }
        public Date getValidTo() { return ValidTo; }
        public RecuringScheduleQuery setValidTo(Date value) { this.ValidTo = value; return this; }
        public Boolean isIncludeRecurringDays() { return IncludeRecurringDays; }
        public RecuringScheduleQuery setIncludeRecurringDays(Boolean value) { this.IncludeRecurringDays = value; return this; }
        public Boolean isIncludeConnectedResources() { return IncludeConnectedResources; }
        public RecuringScheduleQuery setIncludeConnectedResources(Boolean value) { this.IncludeConnectedResources = value; return this; }
        public Boolean isIncludeConnectedServices() { return IncludeConnectedServices; }
        public RecuringScheduleQuery setIncludeConnectedServices(Boolean value) { this.IncludeConnectedServices = value; return this; }
        public Boolean isIncludeExceptions() { return IncludeExceptions; }
        public RecuringScheduleQuery setIncludeExceptions(Boolean value) { this.IncludeExceptions = value; return this; }
        public Boolean isActive() { return Active; }
        public RecuringScheduleQuery setActive(Boolean value) { this.Active = value; return this; }
        public Boolean isIncludeScheduleDates() { return IncludeScheduleDates; }
        public RecuringScheduleQuery setIncludeScheduleDates(Boolean value) { this.IncludeScheduleDates = 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 RecurringSchedule extends BaseModel implements ISchedule, IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public ScheduleType Type = null;

        @Ignore()
        public IList<RecurringScheduleDate> Dates = null;

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

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

        public ArrayList<RecurringScheduleResourceRelation> RecurringScheduleResourceRelation = null;
        public ArrayList<RecurringScheduleDate> RecurringScheduleDates = null;
        public ArrayList<RecurringScheduleDayOfWeekRelation> RecurringScheduleDayOfWeekRelation = null;
        public ArrayList<ServiceRecurringScheduleRelation> ServiceRecurringScheduleRelation = null;
        public ArrayList<RecurringScheduleException> RecurringScheduleExceptions = null;
        @Ignore()
        public IList<IScheduleException> Exceptions = null;

        @Ignore()
        public Boolean IsRecurringByDayOfWeek = null;

        @Ignore()
        public Boolean IsRecurringByDates = null;

        @Ignore()
        public Boolean IsResourceSpecific = null;

        @Required()
        public UUID CompanyId = null;

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

        @Required()
        public String Description = null;

        @Required()
        public Integer TimeInterval = null;

        @Required()
        public TimeSpan StartTime = null;

        @Required()
        public TimeSpan EndTime = null;

        @Required()
        public Integer NumberOfScheduleDays = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public Boolean EnableBookingUntilClosingTime = null;

        @Required()
        public Date ValidFrom = null;

        @Required()
        public Date ValidTo = null;

        public Date ModifiedDate = null;
        @Required()
        public Boolean Active = null;
        
        public ScheduleType getType() { return Type; }
        public RecurringSchedule setType(ScheduleType value) { this.Type = value; return this; }
        public IList<RecurringScheduleDate> getDates() { return Dates; }
        public RecurringSchedule setDates(IList<RecurringScheduleDate> value) { this.Dates = value; return this; }
        public IList<Resource> getResources() { return Resources; }
        public RecurringSchedule setResources(IList<Resource> value) { this.Resources = value; return this; }
        public IList<Service> getServices() { return Services; }
        public RecurringSchedule setServices(IList<Service> value) { this.Services = value; return this; }
        public ArrayList<RecurringScheduleResourceRelation> getRecurringScheduleResourceRelation() { return RecurringScheduleResourceRelation; }
        public RecurringSchedule setRecurringScheduleResourceRelation(ArrayList<RecurringScheduleResourceRelation> value) { this.RecurringScheduleResourceRelation = value; return this; }
        public ArrayList<RecurringScheduleDate> getRecurringScheduleDates() { return RecurringScheduleDates; }
        public RecurringSchedule setRecurringScheduleDates(ArrayList<RecurringScheduleDate> value) { this.RecurringScheduleDates = value; return this; }
        public ArrayList<RecurringScheduleDayOfWeekRelation> getRecurringScheduleDayOfWeekRelation() { return RecurringScheduleDayOfWeekRelation; }
        public RecurringSchedule setRecurringScheduleDayOfWeekRelation(ArrayList<RecurringScheduleDayOfWeekRelation> value) { this.RecurringScheduleDayOfWeekRelation = value; return this; }
        public ArrayList<ServiceRecurringScheduleRelation> getServiceRecurringScheduleRelation() { return ServiceRecurringScheduleRelation; }
        public RecurringSchedule setServiceRecurringScheduleRelation(ArrayList<ServiceRecurringScheduleRelation> value) { this.ServiceRecurringScheduleRelation = value; return this; }
        public ArrayList<RecurringScheduleException> getRecurringScheduleExceptions() { return RecurringScheduleExceptions; }
        public RecurringSchedule setRecurringScheduleExceptions(ArrayList<RecurringScheduleException> value) { this.RecurringScheduleExceptions = value; return this; }
        public IList<IScheduleException> getExceptions() { return Exceptions; }
        public RecurringSchedule setExceptions(IList<IScheduleException> value) { this.Exceptions = value; return this; }
        public Boolean getIsRecurringByDayOfWeek() { return IsRecurringByDayOfWeek; }
        public RecurringSchedule setIsRecurringByDayOfWeek(Boolean value) { this.IsRecurringByDayOfWeek = value; return this; }
        public Boolean getIsRecurringByDates() { return IsRecurringByDates; }
        public RecurringSchedule setIsRecurringByDates(Boolean value) { this.IsRecurringByDates = value; return this; }
        public Boolean getIsResourceSpecific() { return IsResourceSpecific; }
        public RecurringSchedule setIsResourceSpecific(Boolean value) { this.IsResourceSpecific = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RecurringSchedule setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public RecurringSchedule setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public RecurringSchedule setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public RecurringSchedule setDescription(String value) { this.Description = value; return this; }
        public Integer getTimeInterval() { return TimeInterval; }
        public RecurringSchedule setTimeInterval(Integer value) { this.TimeInterval = value; return this; }
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringSchedule setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringSchedule setEndTime(TimeSpan value) { this.EndTime = value; return this; }
        public Integer getNumberOfScheduleDays() { return NumberOfScheduleDays; }
        public RecurringSchedule setNumberOfScheduleDays(Integer value) { this.NumberOfScheduleDays = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public RecurringSchedule setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public RecurringSchedule setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Boolean isEnableBookingUntilClosingTime() { return EnableBookingUntilClosingTime; }
        public RecurringSchedule setEnableBookingUntilClosingTime(Boolean value) { this.EnableBookingUntilClosingTime = value; return this; }
        public Date getValidFrom() { return ValidFrom; }
        public RecurringSchedule setValidFrom(Date value) { this.ValidFrom = value; return this; }
        public Date getValidTo() { return ValidTo; }
        public RecurringSchedule setValidTo(Date value) { this.ValidTo = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RecurringSchedule setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public Boolean isActive() { return Active; }
        public RecurringSchedule setActive(Boolean value) { this.Active = value; return this; }
    }

    public static class BaseModel
    {
        
    }

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

    public static class RecurringScheduleDate extends BaseModel implements IInterval
    {
        @Ignore()
        public Date From = null;

        @Ignore()
        public Date To = null;

        @Required()
        public UUID CompanyId = null;

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

        @Required()
        public Date Date = null;

        @Required()
        public TimeSpan StartTime = null;

        @Required()
        public TimeSpan EndTime = null;

        public Date ModifiedDate = null;
        
        public Date getFrom() { return From; }
        public RecurringScheduleDate setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public RecurringScheduleDate setTo(Date value) { this.To = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RecurringScheduleDate setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public RecurringScheduleDate setId(Integer value) { this.Id = value; return this; }
        public Integer getRecurringScheduleId() { return RecurringScheduleId; }
        public RecurringScheduleDate setRecurringScheduleId(Integer value) { this.RecurringScheduleId = value; return this; }
        public Date getDate() { return Date; }
        public RecurringScheduleDate setDate(Date value) { this.Date = value; return this; }
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringScheduleDate setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringScheduleDate setEndTime(TimeSpan value) { this.EndTime = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RecurringScheduleDate 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 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 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 MinNumberOfSpotsPerBooking = 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 getMinNumberOfSpotsPerBooking() { return MinNumberOfSpotsPerBooking; }
        public Service setMinNumberOfSpotsPerBooking(Integer value) { this.MinNumberOfSpotsPerBooking = 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 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 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 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 PayableEntity
    {
        @References(RebateCodeType.class)
        public Integer RebateCodeTypeId = null;

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

        public RebateCodeStatus RebateCodeStatusInfo = null;
        @Ignore()
        public Article Article = 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 String ServicesNames = null;

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

        @Ignore()
        public RebateCodeStatus RebateCodeStatus = null;

        @Ignore()
        public RebateCodeType RebateCodeType = null;

        @Ignore()
        public ArrayList<RebateCodeTransaction> Transactions = null;

        @Ignore()
        public Double RemainingAmount = null;

        @Ignore()
        public Integer RemainingUsage = null;

        @Ignore()
        public Integer CurrentNumberOfUsesPerCustomer = null;

        @Ignore()
        public Boolean IsSpecificByDayOfWeek = null;

        @Ignore()
        public Boolean Active = null;

        @Ignore()
        public Boolean ActiveByStatus = null;

        @Ignore()
        public String RebateCodeCurrencySign = null;

        public Currency CurrencyInfo = null;
        @Ignore()
        public Boolean PaymentReceived = null;

        @Ignore()
        public String InternalReferenceId = 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 UpdatedDate = null;

        @Required()
        public TimeSpan FromTime = null;

        @Required()
        public TimeSpan ToTime = null;

        public Date ModifiedDate = null;
        public Integer Id = null;
        public Integer ArticleId = 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 RebateCodeStatus getRebateCodeStatusInfo() { return RebateCodeStatusInfo; }
        public RebateCode setRebateCodeStatusInfo(RebateCodeStatus value) { this.RebateCodeStatusInfo = value; return this; }
        public Article getArticle() { return Article; }
        public RebateCode setArticle(Article value) { this.Article = 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 String getServicesNames() { return ServicesNames; }
        public RebateCode setServicesNames(String value) { this.ServicesNames = value; return this; }
        public ArrayList<DaysOfWeek> getDaysOfWeek() { return DaysOfWeek; }
        public RebateCode setDaysOfWeek(ArrayList<DaysOfWeek> value) { this.DaysOfWeek = 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 ArrayList<RebateCodeTransaction> getTransactions() { return Transactions; }
        public RebateCode setTransactions(ArrayList<RebateCodeTransaction> value) { this.Transactions = value; return this; }
        public Double getRemainingAmount() { return RemainingAmount; }
        public RebateCode setRemainingAmount(Double value) { this.RemainingAmount = value; return this; }
        public Integer getRemainingUsage() { return RemainingUsage; }
        public RebateCode setRemainingUsage(Integer value) { this.RemainingUsage = 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 Boolean isActiveByStatus() { return ActiveByStatus; }
        public RebateCode setActiveByStatus(Boolean value) { this.ActiveByStatus = value; return this; }
        public String getRebateCodeCurrencySign() { return RebateCodeCurrencySign; }
        public RebateCode setRebateCodeCurrencySign(String value) { this.RebateCodeCurrencySign = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public RebateCode setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public Boolean isPaymentReceived() { return PaymentReceived; }
        public RebateCode setPaymentReceived(Boolean value) { this.PaymentReceived = value; return this; }
        public String getInternalReferenceId() { return InternalReferenceId; }
        public RebateCode setInternalReferenceId(String value) { this.InternalReferenceId = 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 getUpdatedDate() { return UpdatedDate; }
        public RebateCode setUpdatedDate(Date value) { this.UpdatedDate = 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 Integer getArticleId() { return ArticleId; }
        public RebateCode setArticleId(Integer value) { this.ArticleId = value; return this; }
    }

    public static class PayableEntity extends BaseModel implements IPayableEntity
    {
        @Ignore()
        public IDbConnectionFactory DbFactory = null;

        @Ignore()
        public IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> QvicklyPaymentManager = null;

        @Ignore()
        public IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse> Payson2PaymentManager = null;

        @Ignore()
        public IPaysonPaymentCheckout1 PaysonPaymentCheckout1 = null;

        @Ignore()
        public ILogger<PayableEntity> Logger = null;

        @Ignore()
        public String InternalReferenceId = null;

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

        public UUID CompanyId = null;
        public BigDecimal PriceVat = null;
        @References(Currency.class)
        public String CurrencyId = null;

        @Ignore()
        public Customer Customer = null;

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

        @Ignore()
        public Company Company = null;
        
        public IDbConnectionFactory getDbFactory() { return DbFactory; }
        public PayableEntity setDbFactory(IDbConnectionFactory value) { this.DbFactory = value; return this; }
        public IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> getQvicklyPaymentManager() { return QvicklyPaymentManager; }
        public PayableEntity setQvicklyPaymentManager(IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse> value) { this.QvicklyPaymentManager = value; return this; }
        public IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse> getPayson2PaymentManager() { return Payson2PaymentManager; }
        public PayableEntity setPayson2PaymentManager(IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse> value) { this.Payson2PaymentManager = value; return this; }
        public IPaysonPaymentCheckout1 getPaysonPaymentCheckout1() { return PaysonPaymentCheckout1; }
        public PayableEntity setPaysonPaymentCheckout1(IPaysonPaymentCheckout1 value) { this.PaysonPaymentCheckout1 = value; return this; }
        public ILogger<PayableEntity> getLogger() { return Logger; }
        public PayableEntity setLogger(ILogger<PayableEntity> value) { this.Logger = value; return this; }
        public String getInternalReferenceId() { return InternalReferenceId; }
        public PayableEntity setInternalReferenceId(String value) { this.InternalReferenceId = value; return this; }
        public ArrayList<PaymentLog> getPaymentLog() { return PaymentLog; }
        public PayableEntity setPaymentLog(ArrayList<PaymentLog> value) { this.PaymentLog = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public PayableEntity setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public BigDecimal getPriceVat() { return PriceVat; }
        public PayableEntity setPriceVat(BigDecimal value) { this.PriceVat = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public PayableEntity setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Customer getCustomer() { return Customer; }
        public PayableEntity setCustomer(Customer value) { this.Customer = value; return this; }
        public ArrayList<Customer> getCustomers() { return Customers; }
        public PayableEntity setCustomers(ArrayList<Customer> value) { this.Customers = value; return this; }
        public Company getCompany() { return Company; }
        public PayableEntity setCompany(Company value) { this.Company = value; return this; }
    }

    public static interface IDbConnectionFactory
    {
    }

    public static interface IBokameraPaymentManager<TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse>
    {
    }

    public static class InitCheckoutRequestBody
    {
        public Credentials credentials = null;
        public InitCheckoutData data = null;
        public String function = null;
        
        public Credentials getCredentials() { return credentials; }
        public InitCheckoutRequestBody setCredentials(Credentials value) { this.credentials = value; return this; }
        public InitCheckoutData getData() { return data; }
        public InitCheckoutRequestBody setData(InitCheckoutData value) { this.data = value; return this; }
        public String getFunction() { return function; }
        public InitCheckoutRequestBody setFunction(String value) { this.function = value; return this; }
    }

    public static class Credentials
    {
        public String hash = null;
        public String id = null;
        public String version = null;
        public String client = null;
        public ServerData serverdata = null;
        public String time = null;
        public String test = null;
        public String language = null;
        
        public String getHash() { return hash; }
        public Credentials setHash(String value) { this.hash = value; return this; }
        public String getId() { return id; }
        public Credentials setId(String value) { this.id = value; return this; }
        public String getVersion() { return version; }
        public Credentials setVersion(String value) { this.version = value; return this; }
        public String getClient() { return client; }
        public Credentials setClient(String value) { this.client = value; return this; }
        public ServerData getServerdata() { return serverdata; }
        public Credentials setServerdata(ServerData value) { this.serverdata = value; return this; }
        public String getTime() { return time; }
        public Credentials setTime(String value) { this.time = value; return this; }
        public String getTest() { return test; }
        public Credentials setTest(String value) { this.test = value; return this; }
        public String getLanguage() { return language; }
        public Credentials setLanguage(String value) { this.language = value; return this; }
    }

    public static class ServerData
    {
        public String HTTP_HOST = null;
        public String HTTP_CONNECTION = null;
        public String HTTP_CACHE_CONTROL = null;
        public String HTTP_ACCEPT = null;
        public String HTTP_USER_AGENT = null;
        public String HTTP_ACCEPT_ENCODING = null;
        public String HTTP_ACCEPT_LANGUAGE = null;
        public String PATH = null;
        public String SERVER_SOFTWARE = null;
        public String SERVER_NAME = null;
        public String SERVER_ADDR = null;
        public String SERVER_PORT = null;
        public String REMOTE_ADDR = null;
        public String REMOTE_PORT = null;
        public String GATEWAY_INTERFACE = null;
        public String SERVER_PROTOCOL = null;
        public String REQUEST_METHOD = null;
        public String QUERY_STRING = null;
        public String REQUEST_TIME = null;
        
        public String getHttpHost() { return HTTP_HOST; }
        public ServerData setHttpHost(String value) { this.HTTP_HOST = value; return this; }
        public String getHttpConnection() { return HTTP_CONNECTION; }
        public ServerData setHttpConnection(String value) { this.HTTP_CONNECTION = value; return this; }
        public String getHttpCacheControl() { return HTTP_CACHE_CONTROL; }
        public ServerData setHttpCacheControl(String value) { this.HTTP_CACHE_CONTROL = value; return this; }
        public String getHttpAccept() { return HTTP_ACCEPT; }
        public ServerData setHttpAccept(String value) { this.HTTP_ACCEPT = value; return this; }
        public String getHttpUserAgent() { return HTTP_USER_AGENT; }
        public ServerData setHttpUserAgent(String value) { this.HTTP_USER_AGENT = value; return this; }
        public String getHttpAcceptEncoding() { return HTTP_ACCEPT_ENCODING; }
        public ServerData setHttpAcceptEncoding(String value) { this.HTTP_ACCEPT_ENCODING = value; return this; }
        public String getHttpAcceptLanguage() { return HTTP_ACCEPT_LANGUAGE; }
        public ServerData setHttpAcceptLanguage(String value) { this.HTTP_ACCEPT_LANGUAGE = value; return this; }
        public String getPath() { return PATH; }
        public ServerData setPath(String value) { this.PATH = value; return this; }
        public String getServerSoftware() { return SERVER_SOFTWARE; }
        public ServerData setServerSoftware(String value) { this.SERVER_SOFTWARE = value; return this; }
        public String getServerName() { return SERVER_NAME; }
        public ServerData setServerName(String value) { this.SERVER_NAME = value; return this; }
        public String getServerAddr() { return SERVER_ADDR; }
        public ServerData setServerAddr(String value) { this.SERVER_ADDR = value; return this; }
        public String getServerPort() { return SERVER_PORT; }
        public ServerData setServerPort(String value) { this.SERVER_PORT = value; return this; }
        public String getRemoteAddr() { return REMOTE_ADDR; }
        public ServerData setRemoteAddr(String value) { this.REMOTE_ADDR = value; return this; }
        public String getRemotePort() { return REMOTE_PORT; }
        public ServerData setRemotePort(String value) { this.REMOTE_PORT = value; return this; }
        public String getGatewayInterface() { return GATEWAY_INTERFACE; }
        public ServerData setGatewayInterface(String value) { this.GATEWAY_INTERFACE = value; return this; }
        public String getServerProtocol() { return SERVER_PROTOCOL; }
        public ServerData setServerProtocol(String value) { this.SERVER_PROTOCOL = value; return this; }
        public String getRequestMethod() { return REQUEST_METHOD; }
        public ServerData setRequestMethod(String value) { this.REQUEST_METHOD = value; return this; }
        public String getQueryString() { return QUERY_STRING; }
        public ServerData setQueryString(String value) { this.QUERY_STRING = value; return this; }
        public String getRequestTime() { return REQUEST_TIME; }
        public ServerData setRequestTime(String value) { this.REQUEST_TIME = value; return this; }
    }

    public static class InitCheckoutData
    {
        public CheckoutData CheckoutData = null;
        public CheckoutPaymentData PaymentData = null;
        public PaymentInfo PaymentInfo = null;
        public ArrayList<QvicklyArticle> Articles = null;
        public Cart Cart = null;
        public QvicklyCustomer QvicklyCustomer = null;
        
        public CheckoutData getCheckoutData() { return CheckoutData; }
        public InitCheckoutData setCheckoutData(CheckoutData value) { this.CheckoutData = value; return this; }
        public CheckoutPaymentData getPaymentData() { return PaymentData; }
        public InitCheckoutData setPaymentData(CheckoutPaymentData value) { this.PaymentData = value; return this; }
        public PaymentInfo getPaymentInfo() { return PaymentInfo; }
        public InitCheckoutData setPaymentInfo(PaymentInfo value) { this.PaymentInfo = value; return this; }
        public ArrayList<QvicklyArticle> getArticles() { return Articles; }
        public InitCheckoutData setArticles(ArrayList<QvicklyArticle> value) { this.Articles = value; return this; }
        public Cart getCart() { return Cart; }
        public InitCheckoutData setCart(Cart value) { this.Cart = value; return this; }
        public QvicklyCustomer getQvicklyCustomer() { return QvicklyCustomer; }
        public InitCheckoutData setQvicklyCustomer(QvicklyCustomer value) { this.QvicklyCustomer = value; return this; }
    }

    public static class CheckoutData
    {
        public Uri terms = null;
        public Uri privacyPolicy = null;
        public String redirectOnSuccess = null;
        
        public Uri getTerms() { return terms; }
        public CheckoutData setTerms(Uri value) { this.terms = value; return this; }
        public Uri getPrivacyPolicy() { return privacyPolicy; }
        public CheckoutData setPrivacyPolicy(Uri value) { this.privacyPolicy = value; return this; }
        public String getRedirectOnSuccess() { return redirectOnSuccess; }
        public CheckoutData setRedirectOnSuccess(String value) { this.redirectOnSuccess = value; return this; }
    }

    public static class CheckoutPaymentData
    {
        public String currency = null;
        public String language = null;
        public String country = null;
        public String autoactivate = null;
        public String orderid = null;
        public String returnmethod = null;
        public Uri accepturl = null;
        public Uri cancelurl = null;
        public Uri callbackurl = null;
        
        public String getCurrency() { return currency; }
        public CheckoutPaymentData setCurrency(String value) { this.currency = value; return this; }
        public String getLanguage() { return language; }
        public CheckoutPaymentData setLanguage(String value) { this.language = value; return this; }
        public String getCountry() { return country; }
        public CheckoutPaymentData setCountry(String value) { this.country = value; return this; }
        public String getAutoactivate() { return autoactivate; }
        public CheckoutPaymentData setAutoactivate(String value) { this.autoactivate = value; return this; }
        public String getOrderid() { return orderid; }
        public CheckoutPaymentData setOrderid(String value) { this.orderid = value; return this; }
        public String getReturnmethod() { return returnmethod; }
        public CheckoutPaymentData setReturnmethod(String value) { this.returnmethod = value; return this; }
        public Uri getAccepturl() { return accepturl; }
        public CheckoutPaymentData setAccepturl(Uri value) { this.accepturl = value; return this; }
        public Uri getCancelurl() { return cancelurl; }
        public CheckoutPaymentData setCancelurl(Uri value) { this.cancelurl = value; return this; }
        public Uri getCallbackurl() { return callbackurl; }
        public CheckoutPaymentData setCallbackurl(Uri value) { this.callbackurl = value; return this; }
    }

    public static class PaymentInfo
    {
        public String paymentdate = null;
        public String paymentterms = null;
        public String yourreference = null;
        public String ourreference = null;
        public String projectname = null;
        public String deliverymethod = null;
        public String deliveryterms = null;
        
        public String getPaymentdate() { return paymentdate; }
        public PaymentInfo setPaymentdate(String value) { this.paymentdate = value; return this; }
        public String getPaymentterms() { return paymentterms; }
        public PaymentInfo setPaymentterms(String value) { this.paymentterms = value; return this; }
        public String getYourreference() { return yourreference; }
        public PaymentInfo setYourreference(String value) { this.yourreference = value; return this; }
        public String getOurreference() { return ourreference; }
        public PaymentInfo setOurreference(String value) { this.ourreference = value; return this; }
        public String getProjectname() { return projectname; }
        public PaymentInfo setProjectname(String value) { this.projectname = value; return this; }
        public String getDeliverymethod() { return deliverymethod; }
        public PaymentInfo setDeliverymethod(String value) { this.deliverymethod = value; return this; }
        public String getDeliveryterms() { return deliveryterms; }
        public PaymentInfo setDeliveryterms(String value) { this.deliveryterms = value; return this; }
    }

    public static class QvicklyArticle
    {
        public String artnr = null;
        public String title = null;
        public Integer quantity = null;
        public Integer aprice = null;
        public Integer tax = null;
        public Integer discount = null;
        public Integer withouttax = null;
        public Integer taxrate = null;
        
        public String getArtnr() { return artnr; }
        public QvicklyArticle setArtnr(String value) { this.artnr = value; return this; }
        public String getTitle() { return title; }
        public QvicklyArticle setTitle(String value) { this.title = value; return this; }
        public Integer getQuantity() { return quantity; }
        public QvicklyArticle setQuantity(Integer value) { this.quantity = value; return this; }
        public Integer getAprice() { return aprice; }
        public QvicklyArticle setAprice(Integer value) { this.aprice = value; return this; }
        public Integer getTax() { return tax; }
        public QvicklyArticle setTax(Integer value) { this.tax = value; return this; }
        public Integer getDiscount() { return discount; }
        public QvicklyArticle setDiscount(Integer value) { this.discount = value; return this; }
        public Integer getWithouttax() { return withouttax; }
        public QvicklyArticle setWithouttax(Integer value) { this.withouttax = value; return this; }
        public Integer getTaxrate() { return taxrate; }
        public QvicklyArticle setTaxrate(Integer value) { this.taxrate = value; return this; }
    }

    public static class Cart
    {
        public CartHandling Handling = null;
        public CartTotal Total = null;
        public Shipping Shipping = null;
        
        public CartHandling getHandling() { return Handling; }
        public Cart setHandling(CartHandling value) { this.Handling = value; return this; }
        public CartTotal getTotal() { return Total; }
        public Cart setTotal(CartTotal value) { this.Total = value; return this; }
        public Shipping getShipping() { return Shipping; }
        public Cart setShipping(Shipping value) { this.Shipping = value; return this; }
    }

    public static class CartHandling
    {
        public String withouttax = null;
        public String taxrate = null;
        
        public String getWithouttax() { return withouttax; }
        public CartHandling setWithouttax(String value) { this.withouttax = value; return this; }
        public String getTaxrate() { return taxrate; }
        public CartHandling setTaxrate(String value) { this.taxrate = value; return this; }
    }

    public static class CartTotal
    {
        public String rounding = null;
        public String withouttax = null;
        public String tax = null;
        public String withtax = null;
        
        public String getRounding() { return rounding; }
        public CartTotal setRounding(String value) { this.rounding = value; return this; }
        public String getWithouttax() { return withouttax; }
        public CartTotal setWithouttax(String value) { this.withouttax = value; return this; }
        public String getTax() { return tax; }
        public CartTotal setTax(String value) { this.tax = value; return this; }
        public String getWithtax() { return withtax; }
        public CartTotal setWithtax(String value) { this.withtax = value; return this; }
    }

    public static class Shipping
    {
        public String firstname = null;
        public String lastname = null;
        public String company = null;
        public String street = null;
        public String street2 = null;
        public String zip = null;
        public String city = null;
        public String country = null;
        public String phone = null;
        public String withouttax = null;
        public String taxrate = null;
        
        public String getFirstname() { return firstname; }
        public Shipping setFirstname(String value) { this.firstname = value; return this; }
        public String getLastname() { return lastname; }
        public Shipping setLastname(String value) { this.lastname = value; return this; }
        public String getCompany() { return company; }
        public Shipping setCompany(String value) { this.company = value; return this; }
        public String getStreet() { return street; }
        public Shipping setStreet(String value) { this.street = value; return this; }
        public String getStreet2() { return street2; }
        public Shipping setStreet2(String value) { this.street2 = value; return this; }
        public String getZip() { return zip; }
        public Shipping setZip(String value) { this.zip = value; return this; }
        public String getCity() { return city; }
        public Shipping setCity(String value) { this.city = value; return this; }
        public String getCountry() { return country; }
        public Shipping setCountry(String value) { this.country = value; return this; }
        public String getPhone() { return phone; }
        public Shipping setPhone(String value) { this.phone = value; return this; }
        public String getWithouttax() { return withouttax; }
        public Shipping setWithouttax(String value) { this.withouttax = value; return this; }
        public String getTaxrate() { return taxrate; }
        public Shipping setTaxrate(String value) { this.taxrate = value; return this; }
    }

    public static class QvicklyCustomer
    {
        public String nr = null;
        public String pno = null;
        public CustomerBilling Billing = null;
        
        public String getNr() { return nr; }
        public QvicklyCustomer setNr(String value) { this.nr = value; return this; }
        public String getPno() { return pno; }
        public QvicklyCustomer setPno(String value) { this.pno = value; return this; }
        public CustomerBilling getBilling() { return Billing; }
        public QvicklyCustomer setBilling(CustomerBilling value) { this.Billing = value; return this; }
    }

    public static class CustomerBilling
    {
        public String firstname = null;
        public String lastname = null;
        public String company = null;
        public String street = null;
        public String street2 = null;
        public String zip = null;
        public String city = null;
        public String country = null;
        public String phone = null;
        public String email = null;
        
        public String getFirstname() { return firstname; }
        public CustomerBilling setFirstname(String value) { this.firstname = value; return this; }
        public String getLastname() { return lastname; }
        public CustomerBilling setLastname(String value) { this.lastname = value; return this; }
        public String getCompany() { return company; }
        public CustomerBilling setCompany(String value) { this.company = value; return this; }
        public String getStreet() { return street; }
        public CustomerBilling setStreet(String value) { this.street = value; return this; }
        public String getStreet2() { return street2; }
        public CustomerBilling setStreet2(String value) { this.street2 = value; return this; }
        public String getZip() { return zip; }
        public CustomerBilling setZip(String value) { this.zip = value; return this; }
        public String getCity() { return city; }
        public CustomerBilling setCity(String value) { this.city = value; return this; }
        public String getCountry() { return country; }
        public CustomerBilling setCountry(String value) { this.country = value; return this; }
        public String getPhone() { return phone; }
        public CustomerBilling setPhone(String value) { this.phone = value; return this; }
        public String getEmail() { return email; }
        public CustomerBilling setEmail(String value) { this.email = 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 QvicklyPaymentResponse
    {
        public QvikclyPaymentData PaymentData = null;
        public PaymentInfo PaymentInfo = null;
        public Card Card = null;
        public Settlement Settlement = null;
        public QvicklyCustomer QvicklyCustomer = null;
        public ArrayList<QvicklyArticle> Articles = null;
        public Cart Cart = null;
        
        public QvikclyPaymentData getPaymentData() { return PaymentData; }
        public QvicklyPaymentResponse setPaymentData(QvikclyPaymentData value) { this.PaymentData = value; return this; }
        public PaymentInfo getPaymentInfo() { return PaymentInfo; }
        public QvicklyPaymentResponse setPaymentInfo(PaymentInfo value) { this.PaymentInfo = value; return this; }
        public Card getCard() { return Card; }
        public QvicklyPaymentResponse setCard(Card value) { this.Card = value; return this; }
        public Settlement getSettlement() { return Settlement; }
        public QvicklyPaymentResponse setSettlement(Settlement value) { this.Settlement = value; return this; }
        public QvicklyCustomer getQvicklyCustomer() { return QvicklyCustomer; }
        public QvicklyPaymentResponse setQvicklyCustomer(QvicklyCustomer value) { this.QvicklyCustomer = value; return this; }
        public ArrayList<QvicklyArticle> getArticles() { return Articles; }
        public QvicklyPaymentResponse setArticles(ArrayList<QvicklyArticle> value) { this.Articles = value; return this; }
        public Cart getCart() { return Cart; }
        public QvicklyPaymentResponse setCart(Cart value) { this.Cart = value; return this; }
    }

    public static class QvikclyPaymentData
    {
        public String method = null;
        public String paymentplanid = null;
        public String currency = null;
        public String country = null;
        public String language = null;
        public String autoactivate = null;
        public String orderid = null;
        public String status = null;
        public String paymentid_related = null;
        public String url = null;
        
        public String getMethod() { return method; }
        public QvikclyPaymentData setMethod(String value) { this.method = value; return this; }
        public String getPaymentplanid() { return paymentplanid; }
        public QvikclyPaymentData setPaymentplanid(String value) { this.paymentplanid = value; return this; }
        public String getCurrency() { return currency; }
        public QvikclyPaymentData setCurrency(String value) { this.currency = value; return this; }
        public String getCountry() { return country; }
        public QvikclyPaymentData setCountry(String value) { this.country = value; return this; }
        public String getLanguage() { return language; }
        public QvikclyPaymentData setLanguage(String value) { this.language = value; return this; }
        public String getAutoactivate() { return autoactivate; }
        public QvikclyPaymentData setAutoactivate(String value) { this.autoactivate = value; return this; }
        public String getOrderid() { return orderid; }
        public QvikclyPaymentData setOrderid(String value) { this.orderid = value; return this; }
        public String getStatus() { return status; }
        public QvikclyPaymentData setStatus(String value) { this.status = value; return this; }
        public String getPaymentidRelated() { return paymentid_related; }
        public QvikclyPaymentData setPaymentidRelated(String value) { this.paymentid_related = value; return this; }
        public String getUrl() { return url; }
        public QvikclyPaymentData setUrl(String value) { this.url = value; return this; }
    }

    public static class Card
    {
        public String promptname = null;
        public String recurring = null;
        public String recurringnr = null;
        public String accepturl = null;
        public String cancelurl = null;
        public String callbackurl = null;
        public String returnmethod = null;
        
        public String getPromptname() { return promptname; }
        public Card setPromptname(String value) { this.promptname = value; return this; }
        public String getRecurring() { return recurring; }
        public Card setRecurring(String value) { this.recurring = value; return this; }
        public String getRecurringnr() { return recurringnr; }
        public Card setRecurringnr(String value) { this.recurringnr = value; return this; }
        public String getAccepturl() { return accepturl; }
        public Card setAccepturl(String value) { this.accepturl = value; return this; }
        public String getCancelurl() { return cancelurl; }
        public Card setCancelurl(String value) { this.cancelurl = value; return this; }
        public String getCallbackurl() { return callbackurl; }
        public Card setCallbackurl(String value) { this.callbackurl = value; return this; }
        public String getReturnmethod() { return returnmethod; }
        public Card setReturnmethod(String value) { this.returnmethod = value; return this; }
    }

    public static class Settlement
    {
        public String number = null;
        public String date = null;
        
        public String getNumber() { return number; }
        public Settlement setNumber(String value) { this.number = value; return this; }
        public String getDate() { return date; }
        public Settlement setDate(String value) { this.date = 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 interface IPaysonPaymentCheckout1
    {
    }

    public static interface ILogger<TCategoryName> implements ILogger
    {
    }

    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 String InternalReferenceId = null;

        @Required()
        public Integer ArticleTypeId = 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 String getInternalReferenceId() { return InternalReferenceId; }
        public PaymentLog setInternalReferenceId(String value) { this.InternalReferenceId = value; return this; }
        public Integer getArticleTypeId() { return ArticleTypeId; }
        public PaymentLog setArticleTypeId(Integer value) { this.ArticleTypeId = 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 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 Company Company = null;

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

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

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

        @Ignore()
        public IList<RebateCode> RebateCodes = 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 Company getCompany() { return Company; }
        public Customer setCompany(Company value) { this.Company = 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 IList<RebateCode> getRebateCodes() { return RebateCodes; }
        public Customer setRebateCodes(IList<RebateCode> value) { this.RebateCodes = 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 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 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 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 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 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 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;
        public Boolean SendCustomerInformationToExternalProviders = 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 Boolean isSendCustomerInformationToExternalProviders() { return SendCustomerInformationToExternalProviders; }
        public CompanySetting setSendCustomerInformationToExternalProviders(Boolean value) { this.SendCustomerInformationToExternalProviders = 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 Boolean ShowSubscribeToNewsletter = 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 Boolean isShowSubscribeToNewsletter() { return ShowSubscribeToNewsletter; }
        public HomepageWidgetSetting setShowSubscribeToNewsletter(Boolean value) { this.ShowSubscribeToNewsletter = 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 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 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 Boolean Active = 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 Boolean isActive() { return Active; }
        public LicenseType setActive(Boolean value) { this.Active = 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;

        @Ignore()
        public LicenseType LicenseType = 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 LicenseType getLicenseType() { return LicenseType; }
        public LicenseTypeItem setLicenseType(LicenseType value) { this.LicenseType = 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 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 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 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 Article extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
    {
        public Company Company = null;
        public Currency CurrencyInfo = null;
        public ArrayList<ArticleServiceRelation> ArticleServiceRelations = null;
        @Ignore()
        public ArrayList<Integer> ServiceIds = null;

        @Ignore()
        public ArticleTypeEnum ArticleType = null;

        @Ignore()
        public String ArticleTypeName = null;

        @Required()
        public UUID CompanyId = null;

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

        @Required()
        public Integer ArticleTypeId = null;

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

        @Required()
        public Integer Amount = null;

        @Required()
        public Double Price = null;

        @Required()
        @StringLength(50)
        public String CurrencyId = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;

        public Date ModifiedDate = null;
        
        public Company getCompany() { return Company; }
        public Article setCompany(Company value) { this.Company = value; return this; }
        public Currency getCurrencyInfo() { return CurrencyInfo; }
        public Article setCurrencyInfo(Currency value) { this.CurrencyInfo = value; return this; }
        public ArrayList<ArticleServiceRelation> getArticleServiceRelations() { return ArticleServiceRelations; }
        public Article setArticleServiceRelations(ArrayList<ArticleServiceRelation> value) { this.ArticleServiceRelations = value; return this; }
        public ArrayList<Integer> getServiceIds() { return ServiceIds; }
        public Article setServiceIds(ArrayList<Integer> value) { this.ServiceIds = value; return this; }
        public ArticleTypeEnum getArticleType() { return ArticleType; }
        public Article setArticleType(ArticleTypeEnum value) { this.ArticleType = value; return this; }
        public String getArticleTypeName() { return ArticleTypeName; }
        public Article setArticleTypeName(String value) { this.ArticleTypeName = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public Article setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public Article setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public Article setName(String value) { this.Name = value; return this; }
        public Integer getArticleTypeId() { return ArticleTypeId; }
        public Article setArticleTypeId(Integer value) { this.ArticleTypeId = value; return this; }
        public String getDescription() { return Description; }
        public Article setDescription(String value) { this.Description = value; return this; }
        public String getImageUrl() { return ImageUrl; }
        public Article setImageUrl(String value) { this.ImageUrl = value; return this; }
        public Boolean isActive() { return Active; }
        public Article setActive(Boolean value) { this.Active = value; return this; }
        public Integer getAmount() { return Amount; }
        public Article setAmount(Integer value) { this.Amount = value; return this; }
        public Double getPrice() { return Price; }
        public Article setPrice(Double value) { this.Price = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public Article setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public Article setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public Article setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public Article setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

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

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

        @Required()
        public Integer ArticleId = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public ArticleServiceRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getId() { return Id; }
        public ArticleServiceRelation setId(Integer value) { this.Id = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public ArticleServiceRelation setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Integer getArticleId() { return ArticleId; }
        public ArticleServiceRelation setArticleId(Integer value) { this.ArticleId = value; return this; }
    }

    public static enum ArticleTypeEnum
    {
        ServiceArticle(1),
        StandAloneArticle(2),
        RebateCodePunchTicketArticle(3),
        RebateCodeGiftCardArticle(4),
        RebateCodeValueCardArticle(5);

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

    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 Boolean RebateCodeEmailSentToCustomer = null;
        public String MessageToReceiver = null;
        public Boolean Buyer = 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 Boolean isRebateCodeEmailSentToCustomer() { return RebateCodeEmailSentToCustomer; }
        public RebateCodeCustomerRelation setRebateCodeEmailSentToCustomer(Boolean value) { this.RebateCodeEmailSentToCustomer = value; return this; }
        public String getMessageToReceiver() { return MessageToReceiver; }
        public RebateCodeCustomerRelation setMessageToReceiver(String value) { this.MessageToReceiver = value; return this; }
        public Boolean isBuyer() { return Buyer; }
        public RebateCodeCustomerRelation setBuyer(Boolean value) { this.Buyer = 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 RebateCodeTransaction extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public Booking Booking = null;

        @Ignore()
        public RebateCode RebateCode = null;

        @Ignore()
        public Customer Customer = null;

        public Integer Id = null;
        public UUID CompanyId = null;
        public String Note = null;
        @Required()
        public Integer RebateCodeId = null;

        @Required()
        public Double Amount = null;

        @Required()
        public Integer Usage = null;

        public Integer BookingId = null;
        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = null;
        
        public Booking getBooking() { return Booking; }
        public RebateCodeTransaction setBooking(Booking value) { this.Booking = value; return this; }
        public RebateCode getRebateCode() { return RebateCode; }
        public RebateCodeTransaction setRebateCode(RebateCode value) { this.RebateCode = value; return this; }
        public Customer getCustomer() { return Customer; }
        public RebateCodeTransaction setCustomer(Customer value) { this.Customer = value; return this; }
        public Integer getId() { return Id; }
        public RebateCodeTransaction setId(Integer value) { this.Id = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RebateCodeTransaction setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public String getNote() { return Note; }
        public RebateCodeTransaction setNote(String value) { this.Note = value; return this; }
        public Integer getRebateCodeId() { return RebateCodeId; }
        public RebateCodeTransaction setRebateCodeId(Integer value) { this.RebateCodeId = value; return this; }
        public Double getAmount() { return Amount; }
        public RebateCodeTransaction setAmount(Double value) { this.Amount = value; return this; }
        public Integer getUsage() { return Usage; }
        public RebateCodeTransaction setUsage(Integer value) { this.Usage = value; return this; }
        public Integer getBookingId() { return BookingId; }
        public RebateCodeTransaction setBookingId(Integer value) { this.BookingId = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public RebateCodeTransaction setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public RebateCodeTransaction setCreatedDate(Date value) { this.CreatedDate = value; return this; }
    }

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

        @Ignore()
        public CalendarExport CalendarExport = null;

        @Ignore()
        public ArrayList<BookingLog> Log = 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;

        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 UUID DeterministicId = null;

        @Ignore()
        public Boolean Active = null;

        @Ignore()
        public Date LastTimeToUnBook = null;

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

        @Ignore()
        public String InternalReferenceId = null;

        @Required()
        public Date UpdatedDate = null;

        @Required()
        public Date CreatedDate = 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;
        @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 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<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 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 UUID getDeterministicId() { return DeterministicId; }
        public Booking setDeterministicId(UUID value) { this.DeterministicId = 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 String getInternalReferenceId() { return InternalReferenceId; }
        public Booking setInternalReferenceId(String value) { this.InternalReferenceId = 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 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 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 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 PaymentDetails extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
    {
        @Ignore()
        public QvicklyCheckoutResponse QvicklyCheckoutSerialized = null;

        @Ignore()
        public Payson2CheckoutResponse Payson2CheckoutSerialized = null;

        @Required()
        public UUID CompanyId = null;

        @Required()
        public String InternalReferenceId = null;

        @Required()
        public Integer ArticleTypeId = null;

        @Required()
        public String ExternalResponseData = null;

        @Required()
        public String ExternalResponseReference = null;

        @Required()
        public Integer PaymentProviderId = 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 String getInternalReferenceId() { return InternalReferenceId; }
        public PaymentDetails setInternalReferenceId(String value) { this.InternalReferenceId = value; return this; }
        public Integer getArticleTypeId() { return ArticleTypeId; }
        public PaymentDetails setArticleTypeId(Integer value) { this.ArticleTypeId = 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 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 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 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 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 RecurringScheduleResourceRelation extends BaseModel
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer RecurringScheduleId = null;

        @Required()
        public Integer ResourceId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RecurringScheduleResourceRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getRecurringScheduleId() { return RecurringScheduleId; }
        public RecurringScheduleResourceRelation setRecurringScheduleId(Integer value) { this.RecurringScheduleId = value; return this; }
        public Integer getResourceId() { return ResourceId; }
        public RecurringScheduleResourceRelation setResourceId(Integer value) { this.ResourceId = value; return this; }
        public Integer getId() { return Id; }
        public RecurringScheduleResourceRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RecurringScheduleResourceRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

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

        @Required()
        public Integer DayOfWeekId = null;

        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer RecurringScheduleId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public BokaMeraDayOfWeek getDayOfWeek() { return DayOfWeek; }
        public RecurringScheduleDayOfWeekRelation setDayOfWeek(BokaMeraDayOfWeek value) { this.DayOfWeek = value; return this; }
        public Integer getDayOfWeekId() { return DayOfWeekId; }
        public RecurringScheduleDayOfWeekRelation setDayOfWeekId(Integer value) { this.DayOfWeekId = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public RecurringScheduleDayOfWeekRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getRecurringScheduleId() { return RecurringScheduleId; }
        public RecurringScheduleDayOfWeekRelation setRecurringScheduleId(Integer value) { this.RecurringScheduleId = value; return this; }
        public Integer getId() { return Id; }
        public RecurringScheduleDayOfWeekRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RecurringScheduleDayOfWeekRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

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

        @Required()
        public Integer ServiceId = null;

        @Required()
        public Integer RecurringScheduleId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public ServiceRecurringScheduleRelation setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public ServiceRecurringScheduleRelation setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Integer getRecurringScheduleId() { return RecurringScheduleId; }
        public ServiceRecurringScheduleRelation setRecurringScheduleId(Integer value) { this.RecurringScheduleId = value; return this; }
        public Integer getId() { return Id; }
        public ServiceRecurringScheduleRelation setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public ServiceRecurringScheduleRelation setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
    }

    public static class RecurringScheduleException extends BaseModel implements IScheduleException
    {
        @Required()
        public UUID CompanyId = null;

        @Required()
        public Integer RecurringScheduleId = null;

        public Integer Id = null;
        public Date ModifiedDate = null;
        @Required()
        public TimeSpan StartTime = null;

        @Required()
        public TimeSpan EndTime = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public RecurringScheduleException setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getRecurringScheduleId() { return RecurringScheduleId; }
        public RecurringScheduleException setRecurringScheduleId(Integer value) { this.RecurringScheduleId = value; return this; }
        public Integer getId() { return Id; }
        public RecurringScheduleException setId(Integer value) { this.Id = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public RecurringScheduleException setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringScheduleException setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringScheduleException setEndTime(TimeSpan value) { this.EndTime = value; return this; }
    }

    public static interface IScheduleException
    {
        public TimeSpan StartTime = null;
        public TimeSpan EndTime = null;
    }

    public static class RecurringScheduleQueryResponse
    {
        /**
        * The schedule id
        */
        @ApiMember(Description="The schedule id")
        public Integer Id = null;

        /**
        * Name of the schedule
        */
        @ApiMember(Description="Name of the schedule")
        public String Name = null;

        /**
        * Description of the schedule
        */
        @ApiMember(Description="Description of the schedule")
        public String Description = null;

        /**
        * If the schedule is active or not
        */
        @ApiMember(Description="If the schedule is active or not")
        public Boolean Active = null;

        /**
        * Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM ,  ..... 04:45PM-05:45, 05:00PM-06:00PM
        */
        @ApiMember(Description="Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM ,  ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true)
        public Integer TimeInterval = null;

        /**
        * The timestamp to which the schedule is valid from
        */
        @ApiMember(Description="The timestamp to which the schedule is valid from", IsRequired=true)
        public Date ValidFrom = null;

        /**
        * The timestamp to which the schedule is valid to
        */
        @ApiMember(Description="The timestamp to which the schedule is valid to", IsRequired=true)
        public Date ValidTo = null;

        /**
        * The time for the schedule opening hours (starttime)
        */
        @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true)
        public TimeSpan StartTime = null;

        /**
        * The time for the schedule opening hours (endtime)
        */
        @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true)
        public TimeSpan EndTime = null;

        /**
        * The number of days the schedule is valid from todays date
        */
        @ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true)
        public Integer NumberOfScheduleDays = null;

        /**
        * If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.
        */
        @ApiMember(Description="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired=true)
        public Boolean IsResourceSpecific = null;

        /**
        * The timestamp when the schedule was updated
        */
        @ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true)
        public Date UpdatedDate = null;

        /**
        * The timestamp when the schedule was created
        */
        @ApiMember(Description="The timestamp when the schedule was created", IsRequired=true)
        public Date CreatedDate = null;

        /**
        * Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).
        */
        @ApiMember(Description="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired=true)
        public Boolean EnableBookingUntilClosingTime = null;

        /**
        * If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs
        */
        @ApiMember(Description="If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs")
        public ArrayList<DayOfWeekDto> DaysOfWeek = null;

        /**
        * The resources that is connected to the schedule
        */
        @ApiMember(Description="The resources that is connected to the schedule")
        public ArrayList<ScheduleResources> Resources = null;

        /**
        * The services that is connected to the schedule
        */
        @ApiMember(Description="The services that is connected to the schedule")
        public ArrayList<ScheduleServices> Services = null;

        /**
        * The exceptions that is added to the schedule
        */
        @ApiMember(Description="The exceptions that is added to the schedule")
        public ArrayList<RecurringScheduleExceptionResponse> Exceptions = null;

        /**
        * Schedule dates, used when the schedule is not a rolling schedule using days of week
        */
        @ApiMember(Description="Schedule dates, used when the schedule is not a rolling schedule using days of week")
        public ArrayList<RecurringScheduleDateResponse> ScheduleDates = null;

        public ResponseStatus ResponseStatus = null;
        
        public Integer getId() { return Id; }
        public RecurringScheduleQueryResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public RecurringScheduleQueryResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public RecurringScheduleQueryResponse setDescription(String value) { this.Description = value; return this; }
        public Boolean isActive() { return Active; }
        public RecurringScheduleQueryResponse setActive(Boolean value) { this.Active = value; return this; }
        public Integer getTimeInterval() { return TimeInterval; }
        public RecurringScheduleQueryResponse setTimeInterval(Integer value) { this.TimeInterval = value; return this; }
        public Date getValidFrom() { return ValidFrom; }
        public RecurringScheduleQueryResponse setValidFrom(Date value) { this.ValidFrom = value; return this; }
        public Date getValidTo() { return ValidTo; }
        public RecurringScheduleQueryResponse setValidTo(Date value) { this.ValidTo = value; return this; }
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringScheduleQueryResponse setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringScheduleQueryResponse setEndTime(TimeSpan value) { this.EndTime = value; return this; }
        public Integer getNumberOfScheduleDays() { return NumberOfScheduleDays; }
        public RecurringScheduleQueryResponse setNumberOfScheduleDays(Integer value) { this.NumberOfScheduleDays = value; return this; }
        public Boolean getIsResourceSpecific() { return IsResourceSpecific; }
        public RecurringScheduleQueryResponse setIsResourceSpecific(Boolean value) { this.IsResourceSpecific = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public RecurringScheduleQueryResponse setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public RecurringScheduleQueryResponse setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Boolean isEnableBookingUntilClosingTime() { return EnableBookingUntilClosingTime; }
        public RecurringScheduleQueryResponse setEnableBookingUntilClosingTime(Boolean value) { this.EnableBookingUntilClosingTime = value; return this; }
        public ArrayList<DayOfWeekDto> getDaysOfWeek() { return DaysOfWeek; }
        public RecurringScheduleQueryResponse setDaysOfWeek(ArrayList<DayOfWeekDto> value) { this.DaysOfWeek = value; return this; }
        public ArrayList<ScheduleResources> getResources() { return Resources; }
        public RecurringScheduleQueryResponse setResources(ArrayList<ScheduleResources> value) { this.Resources = value; return this; }
        public ArrayList<ScheduleServices> getServices() { return Services; }
        public RecurringScheduleQueryResponse setServices(ArrayList<ScheduleServices> value) { this.Services = value; return this; }
        public ArrayList<RecurringScheduleExceptionResponse> getExceptions() { return Exceptions; }
        public RecurringScheduleQueryResponse setExceptions(ArrayList<RecurringScheduleExceptionResponse> value) { this.Exceptions = value; return this; }
        public ArrayList<RecurringScheduleDateResponse> getScheduleDates() { return ScheduleDates; }
        public RecurringScheduleQueryResponse setScheduleDates(ArrayList<RecurringScheduleDateResponse> value) { this.ScheduleDates = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public RecurringScheduleQueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class DayOfWeekDto
    {
        public Integer DayOfWeekId = null;
        public Integer DotNetDayOfWeekId = null;
        public String DayOfWeek = null;
        
        public Integer getDayOfWeekId() { return DayOfWeekId; }
        public DayOfWeekDto setDayOfWeekId(Integer value) { this.DayOfWeekId = value; return this; }
        public Integer getDotNetDayOfWeekId() { return DotNetDayOfWeekId; }
        public DayOfWeekDto setDotNetDayOfWeekId(Integer value) { this.DotNetDayOfWeekId = value; return this; }
        public String getDayOfWeek() { return DayOfWeek; }
        public DayOfWeekDto setDayOfWeek(String value) { this.DayOfWeek = value; return this; }
    }

    public static class ScheduleResources
    {
        public Integer Id = null;
        /**
        * Name of the resource
        */
        @ApiMember(Description="Name of the resource")
        public String Name = null;

        /**
        * The image url of the resource
        */
        @ApiMember(Description="The image url of the resource")
        public Uri ImageUrl = null;
        
        public Integer getId() { return Id; }
        public ScheduleResources setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ScheduleResources setName(String value) { this.Name = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public ScheduleResources setImageUrl(Uri value) { this.ImageUrl = value; return this; }
    }

    public static class ScheduleServices
    {
        public Integer Id = null;
        /**
        * Name of the service
        */
        @ApiMember(Description="Name of the service")
        public String Name = null;

        /**
        * The image url of the service
        */
        @ApiMember(Description="The image url of the service")
        public Uri ImageUrl = null;
        
        public Integer getId() { return Id; }
        public ScheduleServices setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ScheduleServices setName(String value) { this.Name = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public ScheduleServices setImageUrl(Uri value) { this.ImageUrl = value; return this; }
    }

    public static class RecurringScheduleExceptionResponse
    {
        /**
        * Start time of the schedule exception.
        */
        @ApiMember(Description="Start time of the schedule exception.")
        public TimeSpan StartTime = null;

        /**
        * End time of the schedule exception.
        */
        @ApiMember(Description="End time of the schedule exception.")
        public TimeSpan EndTime = null;
        
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringScheduleExceptionResponse setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringScheduleExceptionResponse setEndTime(TimeSpan value) { this.EndTime = value; return this; }
    }

    public static class RecurringScheduleDateResponse
    {
        public Integer Id = null;
        public Date Date = null;
        public TimeSpan StartTime = null;
        public TimeSpan EndTime = null;
        public ResponseStatus ResponseStatus = null;
        
        public Integer getId() { return Id; }
        public RecurringScheduleDateResponse setId(Integer value) { this.Id = value; return this; }
        public Date getDate() { return Date; }
        public RecurringScheduleDateResponse setDate(Date value) { this.Date = value; return this; }
        public TimeSpan getStartTime() { return StartTime; }
        public RecurringScheduleDateResponse setStartTime(TimeSpan value) { this.StartTime = value; return this; }
        public TimeSpan getEndTime() { return EndTime; }
        public RecurringScheduleDateResponse setEndTime(TimeSpan value) { this.EndTime = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public RecurringScheduleDateResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = 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 RecuringScheduleQuery 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 /schedules/recurring HTTP/1.1 
Host: api.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Id":0,"Name":"String","Description":"String","Active":false,"TimeInterval":0,"StartTime":"00:00:00","EndTime":"00:00:00","NumberOfScheduleDays":0,"IsResourceSpecific":false,"EnableBookingUntilClosingTime":false,"DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"Resources":[{"Id":0,"Name":"String"}],"Services":[{"Id":0,"Name":"String"}],"Exceptions":[{"StartTime":"00:00:00","EndTime":"00:00:00"}],"ScheduleDates":[{"Id":0,"StartTime":"00:00:00","EndTime":"00:00:00","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}