import { Link } from "@remix-run/react";
import { Button } from "~/components/ui/Button";
import { Flex } from "~/components/layout/Flex";
import { useSettings } from "~/contexts/SettingsContext";
import type { CustomerWithVehicles } from "~/types/database";
interface CustomerDetailsViewProps {
customer: CustomerWithVehicles;
onEdit: () => void;
onClose: () => void;
}
export function CustomerDetailsView({
customer,
onEdit,
onClose,
}: CustomerDetailsViewProps) {
const { formatDate, formatCurrency } = useSettings();
return (
{/* Enhanced Basic Information Section */}
👤
المعلومات الأساسية
العميل #{customer.id}
{customer.name}
{formatDate(customer.createdDate)}
{formatDate(customer.updateDate)}
{customer.address && (
{customer.address}
)}
{/* Customer Vehicles Section */}
🚗
مركبات العميل ({customer.vehicles.length})
{customer.vehicles.length > 0 && (
🔍
عرض جميع المركبات
)}
{customer.vehicles.length === 0 ? (
🚗
لا توجد مركبات مسجلة
لم يتم تسجيل أي مركبات لهذا العميل بعد
إضافة مركبة جديدة
) : (
{customer.vehicles.map((vehicle) => (
{vehicle.plateNumber}
#{vehicle.id}
انقر للعرض
الصانع:
{vehicle.manufacturer}
الموديل:
{vehicle.model}
سنة الصنع:
{vehicle.year}
آخر زيارة:
{vehicle.lastVisitDate
? formatDate(vehicle.lastVisitDate)
: لا توجد زيارات
}
))}
)}
{/* Latest Maintenance Visits Section */}
🔧
آخر زيارات الصيانة ({customer.maintenanceVisits.length > 3 ? '3 من ' + customer.maintenanceVisits.length : customer.maintenanceVisits.length})
{customer.maintenanceVisits.length > 0 && (
📋
عرض جميع الزيارات
)}
{customer.maintenanceVisits.length === 0 ? (
🔧
لا توجد زيارات صيانة
لم يتم تسجيل أي زيارات صيانة لهذا العميل بعد
ابدأ بتسجيل أول زيارة صيانة لتتبع تاريخ الخدمات المقدمة
تسجيل زيارة صيانة جديدة
) : (
{customer.maintenanceVisits.slice(0, 3).map((visit) => (
{(() => {
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.vehicle?.plateNumber || 'غير محدد'}
{visit.description && (
الوصف:
{visit.description}
)}
))}
{customer.maintenanceVisits.length > 3 && (
عرض 3 من أصل {customer.maintenanceVisits.length} زيارة صيانة
📋
عرض جميع الزيارات ({customer.maintenanceVisits.length})
)}
)}
{/* Action Buttons */}
);
}