BokaMera.API.Host

<back to all web services

GDPRCustomerQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read
The following routes are available for this service:
GET/gdpr/customers/{CustomerId}Get all customer information stored on the customerGet all information stored on the customer
import 'package:servicestack/servicestack.dart';

class GDPRCustomerBookingsResponse implements IConvertible
{
    /**
    * The company ID associated with this booking
    */
    // @ApiMember(Description="The company ID associated with this booking")
    String? CompanyId;

    /**
    * The unique identifier of the booking
    */
    // @ApiMember(Description="The unique identifier of the booking")
    int? Id;

    /**
    * The customer ID associated with this booking
    */
    // @ApiMember(Description="The customer ID associated with this booking")
    String? CustomerId;

    /**
    * The service ID for this booking
    */
    // @ApiMember(Description="The service ID for this booking")
    int? ServiceId;

    /**
    * The current status of the booking
    */
    // @ApiMember(Description="The current status of the booking")
    int? StatusId;

    /**
    * The start date and time of the booking
    */
    // @ApiMember(Description="The start date and time of the booking")
    DateTime? From;

    /**
    * The end date and time of the booking
    */
    // @ApiMember(Description="The end date and time of the booking")
    DateTime? To;

    /**
    * The date when the booking was cancelled or unbooked
    */
    // @ApiMember(Description="The date when the booking was cancelled or unbooked")
    DateTime? UnbookedOn;

    /**
    * Comments added when the booking was cancelled
    */
    // @ApiMember(Description="Comments added when the booking was cancelled")
    String? UnbookedComments;

    /**
    * Comments added when the booking was created
    */
    // @ApiMember(Description="Comments added when the booking was created")
    String? BookedComments;

    /**
    * The name of the person who made the booking
    */
    // @ApiMember(Description="The name of the person who made the booking")
    String? BookedBy;

    /**
    * General comments about the booking
    */
    // @ApiMember(Description="General comments about the booking")
    String? Comments;

    /**
    * Custom text field 1
    */
    // @ApiMember(Description="Custom text field 1")
    String? TextField1;

    /**
    * Custom text field 2
    */
    // @ApiMember(Description="Custom text field 2")
    String? TextField2;

    /**
    * Custom text field 3
    */
    // @ApiMember(Description="Custom text field 3")
    String? TextField3;

    /**
    * Custom text field 4
    */
    // @ApiMember(Description="Custom text field 4")
    String? TextField4;

    /**
    * Custom text field 5
    */
    // @ApiMember(Description="Custom text field 5")
    String? TextField5;

    /**
    * Custom text field 6
    */
    // @ApiMember(Description="Custom text field 6")
    String? TextField6;

    /**
    * Custom text field 7
    */
    // @ApiMember(Description="Custom text field 7")
    String? TextField7;

    /**
    * Custom text field 8
    */
    // @ApiMember(Description="Custom text field 8")
    String? TextField8;

    /**
    * Custom text field 9
    */
    // @ApiMember(Description="Custom text field 9")
    String? TextField9;

    /**
    * Custom text field 10
    */
    // @ApiMember(Description="Custom text field 10")
    String? TextField10;

    /**
    * Custom text field 11
    */
    // @ApiMember(Description="Custom text field 11")
    String? TextField11;

    /**
    * Custom text field 12
    */
    // @ApiMember(Description="Custom text field 12")
    String? TextField12;

    /**
    * Custom text field 13
    */
    // @ApiMember(Description="Custom text field 13")
    String? TextField13;

    /**
    * Custom text field 14
    */
    // @ApiMember(Description="Custom text field 14")
    String? TextField14;

    /**
    * Custom text field 15
    */
    // @ApiMember(Description="Custom text field 15")
    String? TextField15;

    /**
    * Custom text field 16
    */
    // @ApiMember(Description="Custom text field 16")
    String? TextField16;

    /**
    * Custom text field 17
    */
    // @ApiMember(Description="Custom text field 17")
    String? TextField17;

    /**
    * Custom text field 18
    */
    // @ApiMember(Description="Custom text field 18")
    String? TextField18;

    /**
    * Custom text field 19
    */
    // @ApiMember(Description="Custom text field 19")
    String? TextField19;

    /**
    * Custom text field 20
    */
    // @ApiMember(Description="Custom text field 20")
    String? TextField20;

    /**
    * The date when the booking was last updated
    */
    // @ApiMember(Description="The date when the booking was last updated")
    DateTime? UpdatedDate;

    /**
    * The date when the booking was created
    */
    // @ApiMember(Description="The date when the booking was created")
    DateTime? CreatedDate;

    /**
    * Comments sent to the customer about this booking
    */
    // @ApiMember(Description="Comments sent to the customer about this booking")
    String? CommentsToCustomer;

    GDPRCustomerBookingsResponse({this.CompanyId,this.Id,this.CustomerId,this.ServiceId,this.StatusId,this.From,this.To,this.UnbookedOn,this.UnbookedComments,this.BookedComments,this.BookedBy,this.Comments,this.TextField1,this.TextField2,this.TextField3,this.TextField4,this.TextField5,this.TextField6,this.TextField7,this.TextField8,this.TextField9,this.TextField10,this.TextField11,this.TextField12,this.TextField13,this.TextField14,this.TextField15,this.TextField16,this.TextField17,this.TextField18,this.TextField19,this.TextField20,this.UpdatedDate,this.CreatedDate,this.CommentsToCustomer});
    GDPRCustomerBookingsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        CustomerId = json['CustomerId'];
        ServiceId = json['ServiceId'];
        StatusId = json['StatusId'];
        From = JsonConverters.fromJson(json['From'],'DateTime',context!);
        To = JsonConverters.fromJson(json['To'],'DateTime',context!);
        UnbookedOn = JsonConverters.fromJson(json['UnbookedOn'],'DateTime',context!);
        UnbookedComments = json['UnbookedComments'];
        BookedComments = json['BookedComments'];
        BookedBy = json['BookedBy'];
        Comments = json['Comments'];
        TextField1 = json['TextField1'];
        TextField2 = json['TextField2'];
        TextField3 = json['TextField3'];
        TextField4 = json['TextField4'];
        TextField5 = json['TextField5'];
        TextField6 = json['TextField6'];
        TextField7 = json['TextField7'];
        TextField8 = json['TextField8'];
        TextField9 = json['TextField9'];
        TextField10 = json['TextField10'];
        TextField11 = json['TextField11'];
        TextField12 = json['TextField12'];
        TextField13 = json['TextField13'];
        TextField14 = json['TextField14'];
        TextField15 = json['TextField15'];
        TextField16 = json['TextField16'];
        TextField17 = json['TextField17'];
        TextField18 = json['TextField18'];
        TextField19 = json['TextField19'];
        TextField20 = json['TextField20'];
        UpdatedDate = JsonConverters.fromJson(json['UpdatedDate'],'DateTime',context!);
        CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
        CommentsToCustomer = json['CommentsToCustomer'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'CustomerId': CustomerId,
        'ServiceId': ServiceId,
        'StatusId': StatusId,
        'From': JsonConverters.toJson(From,'DateTime',context!),
        'To': JsonConverters.toJson(To,'DateTime',context!),
        'UnbookedOn': JsonConverters.toJson(UnbookedOn,'DateTime',context!),
        'UnbookedComments': UnbookedComments,
        'BookedComments': BookedComments,
        'BookedBy': BookedBy,
        'Comments': Comments,
        'TextField1': TextField1,
        'TextField2': TextField2,
        'TextField3': TextField3,
        'TextField4': TextField4,
        'TextField5': TextField5,
        'TextField6': TextField6,
        'TextField7': TextField7,
        'TextField8': TextField8,
        'TextField9': TextField9,
        'TextField10': TextField10,
        'TextField11': TextField11,
        'TextField12': TextField12,
        'TextField13': TextField13,
        'TextField14': TextField14,
        'TextField15': TextField15,
        'TextField16': TextField16,
        'TextField17': TextField17,
        'TextField18': TextField18,
        'TextField19': TextField19,
        'TextField20': TextField20,
        'UpdatedDate': JsonConverters.toJson(UpdatedDate,'DateTime',context!),
        'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
        'CommentsToCustomer': CommentsToCustomer
    };

    getTypeName() => "GDPRCustomerBookingsResponse";
    TypeContext? context = _ctx;
}

class GDPRCustomerMessageLogResponse implements IConvertible
{
    /**
    * The company ID associated with this message
    */
    // @ApiMember(Description="The company ID associated with this message")
    String? CompanyId;

    /**
    * The unique identifier of the message
    */
    // @ApiMember(Description="The unique identifier of the message")
    int? Id;

    /**
    * The booking ID this message is related to, if any
    */
    // @ApiMember(Description="The booking ID this message is related to, if any")
    int? BookingId;

    /**
    * The recipient of the message
    */
    // @ApiMember(Description="The recipient of the message")
    String? Receiver;

    /**
    * The sender of the message
    */
    // @ApiMember(Description="The sender of the message")
    String? Sender;

    /**
    * The title or subject of the message
    */
    // @ApiMember(Description="The title or subject of the message")
    String? MessageTitle;

    /**
    * The body content of the message
    */
    // @ApiMember(Description="The body content of the message")
    String? MessageBody;

    /**
    * The name of the person who created the message
    */
    // @ApiMember(Description="The name of the person who created the message")
    String? CreatedBy;

    /**
    * The date when the message was created
    */
    // @ApiMember(Description="The date when the message was created")
    DateTime? Created;

    /**
    * Whether the message was successfully sent
    */
    // @ApiMember(Description="Whether the message was successfully sent")
    bool? Sent;

    /**
    * The date when the message was sent
    */
    // @ApiMember(Description="The date when the message was sent")
    DateTime? SentDate;

    /**
    * The method used to send the message (e.g., email, SMS)
    */
    // @ApiMember(Description="The method used to send the message (e.g., email, SMS)")
    int? SendMethodId;

    GDPRCustomerMessageLogResponse({this.CompanyId,this.Id,this.BookingId,this.Receiver,this.Sender,this.MessageTitle,this.MessageBody,this.CreatedBy,this.Created,this.Sent,this.SentDate,this.SendMethodId});
    GDPRCustomerMessageLogResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        BookingId = json['BookingId'];
        Receiver = json['Receiver'];
        Sender = json['Sender'];
        MessageTitle = json['MessageTitle'];
        MessageBody = json['MessageBody'];
        CreatedBy = json['CreatedBy'];
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        Sent = json['Sent'];
        SentDate = JsonConverters.fromJson(json['SentDate'],'DateTime',context!);
        SendMethodId = json['SendMethodId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'BookingId': BookingId,
        'Receiver': Receiver,
        'Sender': Sender,
        'MessageTitle': MessageTitle,
        'MessageBody': MessageBody,
        'CreatedBy': CreatedBy,
        'Created': JsonConverters.toJson(Created,'DateTime',context!),
        'Sent': Sent,
        'SentDate': JsonConverters.toJson(SentDate,'DateTime',context!),
        'SendMethodId': SendMethodId
    };

    getTypeName() => "GDPRCustomerMessageLogResponse";
    TypeContext? context = _ctx;
}

class InvoiceAddressResponse implements IConvertible
{
    String? InvoiceAddressId;
    String? UserId;
    String? CorporateIdentityNumber;
    String? InvoiceAddress1;
    String? InvoiceAddress2;
    String? InvoiceCity;
    String? InvoicePostalCode;
    String? InvoiceCountryCode;

    InvoiceAddressResponse({this.InvoiceAddressId,this.UserId,this.CorporateIdentityNumber,this.InvoiceAddress1,this.InvoiceAddress2,this.InvoiceCity,this.InvoicePostalCode,this.InvoiceCountryCode});
    InvoiceAddressResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InvoiceAddressId = json['InvoiceAddressId'];
        UserId = json['UserId'];
        CorporateIdentityNumber = json['CorporateIdentityNumber'];
        InvoiceAddress1 = json['InvoiceAddress1'];
        InvoiceAddress2 = json['InvoiceAddress2'];
        InvoiceCity = json['InvoiceCity'];
        InvoicePostalCode = json['InvoicePostalCode'];
        InvoiceCountryCode = json['InvoiceCountryCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InvoiceAddressId': InvoiceAddressId,
        'UserId': UserId,
        'CorporateIdentityNumber': CorporateIdentityNumber,
        'InvoiceAddress1': InvoiceAddress1,
        'InvoiceAddress2': InvoiceAddress2,
        'InvoiceCity': InvoiceCity,
        'InvoicePostalCode': InvoicePostalCode,
        'InvoiceCountryCode': InvoiceCountryCode
    };

    getTypeName() => "InvoiceAddressResponse";
    TypeContext? context = _ctx;
}

class UserProfileResponse implements IConvertible
{
    String? Id;
    String? Firstname;
    String? Lastname;
    String? Phone;
    String? Email;
    InvoiceAddressResponse? InvoiceAddress;

    UserProfileResponse({this.Id,this.Firstname,this.Lastname,this.Phone,this.Email,this.InvoiceAddress});
    UserProfileResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Firstname = json['Firstname'];
        Lastname = json['Lastname'];
        Phone = json['Phone'];
        Email = json['Email'];
        InvoiceAddress = JsonConverters.fromJson(json['InvoiceAddress'],'InvoiceAddressResponse',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Firstname': Firstname,
        'Lastname': Lastname,
        'Phone': Phone,
        'Email': Email,
        'InvoiceAddress': JsonConverters.toJson(InvoiceAddress,'InvoiceAddressResponse',context!)
    };

    getTypeName() => "UserProfileResponse";
    TypeContext? context = _ctx;
}

class GDPRCustomerInfoResponse implements IConvertible
{
    /**
    * The unique identifier of the user
    */
    // @ApiMember(Description="The unique identifier of the user")
    String? UserId;

    /**
    * The user's first name
    */
    // @ApiMember(Description="The user's first name")
    String? Firstname;

    /**
    * The user's last name
    */
    // @ApiMember(Description="The user's last name")
    String? Lastname;

    /**
    * The user's phone number
    */
    // @ApiMember(Description="The user's phone number")
    String? Phone;

    /**
    * The user's email address
    */
    // @ApiMember(Description="The user's email address")
    String? Email;

    /**
    * Whether the user account is currently active
    */
    // @ApiMember(Description="Whether the user account is currently active")
    bool? Active;

    /**
    * The user's Facebook username
    */
    // @ApiMember(Description="The user's Facebook username")
    String? FacebookUsername;

    /**
    * Custom text field 1
    */
    // @ApiMember(Description="Custom text field 1")
    String? TextField1;

    /**
    * Custom text field 2
    */
    // @ApiMember(Description="Custom text field 2")
    String? TextField2;

    /**
    * Custom text field 3
    */
    // @ApiMember(Description="Custom text field 3")
    String? TextField3;

    /**
    * Custom text field 4
    */
    // @ApiMember(Description="Custom text field 4")
    String? TextField4;

    /**
    * Custom text field 5
    */
    // @ApiMember(Description="Custom text field 5")
    String? TextField5;

    /**
    * Custom text field 6
    */
    // @ApiMember(Description="Custom text field 6")
    String? TextField6;

    /**
    * Custom text field 7
    */
    // @ApiMember(Description="Custom text field 7")
    String? TextField7;

    /**
    * Custom text field 8
    */
    // @ApiMember(Description="Custom text field 8")
    String? TextField8;

    /**
    * Custom text field 9
    */
    // @ApiMember(Description="Custom text field 9")
    String? TextField9;

    /**
    * Custom text field 10
    */
    // @ApiMember(Description="Custom text field 10")
    String? TextField10;

    /**
    * Custom text field 11
    */
    // @ApiMember(Description="Custom text field 11")
    String? TextField11;

    /**
    * Custom text field 12
    */
    // @ApiMember(Description="Custom text field 12")
    String? TextField12;

    /**
    * Custom text field 13
    */
    // @ApiMember(Description="Custom text field 13")
    String? TextField13;

    /**
    * Custom text field 14
    */
    // @ApiMember(Description="Custom text field 14")
    String? TextField14;

    /**
    * Custom text field 15
    */
    // @ApiMember(Description="Custom text field 15")
    String? TextField15;

    /**
    * Custom text field 16
    */
    // @ApiMember(Description="Custom text field 16")
    String? TextField16;

    /**
    * Custom text field 17
    */
    // @ApiMember(Description="Custom text field 17")
    String? TextField17;

    /**
    * Custom text field 18
    */
    // @ApiMember(Description="Custom text field 18")
    String? TextField18;

    /**
    * Custom text field 19
    */
    // @ApiMember(Description="Custom text field 19")
    String? TextField19;

    /**
    * Custom text field 20
    */
    // @ApiMember(Description="Custom text field 20")
    String? TextField20;

    /**
    * The date when the customer information was last updated
    */
    // @ApiMember(Description="The date when the customer information was last updated")
    DateTime? Updated;

    /**
    * The date when the customer information was created
    */
    // @ApiMember(Description="The date when the customer information was created")
    DateTime? Created;

    GDPRCustomerInfoResponse({this.UserId,this.Firstname,this.Lastname,this.Phone,this.Email,this.Active,this.FacebookUsername,this.TextField1,this.TextField2,this.TextField3,this.TextField4,this.TextField5,this.TextField6,this.TextField7,this.TextField8,this.TextField9,this.TextField10,this.TextField11,this.TextField12,this.TextField13,this.TextField14,this.TextField15,this.TextField16,this.TextField17,this.TextField18,this.TextField19,this.TextField20,this.Updated,this.Created});
    GDPRCustomerInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        UserId = json['UserId'];
        Firstname = json['Firstname'];
        Lastname = json['Lastname'];
        Phone = json['Phone'];
        Email = json['Email'];
        Active = json['Active'];
        FacebookUsername = json['FacebookUsername'];
        TextField1 = json['TextField1'];
        TextField2 = json['TextField2'];
        TextField3 = json['TextField3'];
        TextField4 = json['TextField4'];
        TextField5 = json['TextField5'];
        TextField6 = json['TextField6'];
        TextField7 = json['TextField7'];
        TextField8 = json['TextField8'];
        TextField9 = json['TextField9'];
        TextField10 = json['TextField10'];
        TextField11 = json['TextField11'];
        TextField12 = json['TextField12'];
        TextField13 = json['TextField13'];
        TextField14 = json['TextField14'];
        TextField15 = json['TextField15'];
        TextField16 = json['TextField16'];
        TextField17 = json['TextField17'];
        TextField18 = json['TextField18'];
        TextField19 = json['TextField19'];
        TextField20 = json['TextField20'];
        Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'UserId': UserId,
        'Firstname': Firstname,
        'Lastname': Lastname,
        'Phone': Phone,
        'Email': Email,
        'Active': Active,
        'FacebookUsername': FacebookUsername,
        'TextField1': TextField1,
        'TextField2': TextField2,
        'TextField3': TextField3,
        'TextField4': TextField4,
        'TextField5': TextField5,
        'TextField6': TextField6,
        'TextField7': TextField7,
        'TextField8': TextField8,
        'TextField9': TextField9,
        'TextField10': TextField10,
        'TextField11': TextField11,
        'TextField12': TextField12,
        'TextField13': TextField13,
        'TextField14': TextField14,
        'TextField15': TextField15,
        'TextField16': TextField16,
        'TextField17': TextField17,
        'TextField18': TextField18,
        'TextField19': TextField19,
        'TextField20': TextField20,
        'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
        'Created': JsonConverters.toJson(Created,'DateTime',context!)
    };

    getTypeName() => "GDPRCustomerInfoResponse";
    TypeContext? context = _ctx;
}

class GDPRCustomerCommentsResponse implements IConvertible
{
    /**
    * The company ID associated with this comment
    */
    // @ApiMember(Description="The company ID associated with this comment")
    String? CompanyId;

    /**
    * The unique identifier of the comment
    */
    // @ApiMember(Description="The unique identifier of the comment")
    int? Id;

    /**
    * The customer ID this comment is associated with
    */
    // @ApiMember(Description="The customer ID this comment is associated with")
    String? CustomerId;

    /**
    * The content of the comment
    */
    // @ApiMember(Description="The content of the comment")
    String? Comments;

    /**
    * The date when the comment was last updated
    */
    // @ApiMember(Description="The date when the comment was last updated")
    DateTime? Updated;

    /**
    * The date when the comment was created
    */
    // @ApiMember(Description="The date when the comment was created")
    DateTime? Created;

    /**
    * URL to any image associated with the comment
    */
    // @ApiMember(Description="URL to any image associated with the comment")
    Uri? ImageUrl;

    GDPRCustomerCommentsResponse({this.CompanyId,this.Id,this.CustomerId,this.Comments,this.Updated,this.Created,this.ImageUrl});
    GDPRCustomerCommentsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        CustomerId = json['CustomerId'];
        Comments = json['Comments'];
        Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'CustomerId': CustomerId,
        'Comments': Comments,
        'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
        'Created': JsonConverters.toJson(Created,'DateTime',context!),
        'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!)
    };

    getTypeName() => "GDPRCustomerCommentsResponse";
    TypeContext? context = _ctx;
}

class GDPRCustomerNewsletterLogResponse implements IConvertible
{
    /**
    * The company ID associated with this newsletter
    */
    // @ApiMember(Description="The company ID associated with this newsletter")
    String? CompanyId;

    /**
    * The unique identifier of the newsletter log entry
    */
    // @ApiMember(Description="The unique identifier of the newsletter log entry")
    int? Id;

    /**
    * The newsletter ID this log entry is related to, if any
    */
    // @ApiMember(Description="The newsletter ID this log entry is related to, if any")
    int? NewslettersId;

    /**
    * The recipient of the newsletter
    */
    // @ApiMember(Description="The recipient of the newsletter")
    String? Receiver;

    /**
    * The sender of the newsletter
    */
    // @ApiMember(Description="The sender of the newsletter")
    String? Sender;

    /**
    * The title or subject of the newsletter
    */
    // @ApiMember(Description="The title or subject of the newsletter")
    String? MessageTitle;

    /**
    * The body content of the newsletter
    */
    // @ApiMember(Description="The body content of the newsletter")
    String? MessageBody;

    /**
    * Whether the newsletter was successfully sent
    */
    // @ApiMember(Description="Whether the newsletter was successfully sent")
    bool? Sent;

    /**
    * The date when the newsletter was created
    */
    // @ApiMember(Description="The date when the newsletter was created")
    DateTime? Created;

    GDPRCustomerNewsletterLogResponse({this.CompanyId,this.Id,this.NewslettersId,this.Receiver,this.Sender,this.MessageTitle,this.MessageBody,this.Sent,this.Created});
    GDPRCustomerNewsletterLogResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        NewslettersId = json['NewslettersId'];
        Receiver = json['Receiver'];
        Sender = json['Sender'];
        MessageTitle = json['MessageTitle'];
        MessageBody = json['MessageBody'];
        Sent = json['Sent'];
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'NewslettersId': NewslettersId,
        'Receiver': Receiver,
        'Sender': Sender,
        'MessageTitle': MessageTitle,
        'MessageBody': MessageBody,
        'Sent': Sent,
        'Created': JsonConverters.toJson(Created,'DateTime',context!)
    };

    getTypeName() => "GDPRCustomerNewsletterLogResponse";
    TypeContext? context = _ctx;
}

class GDPRCustomerQueryResponse implements IConvertible
{
    /**
    * List of all bookings associated with the customer
    */
    // @ApiMember(Description="List of all bookings associated with the customer")
    List<GDPRCustomerBookingsResponse>? Bookings;

    /**
    * List of all message logs associated with the customer
    */
    // @ApiMember(Description="List of all message logs associated with the customer")
    List<GDPRCustomerMessageLogResponse>? MessageLog;

    /**
    * The user profile information for the customer
    */
    // @ApiMember(Description="The user profile information for the customer")
    UserProfileResponse? UserProfile;

    /**
    * Detailed customer information
    */
    // @ApiMember(Description="Detailed customer information")
    GDPRCustomerInfoResponse? Customer;

    /**
    * List of all comments associated with the customer
    */
    // @ApiMember(Description="List of all comments associated with the customer")
    List<GDPRCustomerCommentsResponse>? CustomerComment;

    /**
    * List of all newsletter logs associated with the customer
    */
    // @ApiMember(Description="List of all newsletter logs associated with the customer")
    List<GDPRCustomerNewsletterLogResponse>? NewsletterLog;

    /**
    * Response status information
    */
    // @ApiMember(Description="Response status information")
    ResponseStatus? ResponseStatus;

    GDPRCustomerQueryResponse({this.Bookings,this.MessageLog,this.UserProfile,this.Customer,this.CustomerComment,this.NewsletterLog,this.ResponseStatus});
    GDPRCustomerQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Bookings = JsonConverters.fromJson(json['Bookings'],'List<GDPRCustomerBookingsResponse>',context!);
        MessageLog = JsonConverters.fromJson(json['MessageLog'],'List<GDPRCustomerMessageLogResponse>',context!);
        UserProfile = JsonConverters.fromJson(json['UserProfile'],'UserProfileResponse',context!);
        Customer = JsonConverters.fromJson(json['Customer'],'GDPRCustomerInfoResponse',context!);
        CustomerComment = JsonConverters.fromJson(json['CustomerComment'],'List<GDPRCustomerCommentsResponse>',context!);
        NewsletterLog = JsonConverters.fromJson(json['NewsletterLog'],'List<GDPRCustomerNewsletterLogResponse>',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Bookings': JsonConverters.toJson(Bookings,'List<GDPRCustomerBookingsResponse>',context!),
        'MessageLog': JsonConverters.toJson(MessageLog,'List<GDPRCustomerMessageLogResponse>',context!),
        'UserProfile': JsonConverters.toJson(UserProfile,'UserProfileResponse',context!),
        'Customer': JsonConverters.toJson(Customer,'GDPRCustomerInfoResponse',context!),
        'CustomerComment': JsonConverters.toJson(CustomerComment,'List<GDPRCustomerCommentsResponse>',context!),
        'NewsletterLog': JsonConverters.toJson(NewsletterLog,'List<GDPRCustomerNewsletterLogResponse>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "GDPRCustomerQueryResponse";
    TypeContext? context = _ctx;
}

// @ValidateRequest(Validator="IsAuthenticated")
class GDPRCustomerQuery implements ICompany, IConvertible
{
    /**
    * Enter the company and id you want to see the information for a resource, if blank company id and you are an admin, your company id will be used. If blank id, all resources will be shown 
    */
    // @ApiMember(Description="Enter the company and id you want to see the information for a resource, if blank company id and you are an admin, your company id will be used. If blank id, all resources will be shown ", IsRequired=true, ParameterType="query")
    String? CompanyId;

    /**
    * Id of the customer
    */
    // @ApiMember(Description="Id of the customer", IsRequired=true, ParameterType="path")
    String? CustomerId;

    GDPRCustomerQuery({this.CompanyId,this.CustomerId});
    GDPRCustomerQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        CustomerId = json['CustomerId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'CustomerId': CustomerId
    };

    getTypeName() => "GDPRCustomerQuery";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'GDPRCustomerBookingsResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerBookingsResponse()),
    'GDPRCustomerMessageLogResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerMessageLogResponse()),
    'InvoiceAddressResponse': TypeInfo(TypeOf.Class, create:() => InvoiceAddressResponse()),
    'UserProfileResponse': TypeInfo(TypeOf.Class, create:() => UserProfileResponse()),
    'GDPRCustomerInfoResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerInfoResponse()),
    'GDPRCustomerCommentsResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerCommentsResponse()),
    'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
    'GDPRCustomerNewsletterLogResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerNewsletterLogResponse()),
    'GDPRCustomerQueryResponse': TypeInfo(TypeOf.Class, create:() => GDPRCustomerQueryResponse()),
    'List<GDPRCustomerBookingsResponse>': TypeInfo(TypeOf.Class, create:() => <GDPRCustomerBookingsResponse>[]),
    'List<GDPRCustomerMessageLogResponse>': TypeInfo(TypeOf.Class, create:() => <GDPRCustomerMessageLogResponse>[]),
    'List<GDPRCustomerCommentsResponse>': TypeInfo(TypeOf.Class, create:() => <GDPRCustomerCommentsResponse>[]),
    'List<GDPRCustomerNewsletterLogResponse>': TypeInfo(TypeOf.Class, create:() => <GDPRCustomerNewsletterLogResponse>[]),
    'GDPRCustomerQuery': TypeInfo(TypeOf.Class, create:() => GDPRCustomerQuery()),
});

Dart GDPRCustomerQuery DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /gdpr/customers/{CustomerId} HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Bookings":[{"Id":0,"ServiceId":0,"StatusId":0,"UnbookedOn":"0001-01-01T00:00:00","UnbookedComments":"String","BookedComments":"String","BookedBy":"String","Comments":"String","TextField1":"String","TextField2":"String","TextField3":"String","TextField4":"String","TextField5":"String","TextField6":"String","TextField7":"String","TextField8":"String","TextField9":"String","TextField10":"String","TextField11":"String","TextField12":"String","TextField13":"String","TextField14":"String","TextField15":"String","TextField16":"String","TextField17":"String","TextField18":"String","TextField19":"String","TextField20":"String","CommentsToCustomer":"String"}],"MessageLog":[{"Id":0,"BookingId":0,"Receiver":"String","Sender":"String","MessageTitle":"String","MessageBody":"String","CreatedBy":"String","Sent":false,"SentDate":"0001-01-01T00:00:00","SendMethodId":0}],"UserProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String","InvoiceAddress":{"UserId":"00000000-0000-0000-0000-000000000000","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"}},"Customer":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String","Active":false,"FacebookUsername":"String","TextField1":"String","TextField2":"String","TextField3":"String","TextField4":"String","TextField5":"String","TextField6":"String","TextField7":"String","TextField8":"String","TextField9":"String","TextField10":"String","TextField11":"String","TextField12":"String","TextField13":"String","TextField14":"String","TextField15":"String","TextField16":"String","TextField17":"String","TextField18":"String","TextField19":"String","TextField20":"String"},"CustomerComment":[{"Id":0,"Comments":"String"}],"NewsletterLog":[{"Id":0,"NewslettersId":0,"Receiver":"String","Sender":"String","MessageTitle":"String","MessageBody":"String","Sent":false}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}