/**
 * @copyright 2026 NHCarrigan
 * @license Naomi's Public License
 * @author Naomi Carrigan
 */

import type { PrimaryBadge } from "./auth.types";

interface CommentUser {
  id:            string;
  username:      string;
  avatar?:       string;
  primaryBadge?: PrimaryBadge;
  inDiscord?:    boolean;
  isVip?:        boolean;
  isMod?:        boolean;
  isStaff?:      boolean;
}

interface Comment {
  id:                 string;
  content:            string;
  rawContent?:        string;
  userId:             string;
  user:               CommentUser;
  gameId?:            string;
  bookId?:            string;
  musicId?:           string;
  artId?:             string;
  showId?:            string;
  mangaId?:           string;
  hasPendingReports?: boolean;
  createdAt:          Date;
  updatedAt:          Date;
}

interface CreateCommentDto {
  content: string;
}

export type { Comment, CommentUser, CreateCommentDto };
