godcrm/components/AIChatPanel.types.ts
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

61 lines
1.5 KiB
TypeScript

/**
* AIChatPanel.types.ts
* Local types used by AIChatPanel and its extracted sub-components.
* For shared types, see AIChatPanel/types/index.ts
*/
// Inbox conversation type (local to AIChatPanel render functions)
export interface InboxConversation {
id: number;
title: string | null;
type: string;
agent_id?: number;
agent_name?: string | null;
agent_icon?: string | null;
unread_count: number;
updated_at: string;
participants: Array<{
user_id: number;
name: string;
email?: string;
avatar_url?: string;
}>;
sub_agents?: Array<{ row_id: number; name: string; icon?: string | null; response_mode?: string }>;
// Ticket #81438: Enriched bound row fields from backend
bound_table_id?: number | null;
bound_row_id?: number | null;
bound_row_title?: string | null;
bound_table_name?: string | null;
bound_table_icon?: string | null;
}
export interface TasksSourceConfig {
tableId: number;
tableName: string;
tableIcon?: string;
displayColumn?: string;
descriptionColumn?: string;
statusColumn?: string;
priorityColumn?: string;
statusDictTableId?: number;
priorityDictTableId?: number;
}
export interface FilesSourceConfig {
tableId: number;
tableName: string;
tableIcon?: string;
projectId?: number;
}
export interface AIChatPanelProps {
className?: string;
}
export type PanelTab = 'none' | 'contacts' | 'ai-agents' | 'tasks' | 'settings' | 'inbox';
// API response wrapper type
export interface ApiResponse<T> {
success: boolean;
data: T;
}