import type { JSONContent } from '@tiptap/core' export type AnyCommentType = OnContract | OnGroup | OnPost // Currently, comments are created after the bet, not atomically with the bet. // They're uniquely identified by the pair contractId/betId. export type Comment = { id: string replyToCommentId?: string userId: string /** @deprecated - content now stored as JSON in content*/ text?: string content: JSONContent createdTime: number // Denormalized, for rendering comments userName: string userUsername: string userAvatarUrl?: string } & T export type OnContract = { commentType: 'contract' contractId: string answerOutcome?: string betId?: string // denormalized from contract contractSlug: string contractQuestion: string // denormalized from bet betAmount?: number betOutcome?: string // denormalized based on betting history commenterPositionProb?: number // binary only commenterPositionShares?: number commenterPositionOutcome?: string } export type OnGroup = { commentType: 'group' groupId: string } export type OnPost = { commentType: 'post' postId: string } export type ContractComment = Comment export type GroupComment = Comment export type PostComment = Comment