import Link from 'next/link' import { storefrontFetchOrDefault } from '@/lib/api' import { getStorefrontLanguage } from '@/lib/i18n.server' import { formatCurrency } from '@rentaldrivego/types' interface CompanyProfile { id: string name: string slug: string brand: { displayName: string logoUrl: string | null publicCity: string | null publicCountry: string | null publicPhone: string | null whatsappNumber: string | null marketplaceRating: number | null } | null vehicles: Array<{ id: string; make: string; model: string; dailyRate: number; photos: string[]; category: string; availability: boolean; nextAvailableAt: string | null }> offers: Array<{ id: string; title: string; discountValue: number; validUntil: string }> } export default async function CompanyProfilePage({ params }: { params: { slug: string } }) { const language = await getStorefrontLanguage() const dict = { en: { unavailable: 'Storefront unavailable', unavailableTitle: 'Company details are temporarily unavailable.', unavailableBody: 'The storefront API is running, but the database is not reachable in this local environment.', backToExplore: 'Back to explore', partner: 'Storefront partner', vehicles: 'vehicles', offers: 'active offers', rating: 'Rating', new: 'New', currentOffers: 'Current offers', validUntil: 'Valid until', noOffers: 'No active offers right now.', fleet: 'Fleet', viewVehicle: 'View vehicle', availableFrom: 'Available from', unavailableNoDate: 'Temporarily unavailable for new reservations.', }, fr: { unavailable: 'Storefront indisponible', unavailableTitle: "Les détails de l'entreprise sont temporairement indisponibles.", unavailableBody: "L'API storefront fonctionne, mais la base de données n'est pas accessible dans cet environnement local.", backToExplore: "Retour à l'exploration", partner: 'Partenaire storefront', vehicles: 'véhicules', offers: 'offres actives', rating: 'Note', new: 'Nouveau', currentOffers: 'Offres actuelles', validUntil: "Valable jusqu'au", noOffers: 'Aucune offre active pour le moment.', fleet: 'Flotte', viewVehicle: 'Voir le véhicule', availableFrom: 'Disponible à partir du', unavailableNoDate: 'Temporairement indisponible pour les nouvelles réservations.', }, ar: { unavailable: 'السوق غير متاح', unavailableTitle: 'تفاصيل الشركة غير متاحة مؤقتاً.', unavailableBody: 'واجهة السوق تعمل، لكن قاعدة البيانات غير متاحة في هذه البيئة المحلية.', backToExplore: 'العودة إلى الاستكشاف', partner: 'شريك في السوق', vehicles: 'مركبات', offers: 'عروض نشطة', rating: 'التقييم', new: 'جديد', currentOffers: 'العروض الحالية', validUntil: 'صالح حتى', noOffers: 'لا توجد عروض نشطة حالياً.', fleet: 'الأسطول', viewVehicle: 'عرض السيارة', availableFrom: 'متاح ابتداءً من', unavailableNoDate: 'غير متاحة مؤقتاً للحجوزات الجديدة.', }, }[language] const company = await storefrontFetchOrDefault(`/storefront/${params.slug}`, null) if (!company) { return (

{dict.unavailable}

{dict.unavailableTitle}

{dict.unavailableBody}

{dict.backToExplore}
) } return (

{company.brand?.publicCity ?? dict.partner}

{company.brand?.displayName ?? company.name}

{company.brand?.publicCountry ?? ''}

{company.vehicles.length} {dict.vehicles} {company.offers.length} {dict.offers} {dict.rating} {company.brand?.marketplaceRating?.toFixed(1) ?? dict.new}

{dict.currentOffers}

{company.offers.map((offer) => (

{offer.title}

{offer.discountValue}%

{dict.validUntil} {new Date(offer.validUntil).toLocaleDateString()}

))} {company.offers.length === 0 &&
{dict.noOffers}
}

{dict.fleet}

{company.vehicles.map((vehicle) => (
{vehicle.photos[0] ? ( // eslint-disable-next-line @next/next/no-img-element {`${vehicle.make} ) : null}

{vehicle.make} {vehicle.model}

{vehicle.category}

{!vehicle.availability && (

{vehicle.nextAvailableAt ? `${dict.availableFrom} ${new Date(vehicle.nextAvailableAt).toLocaleDateString('en-GB', { year: 'numeric', month: 'long', day: 'numeric' })}` : dict.unavailableNoDate}

)}

{formatCurrency(vehicle.dailyRate, 'MAD', language)}

{dict.viewVehicle}
))}
) }