export class JobRepositoryInterface {
    /**
     * Récupère la liste des jobs
     * @param {Object} options Les options de filtrage et pagination
     * @param {number} options.page Numéro de la page
     * @param {number} options.limit Nombre d'éléments par page
     * @param {string} options.sortBy Champ pour le tri
     * @param {string} options.sortOrder Direction du tri ('ASC' ou 'DESC')
     * @param {Array<string>} options.status Liste des statuts à filtrer
     * @returns {Promise<JobCollection>} Collection de jobs
     */
    async getJobs(options) {
        throw new Error('Not implemented');
    }

    /**
     * Récupère un job par son ID
     * @param {string} id Identifiant du job
     * @returns {Promise<Job>} Job
     */
    async getJobById(id) {
        throw new Error('Not implemented');
    }

    /**
     * Supprime un job
     * @param {string} id Identifiant du job
     * @returns {Promise<boolean>} Succès de l'opération
     */
    async deleteJob(id) {
        throw new Error('Not implemented');
    }

    /**
     * Supprime tous les jobs correspondant aux critères
     * @param {Object} criteria Critères de suppression
     * @returns {Promise<number>} Nombre de jobs supprimés
     */
    async deleteJobs(criteria) {
        throw new Error('Not implemented');
    }
}
