'use client'; import { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; import { useRouter } from 'next/navigation'; import { DollarSign, TrendingUp, Calendar, Users, Building, Download, Loader2, ArrowLeft, } from 'lucide-react'; import toast, { Toaster } from 'react-hot-toast'; import AuthService from '@/app/services/AuthService'; import { getOwnerStatistics } from '@/app/utils/api'; const StatCard = ({ title, value, icon: Icon, color, subtitle }) => (

{title}

{value}
{subtitle &&

{subtitle}

}
); export default function OwnerAccountBookPage() { const router = useRouter(); const [user, setUser] = useState(null); const [isLoading, setIsLoading] = useState(true); const [stats, setStats] = useState({ totalRevenue: 0, totalReservations: 0, activeProperties: 0, }); const [transactions, setTransactions] = useState([]); useEffect(() => { if (AuthService.isGuest()) { router.push('/auth/choose-role'); return; } if (!AuthService.isOwner()) { router.push('/'); return; } const authUser = AuthService.getUser(); if (authUser) { setUser({ name: authUser.name || authUser.email, email: authUser.email, }); } async function fetchData() { try { const data = await getOwnerStatistics(); if (data) { setStats({ totalRevenue: data.totalRevenue ?? 0, totalReservations: data.totalReservations ?? 0, activeProperties: data.activeProperties ?? 0, }); if (data.transactions) { setTransactions(data.transactions); } } } catch { toast.error('تعذر تحميل إحصائيات الحساب'); } finally { setIsLoading(false); } } fetchData(); }, [router]); const formatCurrency = (amount) => { const num = Number(amount) || 0; return num.toLocaleString() + ' ل.س'; }; const handleExport = () => { toast.success('جاري تصدير البيانات...'); }; if (isLoading) { return (

جاري تحميل بيانات الحساب...

); } return (

دفتر الحسابات

مرحباً {user?.name}، نظرة عامة على حساباتك

المعاملات المالية

{transactions.length > 0 ? (
{transactions.map((tx, idx) => ( ))}
التاريخ البيان المبلغ الحالة
{tx.date} {tx.description} {formatCurrency(tx.amount)} {tx.status === 'completed' ? 'مكتمل' : tx.status === 'pending' ? 'قيد الانتظار' : 'ملغي'}
) : (

لا توجد معاملات مالية بعد

)}
); }