export interface User {
    id: string;
    name: string;
    avatar?: string;
    online?: boolean;
}

export interface Message {
    id: string;
    senderId: string;
    senderName: string;
    content: string;
    timestamp: string;
    read?: boolean;
}

export interface Chat {
    id: string;
    name: string;
    avatar?: string;
    lastMessage: string;
    timestamp: string;
    unreadCount?: number;
    online?: boolean;
    typing?: boolean;
    pinned?: boolean;
    muted?: boolean;
}

export interface GroupMember {
    id: string;
    name: string;
    role?: 'Admin' | 'Member';
    avatar?: string;
    initials: string;
    color: string;
}

export interface MediaItem {
    id: string;
    type: 'image' | 'video';
    url: string;
    thumbnail?: string;
    name: string;
    timestamp: string;
}

export interface DocumentItem {
    id: string;
    name: string;
    size: string;
    timestamp: string;
    fileType: string;
}

export interface AudioItem {
    id: string;
    name: string;
    duration: string;
    timestamp: string;
}

export interface LinkItem {
    id: string;
    url: string;
    title: string;
    description?: string;
    timestamp: string;
    favicon?: string;
}

export interface GroupInfo {
    id: string;
    name: string;
    avatar?: string;
    memberCount: number;
    onlineCount: number;
    members: GroupMember[];
    mediaCount: number;
    documentCount: number;
    audioCount: number;
    linkCount: number;
    mediaItems?: MediaItem[];
    documentItems?: DocumentItem[];
    audioItems?: AudioItem[];
    linkItems?: LinkItem[];
}
