import { Agent } from './agents'; import { Chat } from './chats'; import { Queue } from './queues'; export type CaseChat = Pick; export interface CaseQueue extends Pick { project: { id: string; name: string; }; } export interface CaseAgent extends Pick { name: string; } export interface ContactReason { id: string; name: string; category_name: string; project_id: string; created_by_system: boolean; } export interface Case { id: string; chat: CaseChat; queue: CaseQueue; description: string | null; status: CaseStatus; created_at: string; assigned_to: CaseAgent | null; resolved_by: CaseAgent | null; resolved_at: string | null; contact_reasons: ContactReason[]; resolution: string | null; typification: string | null; rating: number | null; has_agent_message: boolean; interactions: number | null; initial_response_time: number | null; agent_time_on_task: number | null; } export declare enum CaseStatus { ATTENDING = "status_attending", IDLE = "status_idle", RESOLVED = "status_resolved", WAITING = "status_waiting" } export interface CaseListParams { created_after?: string; created_before?: string; status?: CaseStatus[]; resolved_after?: string; resolved_before?: string; order?: string; cursor?: string; page_size?: number; } export interface CaseSearchParams { start_date?: string; end_date?: string; q?: string; status?: 'status_attending' | 'status_idle' | 'status_resolved' | 'status_waiting'; provider?: 'apple' | 'facebook' | 'instagram' | 'telegram' | 'twitter' | 'webchat' | 'whatsapp'; queue_id?: string; project_id?: string; agent_id?: string; cursor?: string; page_size?: number; } export interface AgentSearchResult { id: string; email: string; username: string; first_name: string; last_name: string; } export interface ChatSearchResult { id: string; created_at: string; provider: string; provider_account_id: string; provider_id: string; name: string; username: string; is_blocked: boolean; is_banned: boolean; is_online: boolean; last_message_received: string; last_online_status_changed_at?: string; } export interface CaseSearchResult { id: string; created_at: string; status: string; project_id: string; queue_id: string; chat: ChatSearchResult; provider: string; description?: string; assigned_to?: AgentSearchResult; resolved_by?: AgentSearchResult; resolved_at?: string; resolution_status?: string; has_agent_message: boolean; }