export interface SupportMessageStatus {
  result: SupportResult[];
}

export interface SupportResult {
  fromUserId: string;
  fromUserName: string;
  lastAccessDate: string;
  issueId: string;
}

export interface SupportStatusUser {
  socketId: string;
  userId: string;
  name: string;
  role: string[];
}

export interface SupportIssueResponse {
  result: SupportIssue[];
  page: number;
  pageSize: number;
  total: number;
}

export interface SupportIssue {
  id: string;
  createdByUserId: string;
  createdByUserName: string;
  createdAt: string;
  updatedAt: string;
  title: string;
  status: "new" | "ongoing" | "resolved";
  category: SupportIssueCategory;
  unreadCount: number;
  lastMessage: string;
}

export interface SupportIssueCategoryResponse {
  result: SupportIssueCategory[];
}

export interface SupportIssueCategory {
  id: string;
  name: string;
}

export interface SupportMessageResponse {
  result: SupportIssueWithMessage;
  page: number;
  pageSize: number;
  total: number;
}

export interface SupportIssueWithMessage {
  id: string;
  createdByUserId: string;
  createdByUserName: string;
  createdAt: string;
  updatedAt: string;
  title: string;
  status: string;
  message: SupportIssueMessage[];
}

export interface SupportIssueMessage {
  id: string;
  fromUserId: string;
  fromUserName: string;
  createdAt: string;
  updatedAt: string;
  content: string;
  read: boolean;
  issueId: string;
}
