// 用户相关类型
export interface User {
  id: string
  username: string
  email?: string
  avatar?: string
  nickname?: string
  createTime: string
  updateTime: string
}

// 聊天消息类型 - 与后端MessageResponse匹配
export interface ChatMessage {
  id: string
  content: string
  type: 'user' | 'ai' | 'system'
  timestamp: string
  conversationId?: string  // 改为conversationId以匹配后端
  sessionId?: string       // 保留sessionId作为别名
  status?: 'sending' | 'sent' | 'delivered' | 'read' | 'failed'
  sender?: 'user' | 'ai' | 'system'
  isRead?: number
  error?: string
  role?: 'user' | 'assistant' | 'system'  // 用于UI显示
  messageOrder?: number    // 消息顺序 - 在同一个会话中递增，用于确保消息展示顺序
}

// 聊天会话类型 - 与后端ConversationResponse匹配
export interface ChatSession {
  id: string
  title: string
  userId: string
  userType?: string
  type?: string
  status?: string
  createTime: string
  updateTime: string
  messageCount: number
  startTime?: string
  endTime?: string
  lastActiveTime?: string
}

// API响应基础类型
export interface ApiResponse<T = any> {
  code: number
  message: string
  data: T
  success: boolean
}

// 分页请求参数
export interface PageParams {
  page?: number
  size?: number
  keyword?: string
}

// 分页响应数据
export interface PageResult<T> {
  list: T[]
  total: number
  page: number
  size: number
  pages: number
}

// 登录请求参数
export interface LoginRequest {
  account: string
  password: string
}

// 登录响应数据
export interface LoginResponse {
  accessToken: string
  refreshToken: string
  user: User
}

// 注册请求参数
export interface RegisterRequest {
  username: string
  password: string
  email?: string
  nickname?: string
}

// 用户资料更新请求
export interface UserProfileUpdateRequest {
  nickname?: string
  email?: string
  avatar?: string
}

// 文件上传响应
export interface UploadResponse {
  url: string
  filename: string
  size: number
  type: string
}
