car_mms/app/lib/constants.ts
2025-09-11 14:22:27 +03:00

173 lines
6.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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;