feat: implement secure multi-tenancy, RBAC, and premium dark mode
All checks were successful
Build and Deploy / build-and-push (push) Successful in 1m54s
All checks were successful
Build and Deploy / build-and-push (push) Successful in 1m54s
- Enforced tenant isolation and Role-Based Access Control across all API routes - Implemented secure profile avatar upload using multer and UUIDs - Redesigned UI with a premium "Onyx & Gold" Charcoal dark mode - Added Funnel Stage and Origin filters to Dashboard and User Detail pages - Replaced "Referral" with "Indicação" across the platform and database - Optimized Dockerfile and local environment setup for reliable deployments - Fixed frontend syntax errors and improved KPI/Chart visualizations
This commit is contained in:
39
constants.ts
39
constants.ts
@@ -111,7 +111,7 @@ export const USERS: User[] = [
|
||||
];
|
||||
|
||||
const generateMockAttendances = (count: number): Attendance[] => {
|
||||
const origins = ['WhatsApp', 'Instagram', 'Website', 'LinkedIn', 'Referral'] as const;
|
||||
const origins = ['WhatsApp', 'Instagram', 'Website', 'LinkedIn', 'Indicação'] as const;
|
||||
const stages = Object.values(FunnelStage);
|
||||
const products = ['Plano Premium', 'Plano Básico', 'Suíte Enterprise', 'Consultoria'];
|
||||
|
||||
@@ -163,9 +163,36 @@ export const MOCK_ATTENDANCES = generateMockAttendances(300);
|
||||
// Visual Constants
|
||||
export const COLORS = {
|
||||
primary: '#facc15', // Yellow-400
|
||||
secondary: '#1e293b', // Slate-800
|
||||
success: '#22c55e',
|
||||
warning: '#f59e0b',
|
||||
danger: '#ef4444',
|
||||
charts: ['#3b82f6', '#10b981', '#6366f1', '#f59e0b', '#ec4899', '#8b5cf6'],
|
||||
secondary: '#18181b', // Zinc-900
|
||||
success: '#10b981', // Emerald-500
|
||||
warning: '#f59e0b', // Amber-500
|
||||
danger: '#ef4444', // Red-500
|
||||
|
||||
// Prettier, modern SaaS palette for general charts
|
||||
charts: [
|
||||
'#818cf8', // Soft Indigo
|
||||
'#4ade80', // Soft Emerald
|
||||
'#fb923c', // Soft Orange
|
||||
'#22d3ee', // Soft Cyan
|
||||
'#f472b6', // Soft Pink
|
||||
'#a78bfa' // Soft Violet
|
||||
],
|
||||
|
||||
// Brand-specific colors for Lead Origins
|
||||
origins: {
|
||||
'WhatsApp': '#25D366',
|
||||
'Instagram': '#E4405F',
|
||||
'LinkedIn': '#0077B5',
|
||||
'Website': '#f87171', // Coral Red (Distinct from LinkedIn blue)
|
||||
'Indicação': '#f59e0b'
|
||||
},
|
||||
|
||||
// Semantic palette for Funnel Stages
|
||||
funnel: {
|
||||
'Sem atendimento': '#64748b', // Slate-500
|
||||
'Identificação': '#818cf8', // Indigo-400
|
||||
'Negociação': '#fb923c', // Orange-400
|
||||
'Ganhos': '#10b981', // Emerald-500
|
||||
'Perdidos': '#f87171' // Red-400
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user