BokaMera.API.Host

<back to all web services

CompanyUserQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read
The following routes are available for this service:
GET/administrators/Get all administrators for a companyThis service is used to get all administrators 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")
    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    public static class CompanyUserQuery extends QueryDb<CompanyUser, CompanyUserQueryResponse> implements ICompany
    {
        /**
        * The company id, if empty will use the company id for the user you are logged in with.
        */
        @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
        public UUID CompanyId = null;

        /**
        * If you want to show only active or inactive administrators
        */
        @ApiMember(DataType="boolean", Description="If you want to show only active or inactive administrators", ParameterType="query")
        public Boolean Active = null;

        /**
        * If you want to include the connected resource for the administrator
        */
        @ApiMember(DataType="boolean", Description="If you want to include the connected resource for the administrator", ParameterType="query")
        public Boolean IncludeResourceInformation = null;

        /**
        * If you want to include the connected roles for the administrator
        */
        @ApiMember(DataType="boolean", Description="If you want to include the connected roles for the administrator", ParameterType="query")
        public Boolean IncludeRolesInformation = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CompanyUserQuery setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanyUserQuery setActive(Boolean value) { this.Active = value; return this; }
        public Boolean isIncludeResourceInformation() { return IncludeResourceInformation; }
        public CompanyUserQuery setIncludeResourceInformation(Boolean value) { this.IncludeResourceInformation = value; return this; }
        public Boolean isIncludeRolesInformation() { return IncludeRolesInformation; }
        public CompanyUserQuery setIncludeRolesInformation(Boolean value) { this.IncludeRolesInformation = 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 CompanyUser extends BaseModel implements IUser, IBaseModelCreated, IBaseModelUpdated
    {
        public Resource Resource = null;
        @Ignore()
        public ArrayList<KeyCloakRole> Roles = null;

        public String Email = null;
        public Integer ResourceId = null;
        public String WorkerId = null;
        @Required()
        public Boolean Active = null;

        @Required()
        public Boolean IsSuperAdmin = null;

        @Required()
        public Date CreatedDate = null;

        @Required()
        public Date UpdatedDate = null;

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

        @Required()
        public UUID Id = null;

        public UUID UserId = null;
        public String Firstname = null;
        public String Lastname = null;
        public String Phone = null;
        
        public Resource getResource() { return Resource; }
        public CompanyUser setResource(Resource value) { this.Resource = value; return this; }
        public ArrayList<KeyCloakRole> getRoles() { return Roles; }
        public CompanyUser setRoles(ArrayList<KeyCloakRole> value) { this.Roles = value; return this; }
        public String getEmail() { return Email; }
        public CompanyUser setEmail(String value) { this.Email = value; return this; }
        public Integer getResourceId() { return ResourceId; }
        public CompanyUser setResourceId(Integer value) { this.ResourceId = value; return this; }
        public String getWorkerId() { return WorkerId; }
        public CompanyUser setWorkerId(String value) { this.WorkerId = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanyUser setActive(Boolean value) { this.Active = value; return this; }
        public Boolean getIsSuperAdmin() { return IsSuperAdmin; }
        public CompanyUser setIsSuperAdmin(Boolean value) { this.IsSuperAdmin = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public CompanyUser setCreatedDate(Date value) { this.CreatedDate = value; return this; }
        public Date getUpdatedDate() { return UpdatedDate; }
        public CompanyUser setUpdatedDate(Date value) { this.UpdatedDate = value; return this; }
        public Date getModifiedDate() { return ModifiedDate; }
        public CompanyUser setModifiedDate(Date value) { this.ModifiedDate = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public CompanyUser setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public UUID getId() { return Id; }
        public CompanyUser setId(UUID value) { this.Id = value; return this; }
        public UUID getUserId() { return UserId; }
        public CompanyUser setUserId(UUID value) { this.UserId = value; return this; }
        public String getFirstname() { return Firstname; }
        public CompanyUser setFirstname(String value) { this.Firstname = value; return this; }
        public String getLastname() { return Lastname; }
        public CompanyUser setLastname(String value) { this.Lastname = value; return this; }
        public String getPhone() { return Phone; }
        public CompanyUser setPhone(String value) { this.Phone = value; return this; }
    }

    public static class BaseModel
    {
        
    }

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

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

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

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

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

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

        @Required()
        public UUID CompanyId = null;

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

        @Required()
        public Boolean Active = null;

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

        @Required()
        public Date CreatedDate = null;

        @Required()
        public String Color = null;

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

        @Required()
        public Boolean SendEmailReminder = null;

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

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

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

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

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

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

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

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

    public static class 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 KeyCloakRole
    {
        public UUID Id = null;
        public String Name = null;
        
        public UUID getId() { return Id; }
        public KeyCloakRole setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public KeyCloakRole setName(String value) { this.Name = value; return this; }
    }

    public static class CompanyUserQueryResponse
    {
        public UUID Id = null;
        public UUID CompanyId = null;
        public String Firstname = null;
        public String Lastname = null;
        public String Email = null;
        public String Phone = null;
        public String WorkerId = null;
        public Integer ResourceId = null;
        /**
        * The resource information connected to the administrator.
        */
        @ApiMember(Description="The resource information connected to the administrator.")
        public CompanyUserResource Resource = null;

        /**
        * The roles that are connected to the administrator.
        */
        @ApiMember(Description="The roles that are connected to the administrator.")
        public ArrayList<CompanyUserRolesQueryResponse> Roles = null;

        public Boolean Active = null;
        public Date Created = null;
        public Date Updated = null;
        
        public UUID getId() { return Id; }
        public CompanyUserQueryResponse setId(UUID value) { this.Id = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public CompanyUserQueryResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public String getFirstname() { return Firstname; }
        public CompanyUserQueryResponse setFirstname(String value) { this.Firstname = value; return this; }
        public String getLastname() { return Lastname; }
        public CompanyUserQueryResponse setLastname(String value) { this.Lastname = value; return this; }
        public String getEmail() { return Email; }
        public CompanyUserQueryResponse setEmail(String value) { this.Email = value; return this; }
        public String getPhone() { return Phone; }
        public CompanyUserQueryResponse setPhone(String value) { this.Phone = value; return this; }
        public String getWorkerId() { return WorkerId; }
        public CompanyUserQueryResponse setWorkerId(String value) { this.WorkerId = value; return this; }
        public Integer getResourceId() { return ResourceId; }
        public CompanyUserQueryResponse setResourceId(Integer value) { this.ResourceId = value; return this; }
        public CompanyUserResource getResource() { return Resource; }
        public CompanyUserQueryResponse setResource(CompanyUserResource value) { this.Resource = value; return this; }
        public ArrayList<CompanyUserRolesQueryResponse> getRoles() { return Roles; }
        public CompanyUserQueryResponse setRoles(ArrayList<CompanyUserRolesQueryResponse> value) { this.Roles = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanyUserQueryResponse setActive(Boolean value) { this.Active = value; return this; }
        public Date getCreated() { return Created; }
        public CompanyUserQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getUpdated() { return Updated; }
        public CompanyUserQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
    }

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

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

        /**
        * The resource status
        */
        @ApiMember(Description="The resource status")
        public Boolean Active = null;

        /**
        * The resource description
        */
        @ApiMember(Description="The resource description")
        public String Description = null;

        /**
        * The resource email
        */
        @ApiMember(Description="The resource email")
        public String Email = null;

        /**
        * The resource phone
        */
        @ApiMember(Description="The resource phone")
        public String Phone = null;

        /**
        * The resource color
        */
        @ApiMember(Description="The resource color")
        public String Color = null;

        /**
        * The resource image
        */
        @ApiMember(Description="The resource image")
        public Uri ImageUrl = null;

        /**
        * If the resource want to receive email notifications
        */
        @ApiMember(Description="If the resource want to receive email notifications")
        public Boolean EmailNotification = null;

        /**
        * If the resource want to receive sms notifications
        */
        @ApiMember(Description="If the resource want to receive sms notifications")
        public Boolean SMSNotification = null;

        /**
        * If the resource want to receive email reminders
        */
        @ApiMember(Description="If the resource want to receive email reminders")
        public Boolean EmailReminder = null;

        /**
        * If the resource want to receive sms reminders
        */
        @ApiMember(Description="If the resource want to receive sms reminders")
        public Boolean SMSReminder = null;
        
        public Integer getId() { return Id; }
        public CompanyUserResource setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public CompanyUserResource setName(String value) { this.Name = value; return this; }
        public Boolean isActive() { return Active; }
        public CompanyUserResource setActive(Boolean value) { this.Active = value; return this; }
        public String getDescription() { return Description; }
        public CompanyUserResource setDescription(String value) { this.Description = value; return this; }
        public String getEmail() { return Email; }
        public CompanyUserResource setEmail(String value) { this.Email = value; return this; }
        public String getPhone() { return Phone; }
        public CompanyUserResource setPhone(String value) { this.Phone = value; return this; }
        public String getColor() { return Color; }
        public CompanyUserResource setColor(String value) { this.Color = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public CompanyUserResource setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Boolean isEmailNotification() { return EmailNotification; }
        public CompanyUserResource setEmailNotification(Boolean value) { this.EmailNotification = value; return this; }
        public Boolean isSmsNotification() { return SMSNotification; }
        public CompanyUserResource setSmsNotification(Boolean value) { this.SMSNotification = value; return this; }
        public Boolean isEmailReminder() { return EmailReminder; }
        public CompanyUserResource setEmailReminder(Boolean value) { this.EmailReminder = value; return this; }
        public Boolean isSmsReminder() { return SMSReminder; }
        public CompanyUserResource setSmsReminder(Boolean value) { this.SMSReminder = value; return this; }
    }

    public static class CompanyUserRolesQueryResponse
    {
        public UUID RoleId = null;
        public String Name = null;
        public String Description = null;
        
        public UUID getRoleId() { return RoleId; }
        public CompanyUserRolesQueryResponse setRoleId(UUID value) { this.RoleId = value; return this; }
        public String getName() { return Name; }
        public CompanyUserRolesQueryResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public CompanyUserRolesQueryResponse setDescription(String value) { this.Description = 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 CompanyUserQuery DTOs

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

HTTP + OTHER

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

GET /administrators/ HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Offset":0,"Total":0,"Results":[{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","WorkerId":"String","ResourceId":0,"Resource":{"Id":0,"Name":"String","Active":false,"Description":"String","Email":"String","Phone":"String","Color":"String","EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false},"Roles":[{"Name":"String","Description":"String"}],"Active":false}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}