import 'package:servicestack/servicestack.dart';
enum PostType
{
Announcement,
Post,
Showcase,
Question,
Request,
}
class Post implements IConvertible
{
int? id;
int? organizationId;
int? userId;
PostType? type;
int? categoryId;
String? title;
String? slug;
String? url;
String? imageUrl;
// @StringLength(2147483647)
String? content;
// @StringLength(2147483647)
String? contentHtml;
int? pinCommentId;
List<int>? technologyIds;
DateTime? fromDate;
DateTime? toDate;
String? location;
String? metaType;
String? meta;
bool? approved;
int? upVotes;
int? downVotes;
int? points;
int? views;
int? favorites;
int? subscribers;
int? replyCount;
int? commentsCount;
int? wordCount;
int? reportCount;
int? linksCount;
int? linkedToCount;
int? score;
int? rank;
List<String>? labels;
List<int>? refUserIds;
List<String>? refLinks;
List<int>? muteUserIds;
DateTime? lastCommentDate;
int? lastCommentId;
int? lastCommentUserId;
DateTime? deleted;
String? deletedBy;
DateTime? locked;
String? lockedBy;
DateTime? hidden;
String? hiddenBy;
String? status;
DateTime? statusDate;
String? statusBy;
bool? archived;
DateTime? bumped;
DateTime? created;
String? createdBy;
DateTime? modified;
String? modifiedBy;
int? refId;
String? refSource;
String? refUrn;
Post({this.id,this.organizationId,this.userId,this.type,this.categoryId,this.title,this.slug,this.url,this.imageUrl,this.content,this.contentHtml,this.pinCommentId,this.technologyIds,this.fromDate,this.toDate,this.location,this.metaType,this.meta,this.approved,this.upVotes,this.downVotes,this.points,this.views,this.favorites,this.subscribers,this.replyCount,this.commentsCount,this.wordCount,this.reportCount,this.linksCount,this.linkedToCount,this.score,this.rank,this.labels,this.refUserIds,this.refLinks,this.muteUserIds,this.lastCommentDate,this.lastCommentId,this.lastCommentUserId,this.deleted,this.deletedBy,this.locked,this.lockedBy,this.hidden,this.hiddenBy,this.status,this.statusDate,this.statusBy,this.archived,this.bumped,this.created,this.createdBy,this.modified,this.modifiedBy,this.refId,this.refSource,this.refUrn});
Post.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
organizationId = json['organizationId'];
userId = json['userId'];
type = JsonConverters.fromJson(json['type'],'PostType',context!);
categoryId = json['categoryId'];
title = json['title'];
slug = json['slug'];
url = json['url'];
imageUrl = json['imageUrl'];
content = json['content'];
contentHtml = json['contentHtml'];
pinCommentId = json['pinCommentId'];
technologyIds = JsonConverters.fromJson(json['technologyIds'],'List<int>',context!);
fromDate = JsonConverters.fromJson(json['fromDate'],'DateTime',context!);
toDate = JsonConverters.fromJson(json['toDate'],'DateTime',context!);
location = json['location'];
metaType = json['metaType'];
meta = json['meta'];
approved = json['approved'];
upVotes = json['upVotes'];
downVotes = json['downVotes'];
points = json['points'];
views = json['views'];
favorites = json['favorites'];
subscribers = json['subscribers'];
replyCount = json['replyCount'];
commentsCount = json['commentsCount'];
wordCount = json['wordCount'];
reportCount = json['reportCount'];
linksCount = json['linksCount'];
linkedToCount = json['linkedToCount'];
score = json['score'];
rank = json['rank'];
labels = JsonConverters.fromJson(json['labels'],'List<String>',context!);
refUserIds = JsonConverters.fromJson(json['refUserIds'],'List<int>',context!);
refLinks = JsonConverters.fromJson(json['refLinks'],'List<String>',context!);
muteUserIds = JsonConverters.fromJson(json['muteUserIds'],'List<int>',context!);
lastCommentDate = JsonConverters.fromJson(json['lastCommentDate'],'DateTime',context!);
lastCommentId = json['lastCommentId'];
lastCommentUserId = json['lastCommentUserId'];
deleted = JsonConverters.fromJson(json['deleted'],'DateTime',context!);
deletedBy = json['deletedBy'];
locked = JsonConverters.fromJson(json['locked'],'DateTime',context!);
lockedBy = json['lockedBy'];
hidden = JsonConverters.fromJson(json['hidden'],'DateTime',context!);
hiddenBy = json['hiddenBy'];
status = json['status'];
statusDate = JsonConverters.fromJson(json['statusDate'],'DateTime',context!);
statusBy = json['statusBy'];
archived = json['archived'];
bumped = JsonConverters.fromJson(json['bumped'],'DateTime',context!);
created = JsonConverters.fromJson(json['created'],'DateTime',context!);
createdBy = json['createdBy'];
modified = JsonConverters.fromJson(json['modified'],'DateTime',context!);
modifiedBy = json['modifiedBy'];
refId = json['refId'];
refSource = json['refSource'];
refUrn = json['refUrn'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'organizationId': organizationId,
'userId': userId,
'type': JsonConverters.toJson(type,'PostType',context!),
'categoryId': categoryId,
'title': title,
'slug': slug,
'url': url,
'imageUrl': imageUrl,
'content': content,
'contentHtml': contentHtml,
'pinCommentId': pinCommentId,
'technologyIds': JsonConverters.toJson(technologyIds,'List<int>',context!),
'fromDate': JsonConverters.toJson(fromDate,'DateTime',context!),
'toDate': JsonConverters.toJson(toDate,'DateTime',context!),
'location': location,
'metaType': metaType,
'meta': meta,
'approved': approved,
'upVotes': upVotes,
'downVotes': downVotes,
'points': points,
'views': views,
'favorites': favorites,
'subscribers': subscribers,
'replyCount': replyCount,
'commentsCount': commentsCount,
'wordCount': wordCount,
'reportCount': reportCount,
'linksCount': linksCount,
'linkedToCount': linkedToCount,
'score': score,
'rank': rank,
'labels': JsonConverters.toJson(labels,'List<String>',context!),
'refUserIds': JsonConverters.toJson(refUserIds,'List<int>',context!),
'refLinks': JsonConverters.toJson(refLinks,'List<String>',context!),
'muteUserIds': JsonConverters.toJson(muteUserIds,'List<int>',context!),
'lastCommentDate': JsonConverters.toJson(lastCommentDate,'DateTime',context!),
'lastCommentId': lastCommentId,
'lastCommentUserId': lastCommentUserId,
'deleted': JsonConverters.toJson(deleted,'DateTime',context!),
'deletedBy': deletedBy,
'locked': JsonConverters.toJson(locked,'DateTime',context!),
'lockedBy': lockedBy,
'hidden': JsonConverters.toJson(hidden,'DateTime',context!),
'hiddenBy': hiddenBy,
'status': status,
'statusDate': JsonConverters.toJson(statusDate,'DateTime',context!),
'statusBy': statusBy,
'archived': archived,
'bumped': JsonConverters.toJson(bumped,'DateTime',context!),
'created': JsonConverters.toJson(created,'DateTime',context!),
'createdBy': createdBy,
'modified': JsonConverters.toJson(modified,'DateTime',context!),
'modifiedBy': modifiedBy,
'refId': refId,
'refSource': refSource,
'refUrn': refUrn
};
getTypeName() => "Post";
TypeContext? context = _ctx;
}
class DummyTypes implements IConvertible
{
List<Post>? post;
DummyTypes({this.post});
DummyTypes.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
post = JsonConverters.fromJson(json['post'],'List<Post>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'post': JsonConverters.toJson(post,'List<Post>',context!)
};
getTypeName() => "DummyTypes";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'techstacks.io', types: <String, TypeInfo> {
'PostType': TypeInfo(TypeOf.Enum, enumValues:PostType.values),
'Post': TypeInfo(TypeOf.Class, create:() => Post()),
'DummyTypes': TypeInfo(TypeOf.Class, create:() => DummyTypes()),
'List<Post>': TypeInfo(TypeOf.Class, create:() => <Post>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/oneway/DummyTypes HTTP/1.1
Host: techstacks.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
post:
[
{
id: 0,
organizationId: 0,
userId: 0,
type: Announcement,
categoryId: 0,
title: String,
slug: String,
url: String,
imageUrl: String,
content: String,
contentHtml: String,
pinCommentId: 0,
technologyIds:
[
0
],
fromDate: 0001-01-01,
toDate: 0001-01-01,
location: String,
metaType: String,
meta: String,
approved: False,
upVotes: 0,
downVotes: 0,
points: 0,
views: 0,
favorites: 0,
subscribers: 0,
replyCount: 0,
commentsCount: 0,
wordCount: 0,
reportCount: 0,
linksCount: 0,
linkedToCount: 0,
score: 0,
rank: 0,
labels:
[
String
],
refUserIds:
[
0
],
refLinks:
[
String
],
muteUserIds:
[
0
],
lastCommentDate: 0001-01-01,
lastCommentId: 0,
lastCommentUserId: 0,
deleted: 0001-01-01,
deletedBy: String,
locked: 0001-01-01,
lockedBy: String,
hidden: 0001-01-01,
hiddenBy: String,
status: String,
statusDate: 0001-01-01,
statusBy: String,
archived: False,
bumped: 0001-01-01,
created: 0001-01-01,
createdBy: String,
modified: 0001-01-01,
modifiedBy: String,
refId: 0,
refSource: String,
refUrn: String
}
]
}