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

import { DocumentStatusReview, DocumentFull } from './types';

const schema = z.object({
    userId: z.string().nonempty().uuid(),
    documentId: z.number().nonnegative().int(),
});

export const updateDocumentStatus = async (
    client: Client,
    userId: string,
    documentId: number,
    document: DocumentStatusReview
): Promise<DocumentFull> => {
    const result = schema.safeParse({ userId, documentId });
    if (!result.success) {
        throw new TypeError('Invalid args', {
            cause: result.error.issues,
        });
    }

    return client
        .put<DocumentFull>(`/boapi/proxy/user/fleets/${client.clientOptions.fleetId}/documents/${documentId}`, document)
        .then(({ data }) => data);
};
