/* Options: Date: 2025-05-13 21:06:49 Version: 8.53 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://chinook.netcore.io //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QueryTracks.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class Albums implements IConvertible { int? albumId; // @required() String? title; int? artistId; Albums({this.albumId,this.title,this.artistId}); Albums.fromJson(Map json) { fromMap(json); } fromMap(Map json) { albumId = json['albumId']; title = json['title']; artistId = json['artistId']; return this; } Map toJson() => { 'albumId': albumId, 'title': title, 'artistId': artistId }; getTypeName() => "Albums"; TypeContext? context = _ctx; } class Genres implements IConvertible { int? genreId; String? name; Genres({this.genreId,this.name}); Genres.fromJson(Map json) { fromMap(json); } fromMap(Map json) { genreId = json['genreId']; name = json['name']; return this; } Map toJson() => { 'genreId': genreId, 'name': name }; getTypeName() => "Genres"; TypeContext? context = _ctx; } class MediaTypes implements IConvertible { int? mediaTypeId; String? name; MediaTypes({this.mediaTypeId,this.name}); MediaTypes.fromJson(Map json) { fromMap(json); } fromMap(Map json) { mediaTypeId = json['mediaTypeId']; name = json['name']; return this; } Map toJson() => { 'mediaTypeId': mediaTypeId, 'name': name }; getTypeName() => "MediaTypes"; TypeContext? context = _ctx; } class Tracks implements IConvertible { int? trackId; // @required() String? name; // @References(typeof(Albums)) int? albumId; // @References(typeof(MediaTypes)) int? mediaTypeId; // @References(typeof(Genres)) int? genreId; String? composer; int? milliseconds; int? bytes; double? unitPrice; Albums? album; MediaTypes? mediaType; Genres? genre; Tracks({this.trackId,this.name,this.albumId,this.mediaTypeId,this.genreId,this.composer,this.milliseconds,this.bytes,this.unitPrice,this.album,this.mediaType,this.genre}); Tracks.fromJson(Map json) { fromMap(json); } fromMap(Map json) { trackId = json['trackId']; name = json['name']; albumId = json['albumId']; mediaTypeId = json['mediaTypeId']; genreId = json['genreId']; composer = json['composer']; milliseconds = json['milliseconds']; bytes = json['bytes']; unitPrice = JsonConverters.toDouble(json['unitPrice']); album = JsonConverters.fromJson(json['album'],'Albums',context!); mediaType = JsonConverters.fromJson(json['mediaType'],'MediaTypes',context!); genre = JsonConverters.fromJson(json['genre'],'Genres',context!); return this; } Map toJson() => { 'trackId': trackId, 'name': name, 'albumId': albumId, 'mediaTypeId': mediaTypeId, 'genreId': genreId, 'composer': composer, 'milliseconds': milliseconds, 'bytes': bytes, 'unitPrice': unitPrice, 'album': JsonConverters.toJson(album,'Albums',context!), 'mediaType': JsonConverters.toJson(mediaType,'MediaTypes',context!), 'genre': JsonConverters.toJson(genre,'Genres',context!) }; getTypeName() => "Tracks"; TypeContext? context = _ctx; } // @Route("/tracks", "GET") // @Route("/tracks/{TrackId}", "GET") class QueryTracks extends QueryDb implements IReturn>, IGet, IConvertible { int? trackId; String? nameContains; QueryTracks({this.trackId,this.nameContains}); QueryTracks.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); trackId = json['trackId']; nameContains = json['nameContains']; return this; } Map toJson() => super.toJson()..addAll({ 'trackId': trackId, 'nameContains': nameContains }); createResponse() => QueryResponse(); getResponseTypeName() => "QueryResponse"; getTypeName() => "QueryTracks"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'chinook.netcore.io', types: { 'Albums': TypeInfo(TypeOf.Class, create:() => Albums()), 'Genres': TypeInfo(TypeOf.Class, create:() => Genres()), 'MediaTypes': TypeInfo(TypeOf.Class, create:() => MediaTypes()), 'Tracks': TypeInfo(TypeOf.Class, create:() => Tracks()), 'QueryResponse': TypeInfo(TypeOf.Class, create:() => QueryResponse()), 'QueryTracks': TypeInfo(TypeOf.Class, create:() => QueryTracks()), 'List': TypeInfo(TypeOf.Class, create:() => []), });