From b8e0307f03457444f3bf682c33e54e6c628cd995 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Tue, 23 Sep 2025 10:20:56 +0200 Subject: [PATCH] feat: complete Phase 3 of service refactoring - Marked tasks in `TODO.md` as completed for moving backup-related files to the `data-management` directory and correcting imports across the codebase. - Updated imports in `backup-manager.ts`, API routes, and various components to reflect the new structure. - Removed obsolete `backup.ts` and `backup-scheduler.ts` files to streamline the codebase. - Added new tasks in `TODO.md` for future cleaning and organization of service imports. --- TODO.md | 16 +++++++++++----- scripts/backup-manager.ts | 4 ++-- src/app/api/backups/[filename]/route.ts | 2 +- src/app/api/backups/route.ts | 4 ++-- src/app/settings/advanced/page.tsx | 4 ++-- src/app/settings/backup/page.tsx | 4 ++-- src/clients/backup-client.ts | 2 +- .../settings/BackupSettingsPageClient.tsx | 2 +- src/services/core/system-info.ts | 2 +- .../{ => data-management}/backup-scheduler.ts | 0 src/services/{ => data-management}/backup.ts | 6 +++--- 11 files changed, 26 insertions(+), 20 deletions(-) rename src/services/{ => data-management}/backup-scheduler.ts (100%) rename src/services/{ => data-management}/backup.ts (99%) diff --git a/TODO.md b/TODO.md index d109378..8531790 100644 --- a/TODO.md +++ b/TODO.md @@ -118,11 +118,13 @@ src/services/ - [x] Corriger 3 imports externes (components, pages) - [x] Corriger imports database vers ../core/database -### Phase 3: Data Management -- [ ] **Déplacer `backup.ts`** → `data-management/backup.ts` - - [ ] Corriger imports dans backup-scheduler et actions -- [ ] **Déplacer `backup-scheduler.ts`** → `data-management/backup-scheduler.ts` - - [ ] Corriger imports dans API routes +### Phase 3: Data Management ✅ +- [x] **Déplacer `backup.ts`** → `data-management/backup.ts` + - [x] Corriger 6 imports externes (clients, components, pages, API) + - [x] Corriger imports relatifs vers ../core/ et ../../lib/ +- [x] **Déplacer `backup-scheduler.ts`** → `data-management/backup-scheduler.ts` + - [x] Corriger import dans script backup-manager.ts + - [x] Corriger imports relatifs entre services ### Phase 4: Task Management - [ ] **Déplacer `tasks.ts`** → `task-management/tasks.ts` @@ -144,6 +146,10 @@ src/services/ - [ ] `jira-anomaly-detection.ts` → `integrations/jira/anomaly-detection.ts` - [ ] Corriger tous les imports Jira dans actions, API routes, hooks +## phase 6: cleaning +- [ ] Les imports des services dans les services : pourquoi ne pas utiliser @services/... ? +- [ ] Les types & interfaces dans services : j'aimerai isoler les types et revoir les imports; par dossier un par un. + ### Points d'attention pour chaque service: 1. **Identifier tous les imports du service** (grep) 2. **Déplacer le fichier** vers le nouveau dossier diff --git a/scripts/backup-manager.ts b/scripts/backup-manager.ts index 539ff03..bb4b032 100644 --- a/scripts/backup-manager.ts +++ b/scripts/backup-manager.ts @@ -4,8 +4,8 @@ * Usage: tsx scripts/backup-manager.ts [command] [options] */ -import { backupService, BackupConfig } from '../src/services/backup'; -import { backupScheduler } from '../src/services/backup-scheduler'; +import { backupService, BackupConfig } from '../src/services/data-management/backup'; +import { backupScheduler } from '../src/services/data-management/backup-scheduler'; import { formatDateForDisplay } from '../src/lib/date-utils'; interface CliOptions { diff --git a/src/app/api/backups/[filename]/route.ts b/src/app/api/backups/[filename]/route.ts index bf8721b..e93d6d7 100644 --- a/src/app/api/backups/[filename]/route.ts +++ b/src/app/api/backups/[filename]/route.ts @@ -1,5 +1,5 @@ import { NextRequest, NextResponse } from 'next/server'; -import { backupService } from '@/services/backup'; +import { backupService } from '@/services/data-management/backup'; interface RouteParams { params: Promise<{ diff --git a/src/app/api/backups/route.ts b/src/app/api/backups/route.ts index e18fa29..3fa31e8 100644 --- a/src/app/api/backups/route.ts +++ b/src/app/api/backups/route.ts @@ -1,6 +1,6 @@ import { NextRequest, NextResponse } from 'next/server'; -import { backupService } from '@/services/backup'; -import { backupScheduler } from '@/services/backup-scheduler'; +import { backupService } from '@/services/data-management/backup'; +import { backupScheduler } from '@/services/data-management/backup-scheduler'; export async function GET(request: NextRequest) { try { diff --git a/src/app/settings/advanced/page.tsx b/src/app/settings/advanced/page.tsx index dc3bab4..584a937 100644 --- a/src/app/settings/advanced/page.tsx +++ b/src/app/settings/advanced/page.tsx @@ -1,7 +1,7 @@ import { tasksService } from '@/services/tasks'; import { tagsService } from '@/services/tags'; -import { backupService } from '@/services/backup'; -import { backupScheduler } from '@/services/backup-scheduler'; +import { backupService } from '@/services/data-management/backup'; +import { backupScheduler } from '@/services/data-management/backup-scheduler'; import { AdvancedSettingsPageClient } from '@/components/settings/AdvancedSettingsPageClient'; // Force dynamic rendering for real-time data diff --git a/src/app/settings/backup/page.tsx b/src/app/settings/backup/page.tsx index 5ed9da6..cb4b701 100644 --- a/src/app/settings/backup/page.tsx +++ b/src/app/settings/backup/page.tsx @@ -1,6 +1,6 @@ import BackupSettingsPageClient from '@/components/settings/BackupSettingsPageClient'; -import { backupService } from '@/services/backup'; -import { backupScheduler } from '@/services/backup-scheduler'; +import { backupService } from '@/services/data-management/backup'; +import { backupScheduler } from '@/services/data-management/backup-scheduler'; // Force dynamic rendering pour les données en temps réel export const dynamic = 'force-dynamic'; diff --git a/src/clients/backup-client.ts b/src/clients/backup-client.ts index 205c728..42abed6 100644 --- a/src/clients/backup-client.ts +++ b/src/clients/backup-client.ts @@ -1,5 +1,5 @@ import { httpClient } from './base/http-client'; -import { BackupInfo, BackupConfig } from '@/services/backup'; +import { BackupInfo, BackupConfig } from '@/services/data-management/backup'; export interface BackupListResponse { backups: BackupInfo[]; diff --git a/src/components/settings/BackupSettingsPageClient.tsx b/src/components/settings/BackupSettingsPageClient.tsx index d8fe0a9..31d3625 100644 --- a/src/components/settings/BackupSettingsPageClient.tsx +++ b/src/components/settings/BackupSettingsPageClient.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react'; import { backupClient, BackupListResponse } from '@/clients/backup-client'; -import { BackupConfig } from '@/services/backup'; +import { BackupConfig } from '@/services/data-management/backup'; import { Button } from '@/components/ui/Button'; import { Card, CardHeader, CardContent } from '@/components/ui/Card'; import { Input } from '@/components/ui/Input'; diff --git a/src/services/core/system-info.ts b/src/services/core/system-info.ts index 5b0db6b..5bf971f 100644 --- a/src/services/core/system-info.ts +++ b/src/services/core/system-info.ts @@ -125,7 +125,7 @@ export class SystemInfoService { private static async getBackupCount(): Promise { try { // Import dynamique pour éviter les dépendances circulaires - const { backupService } = await import('../backup'); + const { backupService } = await import('../data-management/backup'); const backups = await backupService.listBackups(); return backups.length; } catch (error) { diff --git a/src/services/backup-scheduler.ts b/src/services/data-management/backup-scheduler.ts similarity index 100% rename from src/services/backup-scheduler.ts rename to src/services/data-management/backup-scheduler.ts diff --git a/src/services/backup.ts b/src/services/data-management/backup.ts similarity index 99% rename from src/services/backup.ts rename to src/services/data-management/backup.ts index bc6775c..4cf6b19 100644 --- a/src/services/backup.ts +++ b/src/services/data-management/backup.ts @@ -1,8 +1,8 @@ import { promises as fs } from 'fs'; import path from 'path'; -import { prisma } from './core/database'; -import { userPreferencesService } from './core/user-preferences'; -import { BackupUtils } from '../lib/backup-utils'; +import { prisma } from '../core/database'; +import { userPreferencesService } from '../core/user-preferences'; +import { BackupUtils } from '../../lib/backup-utils'; import { getToday } from '@/lib/date-utils'; export interface BackupConfig {