import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
// @DataContract
class Translation implements ITranslation, IConvertible
{
    // @DataMember
    String? Key;
    // @DataMember
    String? NL;
    // @DataMember
    String? EN;
    // @DataMember
    String? DE;
    // @DataMember
    String? FR;
    // @DataMember
    String? C1;
    // @DataMember
    String? C2;
    // @DataMember
    String? C3;
    // @DataMember
    String? C4;
    // @DataMember
    String? C5;
    // @DataMember
    String? C6;
    Translation({this.Key,this.NL,this.EN,this.DE,this.FR,this.C1,this.C2,this.C3,this.C4,this.C5,this.C6});
    Translation.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        Key = json['Key'];
        NL = json['NL'];
        EN = json['EN'];
        DE = json['DE'];
        FR = json['FR'];
        C1 = json['C1'];
        C2 = json['C2'];
        C3 = json['C3'];
        C4 = json['C4'];
        C5 = json['C5'];
        C6 = json['C6'];
        return this;
    }
    Map<String, dynamic> toJson() => {
        'Key': Key,
        'NL': NL,
        'EN': EN,
        'DE': DE,
        'FR': FR,
        'C1': C1,
        'C2': C2,
        'C3': C3,
        'C4': C4,
        'C5': C5,
        'C6': C6
    };
    getTypeName() => "Translation";
    TypeContext? context = _ctx;
}
// @DataContract
class GetTranslationsResponse implements IConvertible
{
    // @DataMember
    List<Translation>? Translations;
    // @DataMember
    String? PreferredLanguage;
    // @DataMember
    String? PreferredLanguageShort;
    GetTranslationsResponse({this.Translations,this.PreferredLanguage,this.PreferredLanguageShort});
    GetTranslationsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        Translations = JsonConverters.fromJson(json['Translations'],'List<Translation>',context!);
        PreferredLanguage = json['PreferredLanguage'];
        PreferredLanguageShort = json['PreferredLanguageShort'];
        return this;
    }
    Map<String, dynamic> toJson() => {
        'Translations': JsonConverters.toJson(Translations,'List<Translation>',context!),
        'PreferredLanguage': PreferredLanguage,
        'PreferredLanguageShort': PreferredLanguageShort
    };
    getTypeName() => "GetTranslationsResponse";
    TypeContext? context = _ctx;
}
class GetTranslations implements IConvertible
{
    List<String>? TranslateKeys;
    GetTranslations({this.TranslateKeys});
    GetTranslations.fromJson(Map<String, dynamic> json) { fromMap(json); }
    fromMap(Map<String, dynamic> json) {
        TranslateKeys = JsonConverters.fromJson(json['TranslateKeys'],'List<String>',context!);
        return this;
    }
    Map<String, dynamic> toJson() => {
        'TranslateKeys': JsonConverters.toJson(TranslateKeys,'List<String>',context!)
    };
    getTypeName() => "GetTranslations";
    TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'doapigw.baasbv.nl', types: <String, TypeInfo> {
    'Translation': TypeInfo(TypeOf.Class, create:() => Translation()),
    'GetTranslationsResponse': TypeInfo(TypeOf.Class, create:() => GetTranslationsResponse()),
    'List<Translation>': TypeInfo(TypeOf.Class, create:() => <Translation>[]),
    'GetTranslations': TypeInfo(TypeOf.Class, create:() => GetTranslations()),
});
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 /xml/reply/GetTranslations HTTP/1.1 
Host: doapigw.baasbv.nl 
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<GetTranslations xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/IDB.API.DTO.Globalization">
  <TranslateKeys xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>String</d2p1:string>
  </TranslateKeys>
</GetTranslations>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<GetTranslationsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/IDB.API.DTO.Globalization">
  <PreferredLanguage>String</PreferredLanguage>
  <PreferredLanguageShort>String</PreferredLanguageShort>
  <Translations>
    <Translation>
      <C1>String</C1>
      <C2>String</C2>
      <C3>String</C3>
      <C4>String</C4>
      <C5>String</C5>
      <C6>String</C6>
      <DE>String</DE>
      <EN>String</EN>
      <FR>String</FR>
      <Key>String</Key>
      <NL>String</NL>
    </Translation>
  </Translations>
</GetTranslationsResponse>