Comment class

Represents a comment with support for nested replies.

A comment can be either a root comment (top-level) or a reply to another comment. Root comments have parentId set to null, while replies have it set to the parent's ID.

Example:

final comment = Comment(
  id: 'comment-1',
  date: DateTime.now(),
  content: 'This is a comment',
  entityId: 'post-123',
  userId: 'user-1',
  username: 'John Doe',
  likeCount: 5,
  isLiked: false,
);

Constructors

Comment({required String id, required DateTime date, String? parentId, required String content, required String entityId, required String userId, required String username, int? likeCount, int? replyCount, bool? isLiked, bool isMine = false, List<Comment> replies = const []})
Creates a new Comment.
Comment.fromJson(Map<String, dynamic> json, {required String? currentUserId, List<Comment>? replies})
Creates a Comment from a JSON map.
factory

Properties

content → String
The text content of the comment.
final
date → DateTime
Date and time when the comment was created.
final
entityId → String
ID of the entity (post, article, etc.) this comment belongs to.
final
hashCode → int
The hash code for this object.
no setterinherited
id → String
Unique identifier for this comment.
final
initials → String
Gets the initials for the comment author.
no setter
isLiked → bool?
Whether the current user has liked this comment.
final
isMine → bool
Whether this comment was created by the current user.
final
isRoot → bool
Whether this is a root comment (not a reply).
no setter
likeCount → int?
Number of likes this comment has received.
final
parentId → String?
ID of the parent comment, if this is a reply.
final
replies → List<Comment>
List of direct replies to this comment.
final
replyCount ↔ int?
Number of replies this comment has.
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
userId → String
ID of the user who created this comment.
final
username → String
Display name of the user who created this comment.
final

Methods

copyWith({String? id, DateTime? date, String? parentId, String? content, String? entityId, String? userId, String? username, int? likeCount, int? replyCount, bool? isLiked, bool? isMine, List<Comment>? replies}) → Comment
Creates a copy of this comment with the given fields replaced.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, String>
Converts this comment to a JSON map.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited