Files
fasto/types.ts
Cauê Faleiros 96cfb3d125
All checks were successful
Build and Deploy / build-and-push (push) Successful in 1m50s
refactor: remove mock data and finalize n8n data schema
- Removed all hardcoded MOCK_ATTENDANCES, USERS, and TENANTS generators from constants.ts since the system is now production-ready.

- Renamed 'summary' to 'title' in the database and across all frontend components for clarity.

- Added 'full_summary' to the attendances schema to explicitly store the large, detailed AI analysis texts from n8n.

- Updated the 'Resumo da Interação' UI to render the 'full_summary' without adding any artificial filler text.

- Localized all dates and times across the dashboard to Brazilian formatting (pt-BR).
2026-03-17 12:45:15 -03:00

84 lines
1.7 KiB
TypeScript

export enum FunnelStage {
NO_CONTACT = 'Sem atendimento',
IDENTIFICATION = 'Identificação',
NEGOTIATION = 'Negociação',
WON = 'Ganhos',
LOST = 'Perdidos',
}
export interface FunnelStageDef {
id: string;
funnel_id: string;
name: string;
color_class: string;
order_index: number;
}
export interface FunnelDef {
id: string;
tenant_id: string;
name: string;
stages: FunnelStageDef[];
teamIds: string[];
}
export interface User {
id: string;
tenant_id: string;
name: string;
email: string;
slug?: string;
avatar_url: string;
role: 'super_admin' | 'admin' | 'manager' | 'agent';
team_id: string;
bio?: string;
status: 'active' | 'inactive';
sound_enabled?: boolean;
}
export interface Attendance {
id: string;
tenant_id: string;
user_id: string;
created_at: string; // ISO Date
title: string;
full_summary?: string;
attention_points: string[];
improvement_points: string[];
score: number; // 0-100
first_response_time_min: number;
handling_time_min: number;
funnel_stage: string;
origin: 'WhatsApp' | 'Instagram' | 'Website' | 'LinkedIn' | 'Indicação';
product_requested: string;
product_sold?: string;
converted: boolean;
}
export interface Tenant {
id: string;
name: string;
logo_url?: string;
// Extended fields for Super Admin
slug?: string;
admin_email?: string;
status?: 'active' | 'inactive' | 'trial';
user_count?: number;
attendance_count?: number;
created_at?: string;
}
export interface DateRange {
start: Date;
end: Date;
}
export interface DashboardFilter {
dateRange: DateRange;
userId?: string;
teamId?: string;
funnelStage?: string;
origin?: string;
}