import { api } from '$lib/api';

export interface DocumentTypeDigitization {
	id: number;
	code: string;
	description: string;
	active: boolean;
}

export interface DocumentTypeDigitizationCreate {
	code: string;
	description: string;
	active?: boolean;
}

export interface DocumentTypeDigitizationUpdate {
	code?: string;
	description?: string;
	active?: boolean;
}

const BASE_URL = '/v1/a76/document-types-digitization';

/**
 * API para Tipos de Documentos de Digitalización
 */
export const documentTypesDigitizationApi = {
    /**
     * Obtener todos los tipos de documentos para digitalización
     */
    getAll: (activeOnly: boolean = true) => {
        // CORRECTO: Al tener BASE_URL con slash, queda "...digitization/?active..."
        const url = `${BASE_URL}?active_only=${activeOnly}`;
        return api.get<DocumentTypeDigitization[]>(url);
    },

    /**
     * Obtener un tipo de documento por ID
     */
    getById: (id: number) => {
        // CORREGIDO: Añadido slash después del ID
        return api.get<DocumentTypeDigitization>(`${BASE_URL}${id}/`);
    },

    /**
     * Obtener un tipo de documento por código
     */
    getByCode: (code: string) => {
        // CORREGIDO: Añadido slash después del código
        return api.get<DocumentTypeDigitization>(`${BASE_URL}by-code/${code}/`);
    },

    /**
     * Crear un nuevo tipo de documento
     */
    create: (data: DocumentTypeDigitizationCreate) => {
        // CORRECTO: Usa la BASE_URL que ya termina en /
        return api.post<DocumentTypeDigitization>(BASE_URL, data);
    },

    /**
     * Actualizar un tipo de documento existente
     */
    update: (id: number, data: DocumentTypeDigitizationUpdate) => {
        // CORREGIDO: Añadido slash después del ID
        return api.put<DocumentTypeDigitization>(`${BASE_URL}${id}/`, data);
    },

    /**
     * Eliminar (soft delete) un tipo de documento
     */
    delete: (id: number) => {
        // CORREGIDO: Añadido slash después del ID
        return api.delete(`${BASE_URL}${id}/`);
    }
};