"use server";

import { query } from "@/lib/db";
import { queryTable, exportTable, type FaDetailRow, type TableFilters } from "@/lib/query";
import { FA_COLUMNS } from "./columns";

export async function fetchFaDetails(filters: TableFilters, page: number, pageSize: number) {
  return queryTable<FaDetailRow>("yhdmro_fa_fa_details", filters, page, pageSize);
}

export async function exportFaDetails(filters: TableFilters) {
  return exportTable("yhdmro_fa_fa_details", FA_COLUMNS, filters);
}

export async function fetchFaDetailById(id: number) {
  const result = await query(
    `SELECT id, query_start_date::text, query_end_date::text, document_date::text, approval_date::text, payment_date::text, extraction_date::text, document_number, vendor_code, vendor_name, material_code, material_name, material_spec, unit, quantity, unit_price, amount, currency, tax_rate, tax_amount, total_amount, status, approver, payment_status, description, business_unit, cost_center, project_code, remarks, batch_id, source_url, row_json FROM yhdmro_fa_fa_details WHERE id = $1`,
    [id]
  );
  return result.rows[0] as FaDetailRow & { row_json: string | null };
}