import { Client } from '@vulog/aima-client';
import { z } from 'zod';

import { Invoice } from './types';

export const getInvoiceById = async (client: Client, id: string): Promise<Invoice> => {
    const result = z.string().trim().min(1).uuid().safeParse(id);
    if (!result.success) {
        throw new Error('Invalid invoice ID');
    }

    return client
        .get<Invoice>(`/boapi/proxy/billing/fleets/${client.clientOptions.fleetId}/invoices/${id}`)
        .then(({ data }) => data);
};
