feat(setting): étendre ContentSource avec champs de test et domain model

- Ajouter testSlug, testChapterNumber, baseUrl sur ContentSource (entité, domain model, migration)
- Exposer ces champs dans les Resources, Processors, Providers et Mapper
- Mettre à jour store Pinia, repository API et composants Vue (form, card, liste)
This commit is contained in:
ext.jeremy.guillot@maxicoffee.domains
2026-03-16 00:08:50 +01:00
parent b0ce36096f
commit 795cbeccc3
20 changed files with 475 additions and 30 deletions

View File

@@ -23,7 +23,11 @@ export const useContentSourceStore = defineStore('contentSource', {
importing: false,
exporting: false,
importError: null,
exportError: null
exportError: null,
// Health check state
checkingHealth: false,
checkHealthError: null,
}),
getters: {
@@ -174,6 +178,36 @@ export const useContentSourceStore = defineStore('contentSource', {
this.currentSourceError = null;
},
// Check all scrapers health
async checkAllHealth() {
if (this.checkingHealth) return;
this.checkingHealth = true;
this.checkHealthError = null;
try {
await contentSourceRepository.checkAllHealth();
} catch (error) {
this.checkHealthError = error.message;
console.error('Erreur lors du health check:', error);
throw error;
} finally {
this.checkingHealth = false;
}
},
// Update health status of a single source (called from Mercure)
updateSourceHealth(sourceId, status, error = null) {
const index = this.sources.findIndex(s => s.id === sourceId);
if (index !== -1) {
this.sources[index] = {
...this.sources[index],
healthStatus: status,
healthLastError: error,
};
}
},
// Clear errors
clearErrors() {
this.sourcesError = null;
@@ -181,6 +215,7 @@ export const useContentSourceStore = defineStore('contentSource', {
this.saveError = null;
this.importError = null;
this.exportError = null;
this.checkHealthError = null;
}
}
});