import { Link } from "@remix-run/react"; import { Button } from "~/components/ui/Button"; import { Flex } from "~/components/layout/Flex"; import { useSettings } from "~/contexts/SettingsContext"; import { TRANSMISSION_TYPES, FUEL_TYPES, USE_TYPES, BODY_TYPES } from "~/lib/constants"; import type { VehicleWithOwner, VehicleWithRelations } from "~/types/database"; interface VehicleDetailsViewProps { vehicle: VehicleWithOwner | VehicleWithRelations; onEdit?: () => void; onClose?: () => void; isLoadingVisits?: boolean; } export function VehicleDetailsView({ vehicle, onEdit, onClose, isLoadingVisits }: VehicleDetailsViewProps) { const { formatDate, formatCurrency, formatNumber } = useSettings(); // Helper functions to get display labels const getTransmissionLabel = (value: string) => { return TRANSMISSION_TYPES.find(t => t.value === value)?.label || value; }; const getFuelLabel = (value: string) => { return FUEL_TYPES.find(f => f.value === value)?.label || value; }; const getUseTypeLabel = (value: string) => { return USE_TYPES.find(u => u.value === value)?.label || value; }; const getBodyTypeLabel = (value: string) => { return BODY_TYPES.find(b => b.value === value)?.label || value; }; return (
{/* Enhanced Vehicle Information Section */}

🚗 معلومات المركبة

المركبة #{vehicle.id}

{vehicle.plateNumber}

{vehicle.manufacturer}

{vehicle.model}

{vehicle.year}

{getBodyTypeLabel(vehicle.bodyType)}

{vehicle.trim && (

{vehicle.trim}

)}
{/* Technical Specifications */}

⚙️ المواصفات التقنية

{getTransmissionLabel(vehicle.transmission)}

{getFuelLabel(vehicle.fuel)}

{getUseTypeLabel(vehicle.useType)}

{vehicle.cylinders && (

{vehicle.cylinders}

)} {vehicle.engineDisplacement && (

{vehicle.engineDisplacement} لتر

)}
{/* Owner Information */}

👤 معلومات المالك

👁️ عرض تفاصيل المالك

{vehicle.owner.name}

{vehicle.owner.phone && (
📞 {vehicle.owner.phone}
)} {vehicle.owner.email && (
✉️ {vehicle.owner.email}
)} {vehicle.owner.address && (

{vehicle.owner.address}

)}
{/* Maintenance Status */}

🔧 حالة الصيانة

📋 عرض جميع زيارات الصيانة

{vehicle.lastVisitDate ? formatDate(vehicle.lastVisitDate) : لا توجد زيارات }

{vehicle.suggestedNextVisitDate && (

{formatDate(vehicle.suggestedNextVisitDate)}

)}

{formatDate(vehicle.createdDate)}

{formatDate(vehicle.updateDate)}

{/* Recent Maintenance Visits

🔧 آخر زيارات الصيانة

{isLoadingVisits ? (
🔧

جاري تحميل زيارات الصيانة...

) : !('maintenanceVisits' in vehicle) || !vehicle.maintenanceVisits || vehicle.maintenanceVisits.length === 0 ? (
🔧

لا توجد زيارات صيانة

لم يتم تسجيل أي زيارات صيانة لهذه المركبة بعد

تسجيل زيارة صيانة جديدة
) : (
{('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).slice(0, 3).map((visit: any) => (

{(() => { try { const jobs = JSON.parse(visit.maintenanceJobs); return jobs.length > 1 ? `${jobs.length} أعمال صيانة` : jobs[0]?.job || 'نوع صيانة غير محدد'; } catch { return 'نوع صيانة غير محدد'; } })()}

زيارة #{visit.id}

{formatCurrency(visit.cost)}
{visit.paymentStatus === 'paid' ? 'مدفوع' : visit.paymentStatus === 'pending' ? 'معلق' : 'غير مدفوع'}
تاريخ الزيارة: {formatDate(visit.visitDate)}
عداد الكيلومترات: {visit.kilometers ? formatNumber(visit.kilometers) : 'غير محدد'} كم
{visit.description && (
الوصف:

{visit.description}

)}
))} {('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).length > 3 && (

عرض 3 من أصل {('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).length} زيارة صيانة

📋 عرض جميع الزيارات ({('maintenanceVisits' in vehicle ? vehicle.maintenanceVisits : []).length})
)}
)}
*/} {/* Action Buttons */} {(onEdit || onClose) && (
{onEdit && ( )} {onClose && ( )}
)}
); }