export type CrmRole = 'admin' | 'editor' | 'viewer'; export const CRM_ROLES: CrmRole[] = ['admin', 'editor', 'viewer']; export function isCrmRole(value: unknown): value is CrmRole { return value === 'admin' || value === 'editor' || value === 'viewer'; } /** Editors and admins may create/update records; viewers are read-only. */ export function canWrite(role: unknown): boolean { return role === 'admin' || role === 'editor'; } /** Only admins may delete records. */ export function canDelete(role: unknown): boolean { return role === 'admin'; } export function canImport(role: unknown): boolean { return role === 'admin' || role === 'editor'; } export function roleLabel(role: unknown): string { return isCrmRole(role) ? role : 'viewer'; }