| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| POST | /rebatecodes/transactions | Create transaction for the rebate code | Create transaction for the rebate code |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RebateCodeServiceResponse:
id: int = 0
name: Optional[str] = None
description: Optional[str] = None
active: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RebateCodeCustomerResponse:
id: Optional[str] = None
firstname: Optional[str] = None
lastname: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
image_url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RebateCodeTransactionQueryResponse:
id: int = 0
company_id: Optional[str] = None
note: Optional[str] = None
rebate_code_id: int = 0
rebate_code_sign: Optional[str] = None
rebate_code_type_id: Optional[int] = None
rebate_code_type_name: Optional[str] = None
amount: float = 0.0
usage: Optional[str] = None
booking_id: Optional[int] = None
updated_date: datetime.datetime = datetime.datetime(1, 1, 1)
created_date: datetime.datetime = datetime.datetime(1, 1, 1)
service: Optional[RebateCodeServiceResponse] = None
customer: Optional[RebateCodeCustomerResponse] = None
price_sign: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RebateCodeTransactionResponse:
response_status: Optional[ResponseStatus] = None
rebate_code_transaction_item: Optional[RebateCodeTransactionQueryResponse] = None
class AmountChangeType(str, Enum):
INCREASE = 'Increase'
DECREASE = 'Decrease'
# @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
# @ValidateRequest(Validator="IsAuthenticated")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateRebateCodeTransaction:
# @ApiMember(Description="", IsRequired=true)
company_id: Optional[str] = None
"""
"""
# @ApiMember(Description="Rebate code id to which you wish to add transaction", IsRequired=true)
rebate_code_id: int = 0
"""
Rebate code id to which you wish to add transaction
"""
# @ApiMember(IsRequired=true)
amount: float = 0.0
# @ApiMember(IsRequired=true)
usage: int = 0
# @ApiMember()
booking_id: Optional[int] = None
# @ApiMember(Description="If you want to Increase = 0 or Decrease = 1 the value", IsRequired=true)
change_type: Optional[AmountChangeType] = None
"""
If you want to Increase = 0 or Decrease = 1 the value
"""
Python CreateRebateCodeTransaction DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /rebatecodes/transactions HTTP/1.1
Host: api.bokamera.se
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
CompanyId: 00000000-0000-0000-0000-000000000000,
RebateCodeId: 0,
Amount: 0,
Usage: 0,
BookingId: 0,
ChangeType: Increase
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
RebateCodeTransactionItem:
{
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
}
}