feat(backend): complete AI and business migration
This commit is contained in:
@@ -1,42 +1,21 @@
|
||||
import { createClient } from "@/lib/supabase/server";
|
||||
import { requireFreelancerBackend } from "@/server/web/freelancer";
|
||||
import { InvoicesClient, type InvoiceRow } from "./invoices-client";
|
||||
|
||||
export default async function InvoicesPage() {
|
||||
const supabase = await createClient();
|
||||
const { data: { user } } = await supabase.auth.getUser();
|
||||
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { data: invoicesData } = await supabase
|
||||
.from("invoices")
|
||||
.select(`
|
||||
id,
|
||||
invoice_number,
|
||||
amount,
|
||||
currency,
|
||||
status,
|
||||
issue_date,
|
||||
due_date,
|
||||
created_at,
|
||||
clients ( name ),
|
||||
projects ( name )
|
||||
`)
|
||||
.eq("user_id", user.id)
|
||||
.order("created_at", { ascending: false });
|
||||
|
||||
const invoices: InvoiceRow[] = (invoicesData || []).map((i: any) => ({
|
||||
id: i.id,
|
||||
invoice_number: i.invoice_number,
|
||||
amount: Number(i.amount),
|
||||
currency: i.currency,
|
||||
status: i.status,
|
||||
issue_date: i.issue_date,
|
||||
due_date: i.due_date,
|
||||
created_at: i.created_at,
|
||||
clientName: i.clients?.name || null,
|
||||
projectName: i.projects?.name || null,
|
||||
const { actor, service } = await requireFreelancerBackend();
|
||||
const clientNames = new Map(service.listClients(actor).map((client) => [client.id, client.name]));
|
||||
const projectNames = new Map(service.listProjects(actor).map((project) => [project.id, project.name]));
|
||||
const invoices: InvoiceRow[] = service.listInvoices(actor).map((invoice) => ({
|
||||
id: invoice.id,
|
||||
invoice_number: invoice.invoiceNumber,
|
||||
amount: invoice.amountMinor / 100,
|
||||
currency: invoice.currency,
|
||||
status: invoice.status,
|
||||
issue_date: invoice.issueDate,
|
||||
due_date: invoice.dueDate,
|
||||
created_at: invoice.createdAt.toISOString(),
|
||||
clientName: invoice.clientId ? clientNames.get(invoice.clientId) ?? null : null,
|
||||
projectName: invoice.projectId ? projectNames.get(invoice.projectId) ?? null : null,
|
||||
}));
|
||||
|
||||
return <InvoicesClient invoices={invoices} />;
|
||||
|
||||
Reference in New Issue
Block a user