| Requires any of the roles: | Admin, TeamAdmin, MobileApp | Required permission: | Tickets.Add |
| POST | /ownerTicketType/LastSold | Last completed purchase per owner ticket type | Returns MAX(Ticket.TimestampBought) grouped by EventSeriesOwnerTicketType for all of the owner's ticket types. Live sales only (CONFIRMED/USED); ticket types never sold are omitted. |
|---|
import 'package:servicestack/servicestack.dart';
class OwnerTicketTypeLastSoldInfo implements IConvertible
{
int? ticketTypeId;
DateTime? lastSoldAt;
OwnerTicketTypeLastSoldInfo({this.ticketTypeId,this.lastSoldAt});
OwnerTicketTypeLastSoldInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ticketTypeId = json['ticketTypeId'];
lastSoldAt = JsonConverters.fromJson(json['lastSoldAt'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ticketTypeId': ticketTypeId,
'lastSoldAt': JsonConverters.toJson(lastSoldAt,'DateTime',context!)
};
getTypeName() => "OwnerTicketTypeLastSoldInfo";
TypeContext? context = _ctx;
}
class OwnerTicketTypeLastSoldResult implements IConvertible
{
List<OwnerTicketTypeLastSoldInfo>? items;
int? statusCode;
String? message;
OwnerTicketTypeLastSoldResult({this.items,this.statusCode,this.message});
OwnerTicketTypeLastSoldResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
items = JsonConverters.fromJson(json['items'],'List<OwnerTicketTypeLastSoldInfo>',context!);
statusCode = json['statusCode'];
message = json['message'];
return this;
}
Map<String, dynamic> toJson() => {
'items': JsonConverters.toJson(items,'List<OwnerTicketTypeLastSoldInfo>',context!),
'statusCode': statusCode,
'message': message
};
getTypeName() => "OwnerTicketTypeLastSoldResult";
TypeContext? context = _ctx;
}
class OwnerTicketTypeLastSoldRequest implements IConvertible
{
int? ownerId;
OwnerTicketTypeLastSoldRequest({this.ownerId});
OwnerTicketTypeLastSoldRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ownerId = json['ownerId'];
return this;
}
Map<String, dynamic> toJson() => {
'ownerId': ownerId
};
getTypeName() => "OwnerTicketTypeLastSoldRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
'OwnerTicketTypeLastSoldInfo': TypeInfo(TypeOf.Class, create:() => OwnerTicketTypeLastSoldInfo()),
'OwnerTicketTypeLastSoldResult': TypeInfo(TypeOf.Class, create:() => OwnerTicketTypeLastSoldResult()),
'List<OwnerTicketTypeLastSoldInfo>': TypeInfo(TypeOf.Class, create:() => <OwnerTicketTypeLastSoldInfo>[]),
'OwnerTicketTypeLastSoldRequest': TypeInfo(TypeOf.Class, create:() => OwnerTicketTypeLastSoldRequest()),
});
Dart OwnerTicketTypeLastSoldRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /ownerTicketType/LastSold HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"ownerId":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"items":[{"ticketTypeId":0,"lastSoldAt":"0001-01-01T00:00:00.0000000"}],"statusCode":0,"message":"String"}