export type Role = 'owner'|'admin'|'manager'|'accounts'|'sales'|'office_staff'|'store'|'service_manager'|'engineer';
export type SyncEventType = 'customer.created'|'customer.updated'|'ticket.created'|'ticket.assigned'|'ticket.updated'|'ticket.completed'|'engineer.schedule.updated'|'stock.updated'|'parts.issued'|'invoice.created'|'payment.received'|'ledger.posted'|'notification.created'|'file.uploaded'|'user.created';
export interface ApiEnvelope<T> { ok: boolean; data?: T; meta?: Record<string, unknown>; error?: { code: string; message: string; details?: unknown } }
export interface Customer { id:string; legacy_id?:string; name:string; company_name?:string; phone?:string; email?:string; due_balance:number; overdue_balance:number; collection_priority?:string; credit_status?:string }
export interface Product { id:string; sku:string; name:string; category_name?:string; current_stock:number; reorder_level:number; purchase_cost:number; unit?:string; tracking?:string }
export interface ServiceTicket { id:string; ticket_number:string; customer_id:string; assigned_engineer_id?:string; priority:string; status:string; warranty_status?:string; planned_at?:string; service_charge:number }
export interface SyncEvent { sequence:number; event_type:SyncEventType|string; entity_type:string; entity_id:string; payload:Record<string,unknown>; created_at:string }
