BokaMera.API.Host

<back to all web services

CollidingBookingQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
GET/timeexceptions/collidingeventsSearches for collisions with existing bookings of the resourceSearches for existing bookings and investigates if a proposed time exception would collide with them, if so, the bookings should be unbooked to be able to create the time exception. A time exception must be either recurring (DaysOfWeek, ExceptionFromTime, ExceptionToTime is set) or non recurring (From and To are set).
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    @ApiResponse(Description="The request parameters was not valid", StatusCode=400)
    // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403)
    @ValidateRequest(Validator="IsAuthenticated")
    public static class CollidingBookingQuery
    {
        /**
        * 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;

        /**
        * Resource ids of the resource that should be matched against booked events
        */
        @ApiMember(Description="Resource ids of the resource that should be matched against booked events")
        public ArrayList<Integer> ResourceIds = null;

        /**
        * Time exception starting date
        */
        @ApiMember(Description="Time exception starting date")
        public Date From = null;

        /**
        * Time exception ending date
        */
        @ApiMember(Description="Time exception ending date")
        public Date To = null;

        /**
        * This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.
        */
        @ApiMember(Description="This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.")
        public TimeSpan FromTime = null;

        /**
        * This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.
        */
        @ApiMember(Description="This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.")
        public TimeSpan ToTime = null;

        /**
        * A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday
        */
        @ApiMember(Description="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday")
        public ArrayList<Integer> DaysOfWeek = null;

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

        /**
        * If you want to include the customer information for the booking
        */
        @ApiMember(DataType="boolean", Description="If you want to include the customer information for the booking", ParameterType="query")
        public Boolean IncludeCustomerInformation = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public CollidingBookingQuery setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public ArrayList<Integer> getResourceIds() { return ResourceIds; }
        public CollidingBookingQuery setResourceIds(ArrayList<Integer> value) { this.ResourceIds = value; return this; }
        public Date getFrom() { return From; }
        public CollidingBookingQuery setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public CollidingBookingQuery setTo(Date value) { this.To = value; return this; }
        public TimeSpan getFromTime() { return FromTime; }
        public CollidingBookingQuery setFromTime(TimeSpan value) { this.FromTime = value; return this; }
        public TimeSpan getToTime() { return ToTime; }
        public CollidingBookingQuery setToTime(TimeSpan value) { this.ToTime = value; return this; }
        public ArrayList<Integer> getDaysOfWeek() { return DaysOfWeek; }
        public CollidingBookingQuery setDaysOfWeek(ArrayList<Integer> value) { this.DaysOfWeek = value; return this; }
        public Boolean isIncludeServiceInformation() { return IncludeServiceInformation; }
        public CollidingBookingQuery setIncludeServiceInformation(Boolean value) { this.IncludeServiceInformation = value; return this; }
        public Boolean isIncludeCustomerInformation() { return IncludeCustomerInformation; }
        public CollidingBookingQuery setIncludeCustomerInformation(Boolean value) { this.IncludeCustomerInformation = value; return this; }
    }

    public static class CollidingBookingQueryResponse
    {
        /**
        * Resource id of the resource that owns this exception
        */
        @ApiMember(Description="Resource id of the resource that owns this exception")
        public ArrayList<Integer> ResourceIds = null;

        /**
        * A list of bookings that would collide with the time exception
        */
        @ApiMember(Description="A list of bookings that would collide with the time exception")
        public ArrayList<BookingIntervalResponse> Bookings = null;

        public ResponseStatus ResponseStatus = null;
        
        public ArrayList<Integer> getResourceIds() { return ResourceIds; }
        public CollidingBookingQueryResponse setResourceIds(ArrayList<Integer> value) { this.ResourceIds = value; return this; }
        public ArrayList<BookingIntervalResponse> getBookings() { return Bookings; }
        public CollidingBookingQueryResponse setBookings(ArrayList<BookingIntervalResponse> value) { this.Bookings = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public CollidingBookingQueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class BookingIntervalResponse
    {
        public Integer Id = null;
        public UUID CompanyId = null;
        public Date From = null;
        public Date To = null;
        public BookingStatusEnum Status = null;
        public Integer StatusId = null;
        public String StatusName = null;
        public BookedCustomer Customer = null;
        public ServiceInfoResponse Service = null;
        public Date CreatedDate = null;
        
        public Integer getId() { return Id; }
        public BookingIntervalResponse setId(Integer value) { this.Id = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingIntervalResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Date getFrom() { return From; }
        public BookingIntervalResponse setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public BookingIntervalResponse setTo(Date value) { this.To = value; return this; }
        public BookingStatusEnum getStatus() { return Status; }
        public BookingIntervalResponse setStatus(BookingStatusEnum value) { this.Status = value; return this; }
        public Integer getStatusId() { return StatusId; }
        public BookingIntervalResponse setStatusId(Integer value) { this.StatusId = value; return this; }
        public String getStatusName() { return StatusName; }
        public BookingIntervalResponse setStatusName(String value) { this.StatusName = value; return this; }
        public BookedCustomer getCustomer() { return Customer; }
        public BookingIntervalResponse setCustomer(BookedCustomer value) { this.Customer = value; return this; }
        public ServiceInfoResponse getService() { return Service; }
        public BookingIntervalResponse setService(ServiceInfoResponse value) { this.Service = value; return this; }
        public Date getCreatedDate() { return CreatedDate; }
        public BookingIntervalResponse setCreatedDate(Date value) { this.CreatedDate = value; return this; }
    }

    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 ServiceInfoResponse
    {
        public Integer Id = null;
        public String Name = null;
        public String Description = null;
        public Uri ImageUrl = null;
        public Integer LengthInMinutes = null;
        public Integer MaxNumberOfSpotsPerBooking = null;
        public Integer MinNumberOfSpotsPerBooking = null;
        public GroupBookingSettings GroupBooking = null;
        public MultipleResourceSettings MultipleResource = null;
        public Boolean IsGroupBooking = null;
        public Boolean IsPaymentEnabled = null;
        
        public Integer getId() { return Id; }
        public ServiceInfoResponse setId(Integer value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public ServiceInfoResponse setName(String value) { this.Name = value; return this; }
        public String getDescription() { return Description; }
        public ServiceInfoResponse setDescription(String value) { this.Description = value; return this; }
        public Uri getImageUrl() { return ImageUrl; }
        public ServiceInfoResponse setImageUrl(Uri value) { this.ImageUrl = value; return this; }
        public Integer getLengthInMinutes() { return LengthInMinutes; }
        public ServiceInfoResponse setLengthInMinutes(Integer value) { this.LengthInMinutes = value; return this; }
        public Integer getMaxNumberOfSpotsPerBooking() { return MaxNumberOfSpotsPerBooking; }
        public ServiceInfoResponse setMaxNumberOfSpotsPerBooking(Integer value) { this.MaxNumberOfSpotsPerBooking = value; return this; }
        public Integer getMinNumberOfSpotsPerBooking() { return MinNumberOfSpotsPerBooking; }
        public ServiceInfoResponse setMinNumberOfSpotsPerBooking(Integer value) { this.MinNumberOfSpotsPerBooking = value; return this; }
        public GroupBookingSettings getGroupBooking() { return GroupBooking; }
        public ServiceInfoResponse setGroupBooking(GroupBookingSettings value) { this.GroupBooking = value; return this; }
        public MultipleResourceSettings getMultipleResource() { return MultipleResource; }
        public ServiceInfoResponse setMultipleResource(MultipleResourceSettings value) { this.MultipleResource = value; return this; }
        public Boolean getIsGroupBooking() { return IsGroupBooking; }
        public ServiceInfoResponse setIsGroupBooking(Boolean value) { this.IsGroupBooking = value; return this; }
        public Boolean getIsPaymentEnabled() { return IsPaymentEnabled; }
        public ServiceInfoResponse setIsPaymentEnabled(Boolean value) { this.IsPaymentEnabled = value; return this; }
    }

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

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

}

Java CollidingBookingQuery DTOs

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

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

HTTP + JSON

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

GET /timeexceptions/collidingevents HTTP/1.1 
Host: api.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"ResourceIds":[0],"Bookings":[{"Id":0,"Status":"Booked","StatusId":0,"StatusName":"String","Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String","ImageUrl":"String","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"},"Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false}}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}