Requires any of the roles: | bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read |
GET | /gdpr/customers/inactive | Get all customers that have been inactive due to the filtering. | Get all customers that have been inactive due to the filtering you add in the request. |
---|
import 'package:servicestack/servicestack.dart';
class InactiveCustomerInfo implements IConvertible
{
String? Id;
String? Firstname;
String? Lastname;
String? Email;
String? Phone;
String? FacebookUserName;
Uri? ImageUrl;
InactiveCustomerInfo({this.Id,this.Firstname,this.Lastname,this.Email,this.Phone,this.FacebookUserName,this.ImageUrl});
InactiveCustomerInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Firstname = json['Firstname'];
Lastname = json['Lastname'];
Email = json['Email'];
Phone = json['Phone'];
FacebookUserName = json['FacebookUserName'];
ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Firstname': Firstname,
'Lastname': Lastname,
'Email': Email,
'Phone': Phone,
'FacebookUserName': FacebookUserName,
'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!)
};
getTypeName() => "InactiveCustomerInfo";
TypeContext? context = _ctx;
}
class InactiveCustomerResponse implements IConvertible
{
String? Id;
InactiveCustomerInfo? Customer;
InactiveCustomerResponse({this.Id,this.Customer});
InactiveCustomerResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Customer = JsonConverters.fromJson(json['Customer'],'InactiveCustomerInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Customer': JsonConverters.toJson(Customer,'InactiveCustomerInfo',context!)
};
getTypeName() => "InactiveCustomerResponse";
TypeContext? context = _ctx;
}
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
class GDPRInactiveCustomerQuery implements ICompany, IConvertible
{
/**
* The company id, if empty will use the company id for the user you are logged in with.
*/
// @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
String? CompanyId;
/**
* Inactive customers since the date. Inactive means they haven't done any bookings since that date.
*/
// @ApiMember(Description="Inactive customers since the date. Inactive means they haven't done any bookings since that date.", IsRequired=true)
DateTime? InactiveSince;
/**
* If you want to include the full customer information in the response
*/
// @ApiMember(Description="If you want to include the full customer information in the response")
bool? IncludeCustomerInformation;
GDPRInactiveCustomerQuery({this.CompanyId,this.InactiveSince,this.IncludeCustomerInformation});
GDPRInactiveCustomerQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CompanyId = json['CompanyId'];
InactiveSince = JsonConverters.fromJson(json['InactiveSince'],'DateTime',context!);
IncludeCustomerInformation = json['IncludeCustomerInformation'];
return this;
}
Map<String, dynamic> toJson() => {
'CompanyId': CompanyId,
'InactiveSince': JsonConverters.toJson(InactiveSince,'DateTime',context!),
'IncludeCustomerInformation': IncludeCustomerInformation
};
getTypeName() => "GDPRInactiveCustomerQuery";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
'InactiveCustomerInfo': TypeInfo(TypeOf.Class, create:() => InactiveCustomerInfo()),
'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
'InactiveCustomerResponse': TypeInfo(TypeOf.Class, create:() => InactiveCustomerResponse()),
'GDPRInactiveCustomerQuery': TypeInfo(TypeOf.Class, create:() => GDPRInactiveCustomerQuery()),
});
Dart GDPRInactiveCustomerQuery 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.
GET /gdpr/customers/inactive HTTP/1.1 Host: api.bokamera.se Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Customer: { Firstname: String, Lastname: String, Email: String, Phone: String, FacebookUserName: String } }