/* Options: Date: 2024-04-29 16:14:09 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: SessionInfo.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum TechnologyTier { ProgrammingLanguage, Client, Http, Server, Data, SoftwareInfrastructure, OperatingSystem, HardwareInfrastructure, ThirdPartyServices, } 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 Technology extends TechnologyBase implements IConvertible { 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; Technology({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}); Technology.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(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() => super.toJson()..addAll({ '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() => "Technology"; TypeContext? context = _ctx; } 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 OrganizationMember implements IConvertible { int? id; int? organizationId; int? userId; String? userName; bool? isOwner; bool? isModerator; bool? denyAll; bool? denyPosts; bool? denyComments; String? notes; OrganizationMember({this.id,this.organizationId,this.userId,this.userName,this.isOwner,this.isModerator,this.denyAll,this.denyPosts,this.denyComments,this.notes}); OrganizationMember.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; organizationId = json['organizationId']; userId = json['userId']; userName = json['userName']; isOwner = json['isOwner']; isModerator = json['isModerator']; denyAll = json['denyAll']; denyPosts = json['denyPosts']; denyComments = json['denyComments']; notes = json['notes']; return this; } Map toJson() => { 'id': id, 'organizationId': organizationId, 'userId': userId, 'userName': userName, 'isOwner': isOwner, 'isModerator': isModerator, 'denyAll': denyAll, 'denyPosts': denyPosts, 'denyComments': denyComments, 'notes': notes }; getTypeName() => "OrganizationMember"; TypeContext? context = _ctx; } class OrganizationMemberInvite implements IConvertible { int? id; int? organizationId; int? userId; String? userName; DateTime? dismissed; OrganizationMemberInvite({this.id,this.organizationId,this.userId,this.userName,this.dismissed}); OrganizationMemberInvite.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; organizationId = json['organizationId']; userId = json['userId']; userName = json['userName']; dismissed = JsonConverters.fromJson(json['dismissed'],'DateTime',context!); return this; } Map toJson() => { 'id': id, 'organizationId': organizationId, 'userId': userId, 'userName': userName, 'dismissed': JsonConverters.toJson(dismissed,'DateTime',context!) }; getTypeName() => "OrganizationMemberInvite"; TypeContext? context = _ctx; } class OrganizationSubscription implements IConvertible { int? id; int? organizationId; int? userId; String? userName; List? postTypes; int? frequencyDays; int? lastSyncedId; DateTime? lastSynced; DateTime? created; OrganizationSubscription({this.id,this.organizationId,this.userId,this.userName,this.postTypes,this.frequencyDays,this.lastSyncedId,this.lastSynced,this.created}); OrganizationSubscription.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; organizationId = json['organizationId']; userId = json['userId']; userName = json['userName']; postTypes = JsonConverters.fromJson(json['postTypes'],'List',context!); frequencyDays = json['frequencyDays']; lastSyncedId = json['lastSyncedId']; lastSynced = JsonConverters.fromJson(json['lastSynced'],'DateTime',context!); created = JsonConverters.fromJson(json['created'],'DateTime',context!); return this; } Map toJson() => { 'id': id, 'organizationId': organizationId, 'userId': userId, 'userName': userName, 'postTypes': JsonConverters.toJson(postTypes,'List',context!), 'frequencyDays': frequencyDays, 'lastSyncedId': lastSyncedId, 'lastSynced': JsonConverters.toJson(lastSynced,'DateTime',context!), 'created': JsonConverters.toJson(created,'DateTime',context!) }; getTypeName() => "OrganizationSubscription"; TypeContext? context = _ctx; } class UserActivity implements IConvertible { int? id; String? userName; int? karma; int? technologyCount; int? techStacksCount; int? postsCount; int? postUpVotes; int? postDownVotes; int? commentUpVotes; int? commentDownVotes; int? postCommentsCount; int? pinnedCommentCount; int? postReportCount; int? postCommentReportCount; DateTime? created; DateTime? modified; UserActivity({this.id,this.userName,this.karma,this.technologyCount,this.techStacksCount,this.postsCount,this.postUpVotes,this.postDownVotes,this.commentUpVotes,this.commentDownVotes,this.postCommentsCount,this.pinnedCommentCount,this.postReportCount,this.postCommentReportCount,this.created,this.modified}); UserActivity.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; userName = json['userName']; karma = json['karma']; technologyCount = json['technologyCount']; techStacksCount = json['techStacksCount']; postsCount = json['postsCount']; postUpVotes = json['postUpVotes']; postDownVotes = json['postDownVotes']; commentUpVotes = json['commentUpVotes']; commentDownVotes = json['commentDownVotes']; postCommentsCount = json['postCommentsCount']; pinnedCommentCount = json['pinnedCommentCount']; postReportCount = json['postReportCount']; postCommentReportCount = json['postCommentReportCount']; created = JsonConverters.fromJson(json['created'],'DateTime',context!); modified = JsonConverters.fromJson(json['modified'],'DateTime',context!); return this; } Map toJson() => { 'id': id, 'userName': userName, 'karma': karma, 'technologyCount': technologyCount, 'techStacksCount': techStacksCount, 'postsCount': postsCount, 'postUpVotes': postUpVotes, 'postDownVotes': postDownVotes, 'commentUpVotes': commentUpVotes, 'commentDownVotes': commentDownVotes, 'postCommentsCount': postCommentsCount, 'pinnedCommentCount': pinnedCommentCount, 'postReportCount': postReportCount, 'postCommentReportCount': postCommentReportCount, 'created': JsonConverters.toJson(created,'DateTime',context!), 'modified': JsonConverters.toJson(modified,'DateTime',context!) }; getTypeName() => "UserActivity"; TypeContext? context = _ctx; } class SessionInfoResponse implements IConvertible { DateTime? created; String? id; String? referrerUrl; String? userAuthId; String? userAuthName; String? userName; String? displayName; String? firstName; String? lastName; String? email; DateTime? createdAt; DateTime? lastModified; List? roles; List? permissions; bool? isAuthenticated; String? authProvider; String? profileUrl; String? githubProfileUrl; String? twitterProfileUrl; String? accessToken; String? avatarUrl; List? techStacks; List? favoriteTechStacks; List? favoriteTechnologies; UserActivity? userActivity; List? members; List? memberInvites; List? subscriptions; ResponseStatus? responseStatus; SessionInfoResponse({this.created,this.id,this.referrerUrl,this.userAuthId,this.userAuthName,this.userName,this.displayName,this.firstName,this.lastName,this.email,this.createdAt,this.lastModified,this.roles,this.permissions,this.isAuthenticated,this.authProvider,this.profileUrl,this.githubProfileUrl,this.twitterProfileUrl,this.accessToken,this.avatarUrl,this.techStacks,this.favoriteTechStacks,this.favoriteTechnologies,this.userActivity,this.members,this.memberInvites,this.subscriptions,this.responseStatus}); SessionInfoResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { created = JsonConverters.fromJson(json['created'],'DateTime',context!); id = json['id']; referrerUrl = json['referrerUrl']; userAuthId = json['userAuthId']; userAuthName = json['userAuthName']; userName = json['userName']; displayName = json['displayName']; firstName = json['firstName']; lastName = json['lastName']; email = json['email']; createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!); lastModified = JsonConverters.fromJson(json['lastModified'],'DateTime',context!); roles = JsonConverters.fromJson(json['roles'],'List',context!); permissions = JsonConverters.fromJson(json['permissions'],'List',context!); isAuthenticated = json['isAuthenticated']; authProvider = json['authProvider']; profileUrl = json['profileUrl']; githubProfileUrl = json['githubProfileUrl']; twitterProfileUrl = json['twitterProfileUrl']; accessToken = json['accessToken']; avatarUrl = json['avatarUrl']; techStacks = JsonConverters.fromJson(json['techStacks'],'List',context!); favoriteTechStacks = JsonConverters.fromJson(json['favoriteTechStacks'],'List',context!); favoriteTechnologies = JsonConverters.fromJson(json['favoriteTechnologies'],'List',context!); userActivity = JsonConverters.fromJson(json['userActivity'],'UserActivity',context!); members = JsonConverters.fromJson(json['members'],'List',context!); memberInvites = JsonConverters.fromJson(json['memberInvites'],'List',context!); subscriptions = JsonConverters.fromJson(json['subscriptions'],'List',context!); responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'created': JsonConverters.toJson(created,'DateTime',context!), 'id': id, 'referrerUrl': referrerUrl, 'userAuthId': userAuthId, 'userAuthName': userAuthName, 'userName': userName, 'displayName': displayName, 'firstName': firstName, 'lastName': lastName, 'email': email, 'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!), 'lastModified': JsonConverters.toJson(lastModified,'DateTime',context!), 'roles': JsonConverters.toJson(roles,'List',context!), 'permissions': JsonConverters.toJson(permissions,'List',context!), 'isAuthenticated': isAuthenticated, 'authProvider': authProvider, 'profileUrl': profileUrl, 'githubProfileUrl': githubProfileUrl, 'twitterProfileUrl': twitterProfileUrl, 'accessToken': accessToken, 'avatarUrl': avatarUrl, 'techStacks': JsonConverters.toJson(techStacks,'List',context!), 'favoriteTechStacks': JsonConverters.toJson(favoriteTechStacks,'List',context!), 'favoriteTechnologies': JsonConverters.toJson(favoriteTechnologies,'List',context!), 'userActivity': JsonConverters.toJson(userActivity,'UserActivity',context!), 'members': JsonConverters.toJson(members,'List',context!), 'memberInvites': JsonConverters.toJson(memberInvites,'List',context!), 'subscriptions': JsonConverters.toJson(subscriptions,'List',context!), 'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!) }; getTypeName() => "SessionInfoResponse"; TypeContext? context = _ctx; } // @Route("/my-session") // @ValidateRequest(Validator="IsAuthenticated") class SessionInfo implements IReturn, IGet, IConvertible { SessionInfo(); SessionInfo.fromJson(Map json) : super(); fromMap(Map json) { return this; } Map toJson() => {}; createResponse() => SessionInfoResponse(); getResponseTypeName() => "SessionInfoResponse"; getTypeName() => "SessionInfo"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'techstacks.io', types: { 'TechnologyTier': TypeInfo(TypeOf.Enum, enumValues:TechnologyTier.values), 'TechnologyBase': TypeInfo(TypeOf.AbstractClass), 'Technology': TypeInfo(TypeOf.Class, create:() => Technology()), 'TechnologyStackBase': TypeInfo(TypeOf.AbstractClass), 'TechnologyStack': TypeInfo(TypeOf.Class, create:() => TechnologyStack()), 'OrganizationMember': TypeInfo(TypeOf.Class, create:() => OrganizationMember()), 'OrganizationMemberInvite': TypeInfo(TypeOf.Class, create:() => OrganizationMemberInvite()), 'OrganizationSubscription': TypeInfo(TypeOf.Class, create:() => OrganizationSubscription()), 'UserActivity': TypeInfo(TypeOf.Class, create:() => UserActivity()), 'SessionInfoResponse': TypeInfo(TypeOf.Class, create:() => SessionInfoResponse()), '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:() => []), 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), });