import { Link } from 'react-router-dom';
import { ArrowRight, Sparkles } from 'lucide-react';
import { useQuery, useZino } from '../../api/provider';
import { RV } from '../../api/config';
import { Badge, Bar, Button, Card, Empty, ErrorNote, Kpi, Spinner } from '../../components/core';
import { RecCard, SimTable, useSimulate } from '../../components/widgets';
import { date, inr, mt, num, pct } from '../../format';
import { useDealer } from './useDealer';
export function DealerHome() {
const { client, portal } = useZino();
const cust = portal?.customer_no;
const d = useDealer(cust);
const sim = useSimulate(cust, null);
const recs = useQuery(() => client.rows(RV.RECOMMENDATIONS, { limit: 5, sortBy: 'created_at', sortDir: 'desc', filters: [{ field_key: 'customer_no', value: String(cust), data_type: 'string' }] }), [cust], !!cust, 30000);
const upcoming = useQuery(() => client.rows(RV.UPCOMING, { params: { customer_no: cust } }), [cust], !!cust);
if (!portal) return ;
if (!cust) return This login is not mapped to a dealer.;
if (d.loading && !d.data) return ;
if (d.error) return {d.error};
const s = d.data?.snapshot;
if (!s) return No snapshot for {cust}.;
const st = d.data?.standing;
const asOf = d.data?.as_of ?? '';
const monthEnd = asOf ? new Date(new Date(asOf).getFullYear(), new Date(asOf).getMonth() + 1, 0) : null;
const daysLeft = monthEnd && asOf ? Math.round((monthEnd.getTime() - new Date(asOf).getTime()) / 86400000) : null;
const earning = (sim.data ?? []).reduce((a, r) => a + num(r.payout_now), 0);
const top = recs.data?.[0];
return (
{s.name}
{s.customer_no} · {st?.cluster_name ?? s.cluster} cluster · {s.ao} · as of {date(asOf)}{daysLeft != null ? ` · ${daysLeft} days left in the month` : ''}