173 lines
6.2 KiB
TypeScript
173 lines
6.2 KiB
TypeScript
// Authentication levels
|
||
export const AUTH_LEVELS = {
|
||
SUPERADMIN: 1,
|
||
ADMIN: 2,
|
||
USER: 3,
|
||
} as const;
|
||
|
||
export const AUTH_LEVEL_NAMES = {
|
||
[AUTH_LEVELS.SUPERADMIN]: 'مدير عام',
|
||
[AUTH_LEVELS.ADMIN]: 'مدير',
|
||
[AUTH_LEVELS.USER]: 'مستخدم',
|
||
} as const;
|
||
|
||
// User status options
|
||
export const USER_STATUS = {
|
||
ACTIVE: 'active',
|
||
INACTIVE: 'inactive',
|
||
} as const;
|
||
|
||
export const USER_STATUS_NAMES = {
|
||
[USER_STATUS.ACTIVE]: 'نشط',
|
||
[USER_STATUS.INACTIVE]: 'غير نشط',
|
||
} as const;
|
||
|
||
// Vehicle transmission options
|
||
export const TRANSMISSION_TYPES = [
|
||
{ value: 'Automatic', label: 'أوتوماتيك' },
|
||
{ value: 'Manual', label: 'يدوي' },
|
||
] as const;
|
||
|
||
// Vehicle fuel types
|
||
export const FUEL_TYPES = [
|
||
{ value: 'Gasoline', label: 'بنزين' },
|
||
{ value: 'Diesel', label: 'ديزل' },
|
||
{ value: 'Hybrid', label: 'هجين' },
|
||
{ value: 'Mild Hybrid', label: 'هجين خفيف' },
|
||
{ value: 'Electric', label: 'كهربائي' },
|
||
] as const;
|
||
|
||
// Vehicle use types
|
||
export const USE_TYPES = [
|
||
{ value: 'personal', label: 'شخصي' },
|
||
{ value: 'taxi', label: 'تاكسي' },
|
||
{ value: 'apps', label: 'تطبيقات' },
|
||
{ value: 'loading', label: 'نقل' },
|
||
{ value: 'travel', label: 'سفر' },
|
||
] as const;
|
||
|
||
// Vehicle body types (common in Saudi Arabia)
|
||
export const BODY_TYPES = [
|
||
{ value: 'سيدان', label: 'سيدان' },
|
||
{ value: 'هاتشباك', label: 'هاتشباك' },
|
||
{ value: 'SUV', label: 'SUV' },
|
||
{ value: 'كروس أوفر', label: 'كروس أوفر' },
|
||
{ value: 'بيك أب', label: 'بيك أب' },
|
||
{ value: 'كوبيه', label: 'كوبيه' },
|
||
{ value: 'كونفرتيبل', label: 'كونفرتيبل' },
|
||
{ value: 'فان', label: 'فان' },
|
||
{ value: 'شاحنة', label: 'شاحنة' },
|
||
] as const;
|
||
|
||
// Popular car manufacturers in Saudi Arabia
|
||
export const MANUFACTURERS = [
|
||
{ value: 'تويوتا', label: 'تويوتا' },
|
||
{ value: 'هيونداي', label: 'هيونداي' },
|
||
{ value: 'نيسان', label: 'نيسان' },
|
||
{ value: 'كيا', label: 'كيا' },
|
||
{ value: 'هوندا', label: 'هوندا' },
|
||
{ value: 'فورد', label: 'فورد' },
|
||
{ value: 'شيفروليه', label: 'شيفروليه' },
|
||
{ value: 'مازda', label: 'مازda' },
|
||
{ value: 'ميتسوبيشي', label: 'ميتسوبيشي' },
|
||
{ value: 'سوزوكي', label: 'سوزوكي' },
|
||
{ value: 'لكزس', label: 'لكزس' },
|
||
{ value: 'إنفينيتي', label: 'إنفينيتي' },
|
||
{ value: 'جينيسيس', label: 'جينيسيس' },
|
||
{ value: 'BMW', label: 'BMW' },
|
||
{ value: 'مرسيدس بنز', label: 'مرسيدس بنز' },
|
||
{ value: 'أودي', label: 'أودي' },
|
||
{ value: 'فولكس واجن', label: 'فولكس واجن' },
|
||
{ value: 'جيب', label: 'جيب' },
|
||
{ value: 'لاند روفر', label: 'لاند روفر' },
|
||
{ value: 'كاديلاك', label: 'كاديلاك' },
|
||
{ value: 'لينكولن', label: 'لينكولن' },
|
||
{ value: 'جاكوار', label: 'جاكوار' },
|
||
{ value: 'بورش', label: 'بورش' },
|
||
{ value: 'فيراري', label: 'فيراري' },
|
||
{ value: 'لامبورغيني', label: 'لامبورغيني' },
|
||
{ value: 'بنتلي', label: 'بنتلي' },
|
||
{ value: 'رولز رويس', label: 'رولز رويس' },
|
||
{ value: 'أخرى', label: 'أخرى' },
|
||
] as const;
|
||
|
||
// Payment status options
|
||
export const PAYMENT_STATUS = {
|
||
PENDING: 'pending',
|
||
PAID: 'paid',
|
||
PARTIAL: 'partial',
|
||
CANCELLED: 'cancelled',
|
||
} as const;
|
||
|
||
export const PAYMENT_STATUS_NAMES = {
|
||
[PAYMENT_STATUS.PENDING]: 'معلق',
|
||
[PAYMENT_STATUS.PAID]: 'مدفوع',
|
||
[PAYMENT_STATUS.PARTIAL]: 'مدفوع جزئياً',
|
||
[PAYMENT_STATUS.CANCELLED]: 'ملغي',
|
||
} as const;
|
||
|
||
// Maintenance visit delay options (in months)
|
||
export const VISIT_DELAY_OPTIONS = [
|
||
{ value: 1, label: 'شهر واحد' },
|
||
{ value: 2, label: 'شهرين' },
|
||
{ value: 3, label: 'ثلاثة أشهر' },
|
||
{ value: 4, label: 'أربعة أشهر' },
|
||
] as const;
|
||
|
||
// Common maintenance types
|
||
export const MAINTENANCE_TYPES = [
|
||
{ value: 'تغيير زيت', label: 'تغيير زيت' },
|
||
{ value: 'فحص دوري', label: 'فحص دوري' },
|
||
{ value: 'تغيير فلاتر', label: 'تغيير فلاتر' },
|
||
{ value: 'فحص فرامل', label: 'فحص فرامل' },
|
||
{ value: 'تغيير إطارات', label: 'تغيير إطارات' },
|
||
{ value: 'فحص بطارية', label: 'فحص بطارية' },
|
||
{ value: 'تنظيف مكيف', label: 'تنظيف مكيف' },
|
||
{ value: 'فحص محرك', label: 'فحص محرك' },
|
||
{ value: 'تغيير شمعات', label: 'تغيير شمعات' },
|
||
{ value: 'فحص ناقل حركة', label: 'فحص ناقل حركة' },
|
||
{ value: 'إصلاح عام', label: 'إصلاح عام' },
|
||
{ value: 'أخرى', label: 'أخرى' },
|
||
] as const;
|
||
|
||
// Expense categories
|
||
export const EXPENSE_CATEGORIES = [
|
||
{ value: 'قطع غيار', label: 'قطع غيار' },
|
||
{ value: 'أدوات', label: 'أدوات' },
|
||
{ value: 'إيجار', label: 'إيجار' },
|
||
{ value: 'كهرباء', label: 'كهرباء' },
|
||
{ value: 'ماء', label: 'ماء' },
|
||
{ value: 'رواتب', label: 'رواتب' },
|
||
{ value: 'تأمين', label: 'تأمين' },
|
||
{ value: 'وقود', label: 'وقود' },
|
||
{ value: 'صيانة معدات', label: 'صيانة معدات' },
|
||
{ value: 'تسويق', label: 'تسويق' },
|
||
{ value: 'مصاريف إدارية', label: 'مصاريف إدارية' },
|
||
{ value: 'أخرى', label: 'أخرى' },
|
||
] as const;
|
||
|
||
// Date format options
|
||
export const DATE_FORMATS = {
|
||
SHORT: 'dd/MM/yyyy',
|
||
LONG: 'dd MMMM yyyy',
|
||
WITH_TIME: 'dd/MM/yyyy HH:mm',
|
||
} as const;
|
||
|
||
// Pagination defaults
|
||
export const PAGINATION = {
|
||
DEFAULT_PAGE_SIZE: 10,
|
||
PAGE_SIZE_OPTIONS: [10, 25, 50, 100],
|
||
} as const;
|
||
|
||
// Validation constants
|
||
export const VALIDATION = {
|
||
MIN_PASSWORD_LENGTH: 6,
|
||
MAX_NAME_LENGTH: 100,
|
||
MAX_DESCRIPTION_LENGTH: 500,
|
||
MIN_YEAR: 1990,
|
||
MAX_YEAR: new Date().getFullYear() + 1,
|
||
MAX_CYLINDERS: 12,
|
||
MAX_ENGINE_DISPLACEMENT: 10.0,
|
||
MIN_COST: 0,
|
||
MAX_COST: 999999.99,
|
||
} as const; |