/* Options: Date: 2024-04-29 04:01:53 Version: 8.13 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://techstacks.io //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: Overview.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum TechnologyTier { ProgrammingLanguage, Client, Http, Server, Data, SoftwareInfrastructure, OperatingSystem, HardwareInfrastructure, ThirdPartyServices, } abstract class TechnologyStackBase { int? id; String? name; String? vendorName; String? description; String? appUrl; String? screenshotUrl; DateTime? created; String? createdBy; DateTime? lastModified; String? lastModifiedBy; bool? isLocked; String? ownerId; String? slug; // @StringLength(2147483647) String? details; // @StringLength(2147483647) String? detailsHtml; DateTime? lastStatusUpdate; int? organizationId; int? commentsPostId; int? viewCount; int? favCount; TechnologyStackBase({this.id,this.name,this.vendorName,this.description,this.appUrl,this.screenshotUrl,this.created,this.createdBy,this.lastModified,this.lastModifiedBy,this.isLocked,this.ownerId,this.slug,this.details,this.detailsHtml,this.lastStatusUpdate,this.organizationId,this.commentsPostId,this.viewCount,this.favCount}); TechnologyStackBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; vendorName = json['vendorName']; description = json['description']; appUrl = json['appUrl']; screenshotUrl = json['screenshotUrl']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); createdBy = json['createdBy']; lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); lastModifiedBy = json['lastModifiedBy']; isLocked = json['isLocked']; ownerId = json['ownerId']; slug = json['slug']; details = json['details']; detailsHtml = json['detailsHtml']; lastStatusUpdate = JsonConverters.fromJson(json['lastStatusUpdate'],'DateTime',context!); organizationId = json['organizationId']; commentsPostId = json['commentsPostId']; viewCount = json['viewCount']; favCount = json['favCount']; return this; } Map toJson() => { 'id': id, 'name': name, 'vendorName': vendorName, 'description': description, 'appUrl': appUrl, 'screenshotUrl': screenshotUrl, 'created': JsonConverters.toJson(created,'DateTime',context!), 'createdBy': createdBy, 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'lastModifiedBy': lastModifiedBy, 'isLocked': isLocked, 'ownerId': ownerId, 'slug': slug, 'details': details, 'detailsHtml': detailsHtml, 'lastStatusUpdate': JsonConverters.toJson(lastStatusUpdate,'DateTime',context!), 'organizationId': organizationId, 'commentsPostId': commentsPostId, 'viewCount': viewCount, 'favCount': favCount }; getTypeName() => "TechnologyStackBase"; TypeContext? context = _ctx; } class TechnologyStack extends TechnologyStackBase implements IConvertible { int? id; String? name; String? vendorName; String? description; String? appUrl; String? screenshotUrl; DateTime? created; String? createdBy; DateTime? lastModified; String? lastModifiedBy; bool? isLocked; String? ownerId; String? slug; // @StringLength(2147483647) String? details; // @StringLength(2147483647) String? detailsHtml; DateTime? lastStatusUpdate; int? organizationId; int? commentsPostId; int? viewCount; int? favCount; TechnologyStack({this.id,this.name,this.vendorName,this.description,this.appUrl,this.screenshotUrl,this.created,this.createdBy,this.lastModified,this.lastModifiedBy,this.isLocked,this.ownerId,this.slug,this.details,this.detailsHtml,this.lastStatusUpdate,this.organizationId,this.commentsPostId,this.viewCount,this.favCount}); TechnologyStack.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id']; name = json['name']; vendorName = json['vendorName']; description = json['description']; appUrl = json['appUrl']; screenshotUrl = json['screenshotUrl']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); createdBy = json['createdBy']; lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); lastModifiedBy = json['lastModifiedBy']; isLocked = json['isLocked']; ownerId = json['ownerId']; slug = json['slug']; details = json['details']; detailsHtml = json['detailsHtml']; lastStatusUpdate = JsonConverters.fromJson(json['lastStatusUpdate'],'DateTime',context!); organizationId = json['organizationId']; commentsPostId = json['commentsPostId']; viewCount = json['viewCount']; favCount = json['favCount']; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'name': name, 'vendorName': vendorName, 'description': description, 'appUrl': appUrl, 'screenshotUrl': screenshotUrl, 'created': JsonConverters.toJson(created,'DateTime',context!), 'createdBy': createdBy, 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'lastModifiedBy': lastModifiedBy, 'isLocked': isLocked, 'ownerId': ownerId, 'slug': slug, 'details': details, 'detailsHtml': detailsHtml, 'lastStatusUpdate': JsonConverters.toJson(lastStatusUpdate,'DateTime',context!), 'organizationId': organizationId, 'commentsPostId': commentsPostId, 'viewCount': viewCount, 'favCount': favCount }); getTypeName() => "TechnologyStack"; TypeContext? context = _ctx; } class UserInfo implements IConvertible { String? userName; String? avatarUrl; int? stacksCount; UserInfo({this.userName,this.avatarUrl,this.stacksCount}); UserInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { userName = json['userName']; avatarUrl = json['avatarUrl']; stacksCount = json['stacksCount']; return this; } Map toJson() => { 'userName': userName, 'avatarUrl': avatarUrl, 'stacksCount': stacksCount }; getTypeName() => "UserInfo"; TypeContext? context = _ctx; } class TechnologyInfo implements IConvertible { TechnologyTier? tier; String? slug; String? name; String? logoUrl; int? stacksCount; TechnologyInfo({this.tier,this.slug,this.name,this.logoUrl,this.stacksCount}); TechnologyInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { tier = JsonConverters.fromJson(json['tier'],'TechnologyTier',context!); slug = json['slug']; name = json['name']; logoUrl = json['logoUrl']; stacksCount = json['stacksCount']; return this; } Map toJson() => { 'tier': JsonConverters.toJson(tier,'TechnologyTier',context!), 'slug': slug, 'name': name, 'logoUrl': logoUrl, 'stacksCount': stacksCount }; getTypeName() => "TechnologyInfo"; TypeContext? context = _ctx; } abstract class TechnologyBase { int? id; String? name; String? vendorName; String? vendorUrl; String? productUrl; String? logoUrl; String? description; DateTime? created; String? createdBy; DateTime? lastModified; String? lastModifiedBy; String? ownerId; String? slug; bool? logoApproved; bool? isLocked; TechnologyTier? tier; DateTime? lastStatusUpdate; int? organizationId; int? commentsPostId; int? viewCount; int? favCount; TechnologyBase({this.id,this.name,this.vendorName,this.vendorUrl,this.productUrl,this.logoUrl,this.description,this.created,this.createdBy,this.lastModified,this.lastModifiedBy,this.ownerId,this.slug,this.logoApproved,this.isLocked,this.tier,this.lastStatusUpdate,this.organizationId,this.commentsPostId,this.viewCount,this.favCount}); TechnologyBase.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; vendorName = json['vendorName']; vendorUrl = json['vendorUrl']; productUrl = json['productUrl']; logoUrl = json['logoUrl']; description = json['description']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); createdBy = json['createdBy']; lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); lastModifiedBy = json['lastModifiedBy']; ownerId = json['ownerId']; slug = json['slug']; logoApproved = json['logoApproved']; isLocked = json['isLocked']; tier = JsonConverters.fromJson(json['tier'],'TechnologyTier',context!); lastStatusUpdate = JsonConverters.fromJson(json['lastStatusUpdate'],'DateTime',context!); organizationId = json['organizationId']; commentsPostId = json['commentsPostId']; viewCount = json['viewCount']; favCount = json['favCount']; return this; } Map toJson() => { 'id': id, 'name': name, 'vendorName': vendorName, 'vendorUrl': vendorUrl, 'productUrl': productUrl, 'logoUrl': logoUrl, 'description': description, 'created': JsonConverters.toJson(created,'DateTime',context!), 'createdBy': createdBy, 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'lastModifiedBy': lastModifiedBy, 'ownerId': ownerId, 'slug': slug, 'logoApproved': logoApproved, 'isLocked': isLocked, 'tier': JsonConverters.toJson(tier,'TechnologyTier',context!), 'lastStatusUpdate': JsonConverters.toJson(lastStatusUpdate,'DateTime',context!), 'organizationId': organizationId, 'commentsPostId': commentsPostId, 'viewCount': viewCount, 'favCount': favCount }; getTypeName() => "TechnologyBase"; TypeContext? context = _ctx; } class TechnologyInStack extends TechnologyBase implements IConvertible { int? technologyId; int? technologyStackId; String? justification; int? id; String? name; String? vendorName; String? vendorUrl; String? productUrl; String? logoUrl; String? description; DateTime? created; String? createdBy; DateTime? lastModified; String? lastModifiedBy; String? ownerId; String? slug; bool? logoApproved; bool? isLocked; TechnologyTier? tier; DateTime? lastStatusUpdate; int? organizationId; int? commentsPostId; int? viewCount; int? favCount; TechnologyInStack({this.technologyId,this.technologyStackId,this.justification,this.id,this.name,this.vendorName,this.vendorUrl,this.productUrl,this.logoUrl,this.description,this.created,this.createdBy,this.lastModified,this.lastModifiedBy,this.ownerId,this.slug,this.logoApproved,this.isLocked,this.tier,this.lastStatusUpdate,this.organizationId,this.commentsPostId,this.viewCount,this.favCount}); TechnologyInStack.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); technologyId = json['technologyId']; technologyStackId = json['technologyStackId']; justification = json['justification']; id = json['id']; name = json['name']; vendorName = json['vendorName']; vendorUrl = json['vendorUrl']; productUrl = json['productUrl']; logoUrl = json['logoUrl']; description = json['description']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); createdBy = json['createdBy']; lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); lastModifiedBy = json['lastModifiedBy']; ownerId = json['ownerId']; slug = json['slug']; logoApproved = json['logoApproved']; isLocked = json['isLocked']; tier = JsonConverters.fromJson(json['tier'],'TechnologyTier',context!); lastStatusUpdate = JsonConverters.fromJson(json['lastStatusUpdate'],'DateTime',context!); organizationId = json['organizationId']; commentsPostId = json['commentsPostId']; viewCount = json['viewCount']; favCount = json['favCount']; return this; } Map toJson() => super.toJson()..addAll({ 'technologyId': technologyId, 'technologyStackId': technologyStackId, 'justification': justification, 'id': id, 'name': name, 'vendorName': vendorName, 'vendorUrl': vendorUrl, 'productUrl': productUrl, 'logoUrl': logoUrl, 'description': description, 'created': JsonConverters.toJson(created,'DateTime',context!), 'createdBy': createdBy, 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'lastModifiedBy': lastModifiedBy, 'ownerId': ownerId, 'slug': slug, 'logoApproved': logoApproved, 'isLocked': isLocked, 'tier': JsonConverters.toJson(tier,'TechnologyTier',context!), 'lastStatusUpdate': JsonConverters.toJson(lastStatusUpdate,'DateTime',context!), 'organizationId': organizationId, 'commentsPostId': commentsPostId, 'viewCount': viewCount, 'favCount': favCount }); getTypeName() => "TechnologyInStack"; TypeContext? context = _ctx; } class TechStackDetails extends TechnologyStackBase implements IConvertible { List? technologyChoices; int? id; String? name; String? vendorName; String? description; String? appUrl; String? screenshotUrl; DateTime? created; String? createdBy; DateTime? lastModified; String? lastModifiedBy; bool? isLocked; String? ownerId; String? slug; // @StringLength(2147483647) String? details; // @StringLength(2147483647) String? detailsHtml; DateTime? lastStatusUpdate; int? organizationId; int? commentsPostId; int? viewCount; int? favCount; TechStackDetails({this.technologyChoices,this.id,this.name,this.vendorName,this.description,this.appUrl,this.screenshotUrl,this.created,this.createdBy,this.lastModified,this.lastModifiedBy,this.isLocked,this.ownerId,this.slug,this.details,this.detailsHtml,this.lastStatusUpdate,this.organizationId,this.commentsPostId,this.viewCount,this.favCount}); TechStackDetails.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); technologyChoices = JsonConverters.fromJson(json['technologyChoices'],'List',context!); id = json['id']; name = json['name']; vendorName = json['vendorName']; description = json['description']; appUrl = json['appUrl']; screenshotUrl = json['screenshotUrl']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); createdBy = json['createdBy']; lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); lastModifiedBy = json['lastModifiedBy']; isLocked = json['isLocked']; ownerId = json['ownerId']; slug = json['slug']; details = json['details']; detailsHtml = json['detailsHtml']; lastStatusUpdate = JsonConverters.fromJson(json['lastStatusUpdate'],'DateTime',context!); organizationId = json['organizationId']; commentsPostId = json['commentsPostId']; viewCount = json['viewCount']; favCount = json['favCount']; return this; } Map toJson() => super.toJson()..addAll({ 'technologyChoices': JsonConverters.toJson(technologyChoices,'List',context!), 'id': id, 'name': name, 'vendorName': vendorName, 'description': description, 'appUrl': appUrl, 'screenshotUrl': screenshotUrl, 'created': JsonConverters.toJson(created,'DateTime',context!), 'createdBy': createdBy, 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'lastModifiedBy': lastModifiedBy, 'isLocked': isLocked, 'ownerId': ownerId, 'slug': slug, 'details': details, 'detailsHtml': detailsHtml, 'lastStatusUpdate': JsonConverters.toJson(lastStatusUpdate,'DateTime',context!), 'organizationId': organizationId, 'commentsPostId': commentsPostId, 'viewCount': viewCount, 'favCount': favCount }); getTypeName() => "TechStackDetails"; TypeContext? context = _ctx; } class LabelInfo implements IConvertible { String? slug; String? color; LabelInfo({this.slug,this.color}); LabelInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { slug = json['slug']; color = json['color']; return this; } Map toJson() => { 'slug': slug, 'color': color }; getTypeName() => "LabelInfo"; TypeContext? context = _ctx; } class CategoryInfo implements IConvertible { int? id; String? name; String? slug; CategoryInfo({this.id,this.name,this.slug}); CategoryInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; slug = json['slug']; return this; } Map toJson() => { 'id': id, 'name': name, 'slug': slug }; getTypeName() => "CategoryInfo"; TypeContext? context = _ctx; } class OrganizationInfo implements IConvertible { int? id; String? name; String? slug; int? refId; String? refSource; int? upVotes; int? downVotes; int? membersCount; int? rank; bool? disableInvites; String? lang; List? postTypes; List? moderatorPostTypes; DateTime? locked; List? labels; List? categories; OrganizationInfo({this.id,this.name,this.slug,this.refId,this.refSource,this.upVotes,this.downVotes,this.membersCount,this.rank,this.disableInvites,this.lang,this.postTypes,this.moderatorPostTypes,this.locked,this.labels,this.categories}); OrganizationInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; slug = json['slug']; refId = json['refId']; refSource = json['refSource']; upVotes = json['upVotes']; downVotes = json['downVotes']; membersCount = json['membersCount']; rank = json['rank']; disableInvites = json['disableInvites']; lang = json['lang']; postTypes = JsonConverters.fromJson(json['postTypes'],'List',context!); moderatorPostTypes = JsonConverters.fromJson(json['moderatorPostTypes'],'List',context!); locked = JsonConverters.fromJson(json['locked'],'DateTime',context!); labels = JsonConverters.fromJson(json['labels'],'List',context!); categories = JsonConverters.fromJson(json['categories'],'List',context!); return this; } Map toJson() => { 'id': id, 'name': name, 'slug': slug, 'refId': refId, 'refSource': refSource, 'upVotes': upVotes, 'downVotes': downVotes, 'membersCount': membersCount, 'rank': rank, 'disableInvites': disableInvites, 'lang': lang, 'postTypes': JsonConverters.toJson(postTypes,'List',context!), 'moderatorPostTypes': JsonConverters.toJson(moderatorPostTypes,'List',context!), 'locked': JsonConverters.toJson(locked,'DateTime',context!), 'labels': JsonConverters.toJson(labels,'List',context!), 'categories': JsonConverters.toJson(categories,'List',context!) }; getTypeName() => "OrganizationInfo"; TypeContext? context = _ctx; } class OverviewResponse implements IConvertible { DateTime? created; List? topUsers; List? topTechnologies; List? latestTechStacks; List? popularTechStacks; List? allOrganizations; Map?>? topTechnologiesByTier; ResponseStatus? responseStatus; OverviewResponse({this.created,this.topUsers,this.topTechnologies,this.latestTechStacks,this.popularTechStacks,this.allOrganizations,this.topTechnologiesByTier,this.responseStatus}); OverviewResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { created = JsonConverters.fromJson(json['created'],'DateTime',context!); topUsers = JsonConverters.fromJson(json['topUsers'],'List',context!); topTechnologies = JsonConverters.fromJson(json['topTechnologies'],'List',context!); latestTechStacks = JsonConverters.fromJson(json['latestTechStacks'],'List',context!); popularTechStacks = JsonConverters.fromJson(json['popularTechStacks'],'List',context!); allOrganizations = JsonConverters.fromJson(json['allOrganizations'],'List',context!); topTechnologiesByTier = JsonConverters.fromJson(json['topTechnologiesByTier'],'Map?>',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'created': JsonConverters.toJson(created,'DateTime',context!), 'topUsers': JsonConverters.toJson(topUsers,'List',context!), 'topTechnologies': JsonConverters.toJson(topTechnologies,'List',context!), 'latestTechStacks': JsonConverters.toJson(latestTechStacks,'List',context!), 'popularTechStacks': JsonConverters.toJson(popularTechStacks,'List',context!), 'allOrganizations': JsonConverters.toJson(allOrganizations,'List',context!), 'topTechnologiesByTier': JsonConverters.toJson(topTechnologiesByTier,'Map?>',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "OverviewResponse"; TypeContext? context = _ctx; } // @Route("/overview") class Overview implements IReturn, IGet, IConvertible { bool? reload; Overview({this.reload}); Overview.fromJson(Map json) { fromMap(json); } fromMap(Map json) { reload = json['reload']; return this; } Map toJson() => { 'reload': reload }; createResponse() => OverviewResponse(); getResponseTypeName() => "OverviewResponse"; getTypeName() => "Overview"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'techstacks.io', types: { 'TechnologyTier': TypeInfo(TypeOf.Enum, enumValues:TechnologyTier.values), 'TechnologyStackBase': TypeInfo(TypeOf.AbstractClass), 'TechnologyStack': TypeInfo(TypeOf.Class, create:() => TechnologyStack()), 'UserInfo': TypeInfo(TypeOf.Class, create:() => UserInfo()), 'TechnologyInfo': TypeInfo(TypeOf.Class, create:() => TechnologyInfo()), 'TechnologyBase': TypeInfo(TypeOf.AbstractClass), 'TechnologyInStack': TypeInfo(TypeOf.Class, create:() => TechnologyInStack()), 'TechStackDetails': TypeInfo(TypeOf.Class, create:() => TechStackDetails()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'LabelInfo': TypeInfo(TypeOf.Class, create:() => LabelInfo()), 'CategoryInfo': TypeInfo(TypeOf.Class, create:() => CategoryInfo()), 'OrganizationInfo': TypeInfo(TypeOf.Class, create:() => OrganizationInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'OverviewResponse': TypeInfo(TypeOf.Class, create:() => OverviewResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'Map?>': TypeInfo(TypeOf.Class, create:() => Map?>()), 'Overview': TypeInfo(TypeOf.Class, create:() => Overview()), });