| Requires the role: | Admin | Requires the permission: | ReadData |
| POST | /Support/Customer360 |
|---|
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 SupportTicketRow:
ticket_id: Optional[int] = None
ticket_token_id: Optional[str] = None
event_id: Optional[int] = None
event: Optional[str] = None
time_of_event_u_t_c: Optional[datetime.datetime] = None
event_owner_id: Optional[int] = None
event_owner_name: Optional[str] = None
ticket_status: Optional[str] = None
ticket_name: Optional[str] = None
payment_method_id: Optional[str] = None
payment_id: Optional[str] = None
payment_reference: Optional[str] = None
timestamp_bought: Optional[datetime.datetime] = None
timestamp_activated: Optional[datetime.datetime] = None
holder_name: Optional[str] = None
phone_verification_number: Optional[str] = None
payment_phone_number: Optional[str] = None
seat_display_string: Optional[str] = None
section_name: Optional[str] = None
row_name: Optional[str] = None
seat_name: Optional[str] = None
total_price: Optional[Decimal] = None
count: Optional[int] = None
ticket_transferred_from: Optional[int] = None
original_phone_verification_number: Optional[str] = None
device_id: Optional[str] = None
never_opened: Optional[bool] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportOwnerCardRow:
id: Optional[int] = None
owner_id: Optional[int] = None
owner_name: Optional[str] = None
owner_card_type_id: Optional[int] = None
owner_card_type_name: Optional[str] = None
holder_name: Optional[str] = None
holder_email: Optional[str] = None
phone_verification_number: Optional[str] = None
payment_phone_number: Optional[str] = None
payment_status: Optional[str] = None
payment_method_id: Optional[str] = None
payment_id: Optional[str] = None
payment_reference: Optional[str] = None
time_stamp_bought_u_t_c: Optional[datetime.datetime] = None
card_valid_from_u_t_c: Optional[datetime.datetime] = None
card_valid_to_u_t_c: Optional[datetime.datetime] = None
initial_max_tickets: Optional[int] = None
current_available_tickets: Optional[int] = None
card_price: Optional[Decimal] = None
price_paid: Optional[Decimal] = None
current_store_credit: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WebshopOrderLine:
id: Optional[int] = None
order_id: Optional[int] = None
product_id: Optional[int] = None
variant_id: Optional[int] = None
# @StringLength(200)
product_name: Optional[str] = None
# @StringLength(50)
size: Optional[str] = None
# @StringLength(50)
color: Optional[str] = None
unit_price_minor: Optional[int] = None
quantity: Optional[int] = None
line_total_minor: Optional[int] = None
# @StringLength(20)
status: Optional[str] = None
legacy_detail_id: Optional[int] = None
created_at: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportWebshopOrderRow:
id: Optional[int] = None
order_reference: Optional[str] = None
owner_id: Optional[int] = None
owner_name: Optional[str] = None
status: Optional[str] = None
total_minor: Optional[int] = None
delivery_fee_minor: Optional[int] = None
total_discount_minor: Optional[int] = None
gift_paid_minor: Optional[int] = None
currency: Optional[str] = None
delivery_type: Optional[str] = None
payment_method_id: Optional[str] = None
payment_id: Optional[str] = None
payment_reference: Optional[str] = None
created_at: Optional[datetime.datetime] = None
updated_at: Optional[datetime.datetime] = None
buyer_name: Optional[str] = None
buyer_email: Optional[str] = None
buyer_phone: Optional[str] = None
lines: Optional[List[WebshopOrderLine]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportGiftCardRow:
id: Optional[int] = None
code_last4: Optional[str] = None
code_masked: Optional[str] = None
status: Optional[str] = None
scope: Optional[str] = None
scope_owner_id: Optional[int] = None
scope_owner_name: Optional[str] = None
purchase_owner_id: Optional[int] = None
purchase_owner_name: Optional[str] = None
currency: Optional[str] = None
initial_value_minor: Optional[int] = None
current_balance_minor: Optional[int] = None
created_at: Optional[datetime.datetime] = None
activated_at: Optional[datetime.datetime] = None
expires_at: Optional[datetime.datetime] = None
purchase_payment_reference: Optional[str] = None
payment_id: Optional[str] = None
payment_method_id: Optional[str] = None
buyer_name: Optional[str] = None
buyer_email: Optional[str] = None
buyer_phone: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportSharedLinkRow:
id: Optional[int] = None
event_id: Optional[int] = None
event_name: Optional[str] = None
event_owner_id: Optional[int] = None
event_owner_name: Optional[str] = None
status: Optional[str] = None
recipient_phone: Optional[str] = None
recipient_email: Optional[str] = None
ticket_count: Optional[int] = None
created_at: Optional[datetime.datetime] = None
valid_to: Optional[datetime.datetime] = None
sold_at: Optional[datetime.datetime] = None
sold_ticket_order_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportCustomerTotals:
ticket_spend: Optional[Decimal] = None
ticket_spend_live: Optional[Decimal] = None
webshop_spend_minor: Optional[int] = None
gift_card_spend_minor: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportCustomer360Result:
phone: Optional[str] = None
email: Optional[str] = None
tickets: Optional[List[SupportTicketRow]] = None
owner_cards: Optional[List[SupportOwnerCardRow]] = None
webshop_orders: Optional[List[SupportWebshopOrderRow]] = None
gift_cards: Optional[List[SupportGiftCardRow]] = None
shared_ticket_links: Optional[List[SupportSharedLinkRow]] = None
totals: Optional[SupportCustomerTotals] = None
warnings: Optional[List[str]] = None
status_code: Optional[int] = None
message: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupportCustomer360Request:
phone: Optional[str] = None
email: Optional[str] = None
Python SupportCustomer360Request DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Support/Customer360 HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<SupportCustomer360Request xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
<Email>String</Email>
<Phone>String</Phone>
</SupportCustomer360Request>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<SupportCustomer360Result xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
<Email>String</Email>
<GiftCards>
<SupportGiftCardRow>
<ActivatedAt>0001-01-01T00:00:00</ActivatedAt>
<BuyerEmail>String</BuyerEmail>
<BuyerName>String</BuyerName>
<BuyerPhone>String</BuyerPhone>
<CodeLast4>String</CodeLast4>
<CodeMasked>String</CodeMasked>
<CreatedAt>0001-01-01T00:00:00</CreatedAt>
<Currency>String</Currency>
<CurrentBalanceMinor>0</CurrentBalanceMinor>
<ExpiresAt>0001-01-01T00:00:00</ExpiresAt>
<ID>0</ID>
<InitialValueMinor>0</InitialValueMinor>
<PaymentId>String</PaymentId>
<PaymentMethodId>String</PaymentMethodId>
<PurchaseOwnerId>0</PurchaseOwnerId>
<PurchaseOwnerName>String</PurchaseOwnerName>
<PurchasePaymentReference>String</PurchasePaymentReference>
<Scope>String</Scope>
<ScopeOwnerId>0</ScopeOwnerId>
<ScopeOwnerName>String</ScopeOwnerName>
<Status>String</Status>
</SupportGiftCardRow>
</GiftCards>
<Message>String</Message>
<OwnerCards>
<SupportOwnerCardRow>
<CardPrice>0</CardPrice>
<CardValidFromUTC>0001-01-01T00:00:00</CardValidFromUTC>
<CardValidToUTC>0001-01-01T00:00:00</CardValidToUTC>
<CurrentAvailableTickets>0</CurrentAvailableTickets>
<CurrentStoreCredit>0</CurrentStoreCredit>
<HolderEmail>String</HolderEmail>
<HolderName>String</HolderName>
<ID>0</ID>
<InitialMaxTickets>0</InitialMaxTickets>
<OwnerCardTypeId>0</OwnerCardTypeId>
<OwnerCardTypeName>String</OwnerCardTypeName>
<OwnerId>0</OwnerId>
<OwnerName>String</OwnerName>
<PaymentId>String</PaymentId>
<PaymentMethodId>String</PaymentMethodId>
<PaymentPhoneNumber>String</PaymentPhoneNumber>
<PaymentReference>String</PaymentReference>
<PaymentStatus>String</PaymentStatus>
<PhoneVerificationNumber>String</PhoneVerificationNumber>
<PricePaid>0</PricePaid>
<TimeStampBoughtUTC>0001-01-01T00:00:00</TimeStampBoughtUTC>
</SupportOwnerCardRow>
</OwnerCards>
<Phone>String</Phone>
<SharedTicketLinks>
<SupportSharedLinkRow>
<CreatedAt>0001-01-01T00:00:00</CreatedAt>
<EventId>0</EventId>
<EventName>String</EventName>
<EventOwnerId>0</EventOwnerId>
<EventOwnerName>String</EventOwnerName>
<ID>0</ID>
<RecipientEmail>String</RecipientEmail>
<RecipientPhone>String</RecipientPhone>
<SoldAt>0001-01-01T00:00:00</SoldAt>
<SoldTicketOrderId>0</SoldTicketOrderId>
<Status>String</Status>
<TicketCount>0</TicketCount>
<ValidTo>0001-01-01T00:00:00</ValidTo>
</SupportSharedLinkRow>
</SharedTicketLinks>
<StatusCode>0</StatusCode>
<Tickets>
<SupportTicketRow>
<Count>0</Count>
<DeviceId>String</DeviceId>
<Event>String</Event>
<EventId>0</EventId>
<EventOwnerId>0</EventOwnerId>
<EventOwnerName>String</EventOwnerName>
<HolderName>String</HolderName>
<NeverOpened>false</NeverOpened>
<OriginalPhoneVerificationNumber>String</OriginalPhoneVerificationNumber>
<PaymentId>String</PaymentId>
<PaymentMethodId>String</PaymentMethodId>
<PaymentPhoneNumber>String</PaymentPhoneNumber>
<PaymentReference>String</PaymentReference>
<PhoneVerificationNumber>String</PhoneVerificationNumber>
<RowName>String</RowName>
<SeatDisplayString>String</SeatDisplayString>
<SeatName>String</SeatName>
<SectionName>String</SectionName>
<TicketId>0</TicketId>
<TicketName>String</TicketName>
<TicketStatus>String</TicketStatus>
<TicketTokenId>String</TicketTokenId>
<TicketTransferredFrom>0</TicketTransferredFrom>
<TimeOfEventUTC>0001-01-01T00:00:00</TimeOfEventUTC>
<TimestampActivated>0001-01-01T00:00:00</TimestampActivated>
<TimestampBought>0001-01-01T00:00:00</TimestampBought>
<TotalPrice>0</TotalPrice>
</SupportTicketRow>
</Tickets>
<Totals>
<GiftCardSpendMinor>0</GiftCardSpendMinor>
<TicketSpend>0</TicketSpend>
<TicketSpendLive>0</TicketSpendLive>
<WebshopSpendMinor>0</WebshopSpendMinor>
</Totals>
<Warnings xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>String</d2p1:string>
</Warnings>
<WebshopOrders>
<SupportWebshopOrderRow>
<BuyerEmail>String</BuyerEmail>
<BuyerName>String</BuyerName>
<BuyerPhone>String</BuyerPhone>
<CreatedAt>0001-01-01T00:00:00</CreatedAt>
<Currency>String</Currency>
<DeliveryFeeMinor>0</DeliveryFeeMinor>
<DeliveryType>String</DeliveryType>
<GiftPaidMinor>0</GiftPaidMinor>
<ID>0</ID>
<Lines xmlns:d4p1="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel.Types">
<d4p1:WebshopOrderLine>
<d4p1:Color>String</d4p1:Color>
<d4p1:CreatedAt>0001-01-01T00:00:00</d4p1:CreatedAt>
<d4p1:ID>0</d4p1:ID>
<d4p1:LegacyDetailId>0</d4p1:LegacyDetailId>
<d4p1:LineTotalMinor>0</d4p1:LineTotalMinor>
<d4p1:OrderId>0</d4p1:OrderId>
<d4p1:ProductId>0</d4p1:ProductId>
<d4p1:ProductName>String</d4p1:ProductName>
<d4p1:Quantity>0</d4p1:Quantity>
<d4p1:Size>String</d4p1:Size>
<d4p1:Status>String</d4p1:Status>
<d4p1:UnitPriceMinor>0</d4p1:UnitPriceMinor>
<d4p1:VariantId>0</d4p1:VariantId>
</d4p1:WebshopOrderLine>
</Lines>
<OrderReference>String</OrderReference>
<OwnerId>0</OwnerId>
<OwnerName>String</OwnerName>
<PaymentId>String</PaymentId>
<PaymentMethodId>String</PaymentMethodId>
<PaymentReference>String</PaymentReference>
<Status>String</Status>
<TotalDiscountMinor>0</TotalDiscountMinor>
<TotalMinor>0</TotalMinor>
<UpdatedAt>0001-01-01T00:00:00</UpdatedAt>
</SupportWebshopOrderRow>
</WebshopOrders>
</SupportCustomer360Result>