BokaMera.API.Host

<back to all web services

CreateArticleRebateCode

The following routes are available for this service:
POST/rebatecodes/fromarticleCreate RebateCode.Create RebateCode.
namespace BokaMera.API.ServiceModel.Db

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

    [<AllowNullLiteral>]
    type DaysOfWeekResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val DayOfWeek:String = null with get,set
        member val DayOfWeekTranslation:String = null with get,set
        member val DayOfWeekActive:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val DayOfWeekSortOrder:Nullable<Int16> = new Nullable<Int16>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeServiceResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Description:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type BaseModel() = 
        class end

    [<AllowNullLiteral>]
    type ArticleServiceRelation() = 
        inherit BaseModel()
        [<Required>]
        member val CompanyId:Guid = new Guid() with get,set

        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val ServiceId:Int32 = new Int32() with get,set

        [<Required>]
        member val ArticleId:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type ArticleResponse() = 
        member val CompanyId:Guid = new Guid() with get,set
        member val Id:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val ArticleTypeId:Int32 = new Int32() with get,set
        member val Description:String = null with get,set
        member val ImageUrl:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val Amount:Int32 = new Int32() with get,set
        member val Price:Double = new Double() with get,set
        member val CurrencyId:String = null with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Services:ResizeArray<ArticleServiceRelation> = new ResizeArray<ArticleServiceRelation>() with get,set
        member val ServiceIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val PriceSign:String = null with get,set
        member val VAT:Nullable<Decimal> = new Nullable<Decimal>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeCustomerResponse() = 
        member val Id:Guid = new Guid() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val ImageUrl:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeTransactionQueryResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Guid = new Guid() with get,set
        member val Note:String = null with get,set
        member val RebateCodeId:Int32 = new Int32() with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RebateCodeTypeName:String = null with get,set
        member val Amount:Double = new Double() with get,set
        member val Usage:String = null with get,set
        member val BookingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val UpdatedDate:DateTime = new DateTime() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Service:RebateCodeServiceResponse = null with get,set
        member val Customer:RebateCodeCustomerResponse = null with get,set
        member val PriceSign:String = null with get,set

    [<AllowNullLiteral>]
    type RebateCodeCompanyResponse() = 
        member val SitePath:String = null with get,set
        member val PaymentProviderId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type RebateCodeResponse() = 
        member val Id:Int32 = new Int32() with get,set
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ValidFrom:DateTime = new DateTime() with get,set
        member val ValidTo:DateTime = new DateTime() with get,set
        ///<summary>
        ///If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
        ///</summary>
        [<ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")>]
        member val FromTime:TimeSpan = new TimeSpan() with get,set

        ///<summary>
        ///If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
        ///</summary>
        [<ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")>]
        member val ToTime:TimeSpan = new TimeSpan() with get,set

        member val CreatedBy:String = null with get,set
        member val Created:DateTime = new DateTime() with get,set
        member val UpdatedBy:String = null with get,set
        member val Updated:DateTime = new DateTime() with get,set
        member val PersonalNote:String = null with get,set
        member val RebateCodeSign:String = null with get,set
        member val RebateCodeValue:Int32 = new Int32() with get,set
        member val RebateCodeTypeId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val RebateCodeStatusId:Int32 = new Int32() with get,set
        member val StatusName:String = null with get,set
        member val MaxNumberOfUses:Int32 = new Int32() with get,set
        member val MaxNumberOfUsesPerCustomer:Int32 = new Int32() with get,set
        member val NumberOfUsesUsed:Int32 = new Int32() with get,set
        member val DaysOfWeek:ResizeArray<DaysOfWeekResponse> = new ResizeArray<DaysOfWeekResponse>() with get,set
        member val Services:ResizeArray<RebateCodeServiceResponse> = new ResizeArray<RebateCodeServiceResponse>() with get,set
        member val Article:ArticleResponse = null with get,set
        member val Transactions:ResizeArray<RebateCodeTransactionQueryResponse> = new ResizeArray<RebateCodeTransactionQueryResponse>() with get,set
        member val RemainingAmount:Nullable<Double> = new Nullable<Double>() with get,set
        member val RemainingUsage:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Customers:ResizeArray<RebateCodeCustomerResponse> = new ResizeArray<RebateCodeCustomerResponse>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set
        member val PaymentReceived:Boolean = new Boolean() with get,set
        member val RebateCodeCurrencySign:String = null with get,set
        member val ActiveByStatus:Boolean = new Boolean() with get,set
        member val PriceSign:String = null with get,set
        member val RebateCodeTypeName:String = null with get,set
        member val Company:RebateCodeCompanyResponse = null with get,set

    [<AllowNullLiteral>]
    type CustomerToHandle() = 
        member val CustomerId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val Phone:String = null with get,set
        member val SubscribedToNewsletter:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type InvoiceAddressToHandle() = 
        member val CorporateIdentityNumber:String = null with get,set
        member val InvoiceAddress1:String = null with get,set
        member val InvoiceAddress2:String = null with get,set
        member val InvoiceCity:String = null with get,set
        member val InvoicePostalCode:String = null with get,set
        member val InvoiceCountryCode:String = null with get,set

    [<AllowNullLiteral>]
    type PromoCodeReceiver() = 
        member val CustomerId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Firstname:String = null with get,set
        member val Lastname:String = null with get,set
        member val Email:String = null with get,set
        member val ReceiverMessage:String = null with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<AllowNullLiteral>]
    type CreateArticleRebateCode() = 
        ///<summary>
        ///
        ///</summary>
        [<ApiMember(Description="")>]
        member val CompanyId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///Article ID for the rebate code
        ///</summary>
        [<ApiMember(Description="Article ID for the rebate code", IsRequired=true)>]
        member val ArticleId:Int32 = new Int32() with get,set

        ///<summary>
        ///Customer information
        ///</summary>
        [<ApiMember(Description="Customer information")>]
        member val Customer:CustomerToHandle = null with get,set

        ///<summary>
        ///If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. 
        ///</summary>
        [<ApiMember(Description="If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. ")>]
        member val InvoiceAddress:InvoiceAddressToHandle = null with get,set

        ///<summary>
        ///Promo code Receiver information
        ///</summary>
        [<ApiMember(Description="Promo code Receiver information")>]
        member val Receiver:PromoCodeReceiver = null with get,set

F# CreateArticleRebateCode 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 /rebatecodes/fromarticle HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	ArticleId: 0,
	Customer: 
	{
		CustomerId: 00000000-0000-0000-0000-000000000000,
		Firstname: String,
		Lastname: String,
		Email: String,
		Phone: String,
		SubscribedToNewsletter: False
	},
	InvoiceAddress: 
	{
		CorporateIdentityNumber: String,
		InvoiceAddress1: String,
		InvoiceAddress2: String,
		InvoiceCity: String,
		InvoicePostalCode: String,
		InvoiceCountryCode: String
	},
	Receiver: 
	{
		CustomerId: 00000000-0000-0000-0000-000000000000,
		Firstname: String,
		Lastname: String,
		Email: String,
		ReceiverMessage: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	CompanyId: 00000000-0000-0000-0000-000000000000,
	FromTime: PT0S,
	ToTime: PT0S,
	CreatedBy: String,
	UpdatedBy: String,
	PersonalNote: String,
	RebateCodeSign: String,
	RebateCodeValue: 0,
	RebateCodeTypeId: 0,
	Name: String,
	RebateCodeStatusId: 0,
	StatusName: String,
	MaxNumberOfUses: 0,
	MaxNumberOfUsesPerCustomer: 0,
	NumberOfUsesUsed: 0,
	DaysOfWeek: 
	[
		{
			Id: 0,
			DayOfWeek: String,
			DayOfWeekTranslation: String,
			DayOfWeekActive: False,
			DayOfWeekSortOrder: 0
		}
	],
	Services: 
	[
		{
			Id: 0,
			Name: String,
			Description: String,
			Active: False
		}
	],
	Article: 
	{
		Id: 0,
		Name: String,
		ArticleTypeId: 0,
		Description: String,
		ImageUrl: String,
		Active: False,
		Amount: 0,
		Price: 0,
		CurrencyId: String,
		Services: 
		[
			{
				Id: 0,
				ServiceId: 0,
				ArticleId: 0
			}
		],
		ServiceIds: 
		[
			0
		],
		PriceSign: String,
		VAT: 0
	},
	Transactions: 
	[
		{
			Id: 0,
			Note: String,
			RebateCodeId: 0,
			RebateCodeSign: String,
			RebateCodeTypeId: 0,
			RebateCodeTypeName: String,
			Amount: 0,
			Usage: String,
			BookingId: 0,
			Service: 
			{
				Id: 0,
				Name: String,
				Description: String,
				Active: False
			},
			Customer: 
			{
				Firstname: String,
				Lastname: String,
				Email: String,
				Phone: String,
				ImageUrl: String
			},
			PriceSign: String
		}
	],
	RemainingAmount: 0,
	RemainingUsage: 0,
	Customers: 
	[
		{
			Firstname: String,
			Lastname: String,
			Email: String,
			Phone: String,
			ImageUrl: String
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	PaymentReceived: False,
	RebateCodeCurrencySign: String,
	ActiveByStatus: False,
	PriceSign: String,
	RebateCodeTypeName: String,
	Company: 
	{
		SitePath: String,
		PaymentProviderId: 0
	}
}