Post constructor
const
Post({
- @JsonKey(name: 'id', required: true) required String id,
- @JsonKey(name: 'slug', required: true) required String slug,
- @JsonKey(name: 'title', required: true) required String title,
- @JsonKey(name: 'content', required: true) required String content,
- @JsonKey(name: 'user', required: true) required UserSimple user,
- @JsonKey(name: 'postStatus', required: true) required PostStatus status,
- @JsonKey(name: 'upvotes', defaultValue: 0) @Default(0) int upvotes,
- @JsonKey(name: 'commentCount', defaultValue: 0) @Default(0) int commentCount,
- @JsonKey(name: 'upvoted', defaultValue: false) @Default(false) bool upvoted,
- @JsonKey(name: 'downvoted', defaultValue: false) @Default(false) bool downvoted,
- @JsonKey(name: 'pinned', defaultValue: false) @Default(false) bool pinned,
- @JsonKey(name: 'isSubscribed', defaultValue: false) @Default(false) bool isSubscribed,
- @JsonKey(name: 'date', required: true) required DateTime date,
- @JsonKey(name: 'lastModified', required: true) required DateTime lastModified,
- @JsonKey(name: 'postCategory', required: true) required PostCategory postCategory,
Implementation
const factory Post({
/// The id of the post
@JsonKey(name: 'id', required: true) required String id,
/// The slug of the post
@JsonKey(name: 'slug', required: true) required String slug,
/// The title of the post
@JsonKey(name: 'title', required: true) required String title,
/// The content of the post
@JsonKey(name: 'content', required: true) required String content,
/// The user who created the post
@JsonKey(name: 'user', required: true) required UserSimple user,
/// The status of the post
@JsonKey(name: 'postStatus', required: true) required PostStatus status,
/// Post upvotes
@JsonKey(name: 'upvotes', defaultValue: 0) @Default(0) int upvotes,
/// Post comment count
@JsonKey(name: 'commentCount', defaultValue: 0)
@Default(0)
int commentCount,
/// Whether the user has upvoted the post (false by default)
@JsonKey(name: 'upvoted', defaultValue: false) @Default(false) bool upvoted,
/// Whether the user has downvoted the post (false by default)
@JsonKey(name: 'downvoted', defaultValue: false)
@Default(false)
bool downvoted,
/// Whether the post is pinned (false by default)
@JsonKey(name: 'pinned', defaultValue: false) @Default(false) bool pinned,
/// Whether the user is subscribed to the post (false by default)
@JsonKey(name: 'isSubscribed', defaultValue: false)
@Default(false)
bool isSubscribed,
/// Date the post was created
@JsonKey(name: 'date', required: true) required DateTime date,
/// Date the post was last updated
@JsonKey(name: 'lastModified', required: true)
required DateTime lastModified,
/// The category of the post
@JsonKey(name: 'postCategory', required: true)
required PostCategory postCategory,
}) = _Post;