export interface SocketUser {
  userId: string;
  socketId: string;
  name: string;
  avatar?: string;
  role: string;
}

export interface ChatMessage {
  id?: number;
  room_id: number;
  sender_id: string;
  content: string;
  message_type: 'text' | 'image' | 'file' | 'system';
  file_url?: string;
  is_read: boolean;
  sender?: {
    user_id: string;
    name: string;
    avatar?: string;
    role: string;
  };
  createdAt?: Date;
}

export interface JoinRoomData {
  roomId: number;
  userId: string;
}

export interface SendMessageData {
  roomId: number;
  senderId: string;
  content: string;
  messageType?: 'text' | 'image' | 'file' | 'system';
  fileUrl?: string;
}

export interface TypingData {
  roomId: number;
  userId: string;
  userName: string;
  isTyping: boolean;
}
