import { UserRefReadModel } from './user-ref.read-model'; /** One emoji on a comment and who chose it. */ export class CommentReactionReadModel { emoji!: string; users!: UserRefReadModel[]; } export class CommentReadModel { id!: string; issueId!: string; projectId!: string; author!: UserRefReadModel; body!: string; /** Top-level comment it answers; null for a top-level one. */ replyTo!: string | null; /** * Deleted while it had replies: kept, without its text, so the * conversation under it still makes sense. Gone with its last reply. */ deleted!: boolean; /** In the order they are offered; only the ones somebody chose. */ reactions!: CommentReactionReadModel[]; /** Marked as a decision of the ticket. */ decision!: boolean; /** Who marked it and when (null when it is not a decision). */ decidedBy!: UserRefReadModel | null; decidedAt!: string | null; /** A top-level comment whose conversation was settled. */ resolved!: boolean; /** Who settled it and when (null while open). */ resolvedBy!: UserRefReadModel | null; resolvedAt!: string | null; createdAt!: string; editedAt!: string | null; version!: number; } /** A decision with the ticket it belongs to, for searching across tickets. */ export class DecisionReadModel { comment!: CommentReadModel; issue!: { id: string; key: string; title: string }; }