# 🔧 Side Card Interfaces ## Localização das Interfaces As interfaces do Side Card estão definidas em: ``` projects/idt_app/src/app/shared/interfaces/base-domain.interface.ts ``` ## 📋 Interfaces Principais ### SideCardConfig ```typescript interface SideCardConfig { enabled: boolean; title: string; position: 'left' | 'right'; width: string; componentType: 'summary' | 'detail' | 'custom'; displayFields: SideCardField[]; imageConfig?: SideCardImageConfig; statusConfig?: SideCardStatusConfig; } ``` ### SideCardField ```typescript interface SideCardField { key: string; label: string; type: 'text' | 'currency' | 'status' | 'badge' | 'image'; format?: 'date' | 'currency' | 'number'; prefix?: string; suffix?: string; } ``` ### SideCardImageConfig ```typescript interface SideCardImageConfig { defaultImage: string; fallbackImage: string; altText: string; width: string; height: string; } ``` ### SideCardStatusConfig ```typescript interface SideCardStatusConfig { [key: string]: { color: string; backgroundColor: string; label: string; }; } ``` ## 🔗 Integração com Tab System O side card é integrado ao sistema de tabs através da extensão da interface `TabFormConfig`: ```typescript interface TabFormConfig { // ... propriedades existentes sideCard?: SideCardConfig; } ``` ## 📍 Uso nas Implementações ### Drivers Domain ```typescript // projects/idt_app/src/app/domain/drivers/drivers.component.ts sideCard: { enabled: true, title: 'Resumo do Motorista', position: 'right', width: '350px', componentType: 'summary', displayFields: [ { key: 'vencimento_carteira', label: 'Vencimento CNH', type: 'text', format: 'date' }, { key: 'nome', label: 'Nome', type: 'text' }, // ... outros campos ] } ``` ## 🎯 Tipos Suportados ### Field Types - **text**: Texto simples - **currency**: Valores monetários (formatação automática) - **status**: Status com cores e badges - **badge**: Badges coloridos - **image**: Imagens inline ### Format Types - **date**: Formatação de datas (DD/MM/YYYY) - **currency**: Formatação monetária (R$ 1.234,56) - **number**: Formatação numérica ## 🔄 Extensibilidade Para adicionar novos tipos ou formatos: 1. Estenda as interfaces em `base-domain.interface.ts` 2. Implemente a lógica em `formatFieldValue()` no generic-tab-form 3. Adicione estilos CSS correspondentes 4. Atualize esta documentação --- **Referência Técnica** | Side Card Component v1.2.0