BokaMera.API.Host

<back to all web services

CreateDateSchedule

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/schedules/dateAdd new date scheduleAdd new date schedule to the company for the currently logged in user, only administrators are allowed to add schedules.
namespace BokaMera.API.ServiceModel.Dtos

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

    [<AllowNullLiteral>]
    type DateScheduleDateResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val From:DateTime = new DateTime() with get,set
        member val To:DateTime = new DateTime() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type ScheduleResources() = 
        member val Id:Int32 = new Int32() with get,set
        ///<summary>
        ///Name of the resource
        ///</summary>
        [<ApiMember(Description="Name of the resource")>]
        member val Name:String = null with get,set

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

    [<AllowNullLiteral>]
    type ScheduleServices() = 
        member val Id:Int32 = new Int32() with get,set
        ///<summary>
        ///Name of the service
        ///</summary>
        [<ApiMember(Description="Name of the service")>]
        member val Name:String = null with get,set

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

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

        ///<summary>
        ///Name of the schedule
        ///</summary>
        [<ApiMember(Description="Name of the schedule")>]
        member val Name:String = null with get,set

        ///<summary>
        ///Description of the schedule
        ///</summary>
        [<ApiMember(Description="Description of the schedule")>]
        member val Description:String = null with get,set

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

        ///<summary>
        ///If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.
        ///</summary>
        [<ApiMember(Description="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired=true)>]
        member val IsResourceSpecific:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Schedule dates
        ///</summary>
        [<ApiMember(Description="Schedule dates")>]
        member val ScheduleDates:ResizeArray<DateScheduleDateResponse> = new ResizeArray<DateScheduleDateResponse>() with get,set

        ///<summary>
        ///The resources that is connected to the schedule
        ///</summary>
        [<ApiMember(Description="The resources that is connected to the schedule")>]
        member val Resources:ResizeArray<ScheduleResources> = new ResizeArray<ScheduleResources>() with get,set

        ///<summary>
        ///The services that is connected to the schedule
        ///</summary>
        [<ApiMember(Description="The services that is connected to the schedule")>]
        member val Services:ResizeArray<ScheduleServices> = new ResizeArray<ScheduleServices>() with get,set

        ///<summary>
        ///The timestamp when the schedule was updated
        ///</summary>
        [<ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true)>]
        member val UpdatedDate:DateTime = new DateTime() with get,set

        ///<summary>
        ///The timestamp when the schedule was created
        ///</summary>
        [<ApiMember(Description="The timestamp when the schedule was created", IsRequired=true)>]
        member val CreatedDate:DateTime = new DateTime() with get,set

        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type AddDateScheduleDate() = 
        ///<summary>
        ///The from date for the timeslot
        ///</summary>
        [<ApiMember(Description="The from date for the timeslot", IsRequired=true)>]
        member val From:DateTime = new DateTime() with get,set

        ///<summary>
        ///The to date for the timeslot
        ///</summary>
        [<ApiMember(Description="The to date for the timeslot", IsRequired=true)>]
        member val To:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type AddScheduleResource() = 
        ///<summary>
        ///The resource id
        ///</summary>
        [<ApiMember(Description="The resource id", IsRequired=true)>]
        member val Id:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type AddScheduleService() = 
        ///<summary>
        ///The service id
        ///</summary>
        [<ApiMember(Description="The service id", IsRequired=true)>]
        member val Id:Int32 = new Int32() with get,set

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

        ///<summary>
        ///The schedule name
        ///</summary>
        [<ApiMember(Description="The schedule name")>]
        member val Name:String = null with get,set

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

        ///<summary>
        ///If schedule is active or not
        ///</summary>
        [<ApiMember(Description="If schedule is active or not")>]
        member val Active:Boolean = new Boolean() with get,set

        ///<summary>
        ///The number of days the schedule is valid from todays date
        ///</summary>
        [<ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true)>]
        member val NumberOfScheduleDays:Int32 = new Int32() with get,set

        ///<summary>
        ///The dates for the schedule. This is the actual timeslots.
        ///</summary>
        [<ApiMember(Description="The dates for the schedule. This is the actual timeslots.")>]
        member val ScheduleDates:ResizeArray<AddDateScheduleDate> = new ResizeArray<AddDateScheduleDate>() with get,set

        ///<summary>
        ///If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.
        ///</summary>
        [<ApiMember(Description="If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.")>]
        member val Resources:ResizeArray<AddScheduleResource> = new ResizeArray<AddScheduleResource>() with get,set

        ///<summary>
        ///Set what services the schedule should be connected to.
        ///</summary>
        [<ApiMember(Description="Set what services the schedule should be connected to.")>]
        member val Services:ResizeArray<AddScheduleService> = new ResizeArray<AddScheduleService>() with get,set

F# CreateDateSchedule DTOs

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

HTTP + JSV

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

POST /schedules/date HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Name: String,
	Description: String,
	Active: False,
	NumberOfScheduleDays: 0,
	ScheduleDates: 
	[
		{
			
		}
	],
	Resources: 
	[
		{
			Id: 0
		}
	],
	Services: 
	[
		{
			Id: 0
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Name: String,
	Description: String,
	Active: False,
	IsResourceSpecific: False,
	ScheduleDates: 
	[
		{
			Id: 0,
			ResponseStatus: 
			{
				ErrorCode: String,
				Message: String,
				StackTrace: String,
				Errors: 
				[
					{
						ErrorCode: String,
						FieldName: String,
						Message: String,
						Meta: 
						{
							String: String
						}
					}
				],
				Meta: 
				{
					String: String
				}
			}
		}
	],
	Resources: 
	[
		{
			Id: 0,
			Name: String
		}
	],
	Services: 
	[
		{
			Id: 0,
			Name: String
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}