// /constants/permissions.js const PERMISSIONS = { // Users permissions USERS_CREATE: 'users:create', USERS_READ: 'users:read', USERS_UPDATE: 'users:update', USERS_DELETE: 'users:delete', USERS_SEARCH: 'users:search', USERS_ENROLL: 'users:enroll', // Professors permissions PROFESSORS_CREATE: 'professors:create', PROFESSORS_READ: 'professors:read', PROFESSORS_UPDATE: 'professors:update', PROFESSORS_DELETE: 'professors:delete', PROFESSORS_SEARCH: 'professors:search', // Courses permissions COURSES_CREATE: 'courses:create', COURSES_READ: 'courses:read', COURSES_UPDATE: 'courses:update', COURSES_DELETE: 'courses:delete', COURSES_SEARCH: 'courses:search', // Classes permissions CLASSES_CREATE: 'classes:create', CLASSES_READ: 'classes:read', CLASSES_UPDATE: 'classes:update', CLASSES_DELETE: 'classes:delete', CLASSES_SEARCH: 'classes:search', CLASSES_REGISTER_USERS: 'classes:register_users', // Sessions permissions SESSIONS_CREATE: 'sessions:create', SESSIONS_READ: 'sessions:read', SESSIONS_UPDATE: 'sessions:update', SESSIONS_DELETE: 'sessions:delete', SESSIONS_SEARCH: 'sessions:search', SESSIONS_ATTENDANCE: 'sessions:attendance', // Payments permissions PAYMENTS_CREATE: 'payments:create', PAYMENTS_READ: 'payments:read', PAYMENTS_UPDATE: 'payments:update', PAYMENTS_DELETE: 'payments:delete', PAYMENTS_SEARCH: 'payments:search', // Roles permissions ROLES_CREATE: 'roles:create', ROLES_READ: 'roles:read', ROLES_UPDATE: 'roles:update', ROLES_DELETE: 'roles:delete', ROLES_SEARCH: 'roles:search', // Notifications permissions NOTIFICATIONS_CREATE: 'notifications:create', NOTIFICATIONS_READ: 'notifications:read', NOTIFICATIONS_UPDATE: 'notifications:update', NOTIFICATIONS_DELETE: 'notifications:delete', NOTIFICATIONS_SEARCH: 'notifications:search', NOTIFICATIONS_RETRY: 'notifications:retry', // Certificates permissions CERTIFICATES_CREATE: 'certificates:create', CERTIFICATES_READ: 'certificates:read', CERTIFICATES_UPDATE: 'certificates:update', CERTIFICATES_DELETE: 'certificates:delete', CERTIFICATES_SEARCH: 'certificates:search', // Documents permissions (private user documents) DOCUMENTS_CREATE: 'documents:create', DOCUMENTS_READ: 'documents:read', DOCUMENTS_UPDATE: 'documents:update', DOCUMENTS_DELETE: 'documents:delete', DOCUMENTS_SEARCH: 'documents:search', // Files permissions FILES_UPLOAD: 'files:upload', FILES_READ: 'files:read', FILES_DELETE: 'files:delete', // Activity logs permissions LOGS_READ: 'logs:read', LOGS_SEARCH: 'logs:search', // Contact inquiries (website form) CONTACT_INQUIRIES_READ: 'contact_inquiries:read', CONTACT_INQUIRIES_UPDATE: 'contact_inquiries:update', // Pending student registrations PENDING_STUDENTS_READ: 'pending_students:read', PENDING_STUDENTS_UPDATE: 'pending_students:update', // Institutional expenses (used for financial reporting) EXPENSES_CREATE: 'expenses:create', EXPENSES_READ: 'expenses:read', EXPENSES_UPDATE: 'expenses:update', EXPENSES_DELETE: 'expenses:delete', // Financial reports (professor share, class profitability, date-range analytics) FINANCIAL_REPORTS_READ: 'financial_reports:read', // Waiting list permissions WAITLIST_CREATE: 'waitlist:create', WAITLIST_READ: 'waitlist:read', WAITLIST_UPDATE: 'waitlist:update', WAITLIST_DELETE: 'waitlist:delete' }; const ALL_PERMISSIONS = Object.values(PERMISSIONS); module.exports = { PERMISSIONS, ALL_PERMISSIONS };