proposal-system/web/src/constants/index.ts

63 lines
2.3 KiB
TypeScript

export const API_URL = import.meta.env.VITE_API_URL || '/api';
export const CACHE_TIME_SHORT = 2 * 60 * 1000;
export const CACHE_TIME_MEDIUM = 5 * 60 * 1000;
export const CACHE_TIME_LONG = 10 * 60 * 1000;
export const STALE_TIME_SHORT = 1 * 60 * 1000;
export const STALE_TIME_MEDIUM = 5 * 60 * 1000;
export const STALE_TIME_LONG = 10 * 60 * 1000;
export const DEFAULT_PAGE_SIZE = 12;
export const DEFAULT_PAGE = 1;
export const DEBOUNCE_SEARCH = 600;
export const STORAGE_KEY_TOKEN = 'proposal_system_token';
export const STORAGE_KEY_SIDEBAR = 'sidebarOpen';
export const PROPOSAL_STATUSES = ['Draft', 'InReview', 'Approved', 'Sent', 'Revised'] as const;
export const SERVICE_CATEGORIES = ['HVAC', 'Plumbing', 'Electrical', 'General', 'Renovation', 'Other'] as const;
export const PRIORITIES = ['Standard', 'Urgent', 'Emergency'] as const;
export const STATUS_LABELS: Record<string, string> = {
Draft: 'Draft',
InReview: 'In Review',
Approved: 'Approved',
Sent: 'Sent',
Revised: 'Revised',
};
export const STATUS_CHIP_STYLES: Record<string, { bgcolor: string; color: string; border: string }> = {
Draft: { bgcolor: '#F1F5F9', color: '#334155', border: '1px solid #CBD5E1' },
InReview: { bgcolor: '#E0F2FE', color: '#075985', border: '1px solid #7DD3FC' },
Approved: { bgcolor: '#DCFCE7', color: '#166534', border: '1px solid #86EFAC' },
Sent: { bgcolor: '#DBEAFE', color: '#1E40AF', border: '1px solid #93C5FD' },
Revised: { bgcolor: '#F3E8FF', color: '#6B21A8', border: '1px solid #C084FC' },
Rejected: { bgcolor: '#FEE2E2', color: '#991B1B', border: '1px solid #FCA5A5' },
};
export const DRAWER_WIDTH = 216;
export const PRIORITY_LABELS: Record<string, string> = {
Standard: 'Standard',
Urgent: 'Urgent',
Emergency: 'Emergency Dispatch',
};
export const PRIORITY_CHIP_STYLES: Record<string, { bgcolor: string; color: string; border: string }> = {
Standard: { bgcolor: '#E2E8F0', color: '#334155', border: '1px solid #CBD5E1' },
Urgent: { bgcolor: '#FFEDD5', color: '#9A3412', border: '1px solid #FDBA74' },
Emergency: { bgcolor: '#FEE2E2', color: '#991B1B', border: '1px solid #F87171' },
};
export const PRIORITY_ROW_SX: Record<string, object> = {
Urgent: {
backgroundColor: '#FFF7ED',
},
Emergency: {
borderLeft: '4px solid',
borderLeftColor: 'error.main',
backgroundColor: '#FEF2F2',
},
};