forked from wangziqi/gongxue-base
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
export const TENANT_ROLES = [
|
|
'platform_admin',
|
|
'tenant_owner',
|
|
'tenant_admin',
|
|
'tenant_operator',
|
|
'teacher',
|
|
'sales',
|
|
'agent',
|
|
'student',
|
|
];
|
|
export const QUESTION_STATUSES = ['draft', 'published', 'archived'];
|
|
export const ORDER_STATUSES = ['pending', 'paid', 'failed', 'closed', 'refunded'];
|
|
export const ENTITLEMENT_SCOPE_TYPES = ['tenant', 'region', 'module', 'subject', 'question_bank'];
|
|
export function normalizeTenantRole(role) {
|
|
const value = String(role || '').toLowerCase();
|
|
if (value === 'superadmin')
|
|
return 'platform_admin';
|
|
if (value === 'admin')
|
|
return 'tenant_admin';
|
|
if (value === 'operator')
|
|
return 'tenant_operator';
|
|
if (TENANT_ROLES.includes(value))
|
|
return value;
|
|
return 'student';
|
|
}
|
|
export function normalizeOrderStatus(status) {
|
|
const value = String(status || '').toLowerCase();
|
|
if (value === 'paid' || value === 'success')
|
|
return 'paid';
|
|
if (value === 'failed' || value === 'fail')
|
|
return 'failed';
|
|
if (value === 'refunded' || value === 'refund')
|
|
return 'refunded';
|
|
if (value === 'closed' || value === 'cancelled' || value === 'canceled')
|
|
return 'closed';
|
|
return 'pending';
|
|
}
|