| Requires the role: | Admin | Requires the permission: | ReadData |
| POST | /Support/Customer360 |
|---|
import Foundation
import ServiceStack
public class SupportCustomer360Request : Codable
{
public var phone:String?
public var email:String?
required public init(){}
}
public class SupportCustomer360Result : Codable
{
public var phone:String?
public var email:String?
public var tickets:[SupportTicketRow] = []
public var ownerCards:[SupportOwnerCardRow] = []
public var webshopOrders:[SupportWebshopOrderRow] = []
public var giftCards:[SupportGiftCardRow] = []
public var sharedTicketLinks:[SupportSharedLinkRow] = []
public var totals:SupportCustomerTotals?
public var warnings:[String] = []
public var statusCode:Int?
public var message:String?
required public init(){}
}
public class SupportTicketRow : Codable
{
public var ticketId:Int?
public var ticketTokenId:String?
public var eventId:Int?
public var event:String?
public var timeOfEventUTC:Date?
public var eventOwnerId:Int?
public var eventOwnerName:String?
public var ticketStatus:String?
public var ticketName:String?
public var paymentMethodId:String?
public var paymentId:String?
public var paymentReference:String?
public var timestampBought:Date?
public var timestampActivated:Date?
public var holderName:String?
public var phoneVerificationNumber:String?
public var paymentPhoneNumber:String?
public var seatDisplayString:String?
public var sectionName:String?
public var rowName:String?
public var seatName:String?
public var totalPrice:Double?
public var count:Int?
public var ticketTransferredFrom:Int?
public var originalPhoneVerificationNumber:String?
public var deviceId:String?
public var neverOpened:Bool?
required public init(){}
}
public class SupportOwnerCardRow : Codable
{
public var id:Int?
public var ownerId:Int?
public var ownerName:String?
public var ownerCardTypeId:Int?
public var ownerCardTypeName:String?
public var holderName:String?
public var holderEmail:String?
public var phoneVerificationNumber:String?
public var paymentPhoneNumber:String?
public var paymentStatus:String?
public var paymentMethodId:String?
public var paymentId:String?
public var paymentReference:String?
public var timeStampBoughtUTC:Date?
public var cardValidFromUTC:Date?
public var cardValidToUTC:Date?
public var initialMaxTickets:Int?
public var currentAvailableTickets:Int?
public var cardPrice:Double?
public var pricePaid:Double?
public var currentStoreCredit:Double?
required public init(){}
}
public class SupportWebshopOrderRow : Codable
{
public var id:Int?
public var orderReference:String?
public var ownerId:Int?
public var ownerName:String?
public var status:String?
public var totalMinor:Int?
public var deliveryFeeMinor:Int?
public var totalDiscountMinor:Int?
public var giftPaidMinor:Int?
public var currency:String?
public var deliveryType:String?
public var paymentMethodId:String?
public var paymentId:String?
public var paymentReference:String?
public var createdAt:Date?
public var updatedAt:Date?
public var buyerName:String?
public var buyerEmail:String?
public var buyerPhone:String?
public var lines:[WebshopOrderLine] = []
required public init(){}
}
public class WebshopOrderLine : Codable
{
public var id:Int?
public var orderId:Int?
public var productId:Int?
public var variantId:Int?
// @StringLength(200)
public var productName:String?
// @StringLength(50)
public var size:String?
// @StringLength(50)
public var color:String?
public var unitPriceMinor:Int?
public var quantity:Int?
public var lineTotalMinor:Int?
// @StringLength(20)
public var status:String?
public var legacyDetailId:Int?
public var createdAt:Date?
required public init(){}
}
public class SupportGiftCardRow : Codable
{
public var id:Int?
public var codeLast4:String?
public var codeMasked:String?
public var status:String?
public var scope:String?
public var scopeOwnerId:Int?
public var scopeOwnerName:String?
public var purchaseOwnerId:Int?
public var purchaseOwnerName:String?
public var currency:String?
public var initialValueMinor:Int?
public var currentBalanceMinor:Int?
public var createdAt:Date?
public var activatedAt:Date?
public var expiresAt:Date?
public var purchasePaymentReference:String?
public var paymentId:String?
public var paymentMethodId:String?
public var buyerName:String?
public var buyerEmail:String?
public var buyerPhone:String?
required public init(){}
}
public class SupportSharedLinkRow : Codable
{
public var id:Int?
public var eventId:Int?
public var eventName:String?
public var eventOwnerId:Int?
public var eventOwnerName:String?
public var status:String?
public var recipientPhone:String?
public var recipientEmail:String?
public var ticketCount:Int?
public var createdAt:Date?
public var validTo:Date?
public var soldAt:Date?
public var soldTicketOrderId:Int?
required public init(){}
}
public class SupportCustomerTotals : Codable
{
public var ticketSpend:Double?
public var ticketSpendLive:Double?
public var webshopSpendMinor:Int?
public var giftCardSpendMinor:Int?
required public init(){}
}
Swift SupportCustomer360Request 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 /Support/Customer360 HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
phone: String,
email: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
phone: String,
email: String,
tickets:
[
{
ticketId: 0,
ticketTokenId: String,
eventId: 0,
event: String,
timeOfEventUTC: 0001-01-01,
eventOwnerId: 0,
eventOwnerName: String,
ticketStatus: String,
ticketName: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
timestampBought: 0001-01-01,
timestampActivated: 0001-01-01,
holderName: String,
phoneVerificationNumber: String,
paymentPhoneNumber: String,
seatDisplayString: String,
sectionName: String,
rowName: String,
seatName: String,
totalPrice: 0,
count: 0,
ticketTransferredFrom: 0,
originalPhoneVerificationNumber: String,
deviceId: String,
neverOpened: False
}
],
ownerCards:
[
{
id: 0,
ownerId: 0,
ownerName: String,
ownerCardTypeId: 0,
ownerCardTypeName: String,
holderName: String,
holderEmail: String,
phoneVerificationNumber: String,
paymentPhoneNumber: String,
paymentStatus: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
timeStampBoughtUTC: 0001-01-01,
cardValidFromUTC: 0001-01-01,
cardValidToUTC: 0001-01-01,
initialMaxTickets: 0,
currentAvailableTickets: 0,
cardPrice: 0,
pricePaid: 0,
currentStoreCredit: 0
}
],
webshopOrders:
[
{
id: 0,
orderReference: String,
ownerId: 0,
ownerName: String,
status: String,
totalMinor: 0,
deliveryFeeMinor: 0,
totalDiscountMinor: 0,
giftPaidMinor: 0,
currency: String,
deliveryType: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
createdAt: 0001-01-01,
updatedAt: 0001-01-01,
buyerName: String,
buyerEmail: String,
buyerPhone: String,
lines:
[
{
id: 0,
orderId: 0,
productId: 0,
variantId: 0,
productName: String,
size: String,
color: String,
unitPriceMinor: 0,
quantity: 0,
lineTotalMinor: 0,
status: String,
legacyDetailId: 0,
createdAt: 0001-01-01
}
]
}
],
giftCards:
[
{
id: 0,
codeLast4: String,
codeMasked: String,
status: String,
scope: String,
scopeOwnerId: 0,
scopeOwnerName: String,
purchaseOwnerId: 0,
purchaseOwnerName: String,
currency: String,
initialValueMinor: 0,
currentBalanceMinor: 0,
createdAt: 0001-01-01,
activatedAt: 0001-01-01,
expiresAt: 0001-01-01,
purchasePaymentReference: String,
paymentId: String,
paymentMethodId: String,
buyerName: String,
buyerEmail: String,
buyerPhone: String
}
],
sharedTicketLinks:
[
{
id: 0,
eventId: 0,
eventName: String,
eventOwnerId: 0,
eventOwnerName: String,
status: String,
recipientPhone: String,
recipientEmail: String,
ticketCount: 0,
createdAt: 0001-01-01,
validTo: 0001-01-01,
soldAt: 0001-01-01,
soldTicketOrderId: 0
}
],
totals:
{
ticketSpend: 0,
ticketSpendLive: 0,
webshopSpendMinor: 0,
giftCardSpendMinor: 0
},
warnings:
[
String
],
statusCode: 0,
message: String
}