diff --git a/TODO.md b/TODO.md index ebe2621..45bd61f 100644 --- a/TODO.md +++ b/TODO.md @@ -152,8 +152,33 @@ src/services/ - [x] Corriger imports relatifs entre services Jira ## 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 dans des fihiers séparés et revoir les imports; par dossier un par un. Tant qu'à faire, il faudrait qu'on fasse toujours des "import type {} from ..." (ajouter le mot type sur l'import des types) +- [x] Les imports des services dans les services : pourquoi ne pas utiliser @/services/... ? +- [ ] **Isolation et organisation des types & interfaces** + - [ ] **Analytics types** (`src/services/analytics/types.ts`) + - [ ] Extraire `TaskType`, `CheckboxType` de `manager-summary.ts` + - [ ] Extraire `KeyAccomplishment`, `UpcomingChallenge`, `ManagerSummary` de `manager-summary.ts` + - [ ] Créer `types.ts` centralisé pour le dossier analytics + - [ ] Remplacer tous les imports par `import type { ... } from './types'` + - [ ] **Task Management types** (`src/services/task-management/types.ts`) + - [ ] Analyser quels types spécifiques manquent aux services tasks/tags/daily + - [ ] Créer `types.ts` pour les types métier spécifiques au task-management + - [ ] Uniformiser les imports avec `import type { ... } from './types'` + - [ ] **Jira Integration types** (`src/services/integrations/jira/types.ts`) + - [ ] Extraire `CacheEntry` de `analytics-cache.ts` + - [ ] Créer types spécifiques aux services Jira (configs, cache, anomalies) + - [ ] Centraliser les types d'intégration Jira + - [ ] Uniformiser les imports avec `import type { ... } from './types'` + - [ ] **TFS Integration types** (`src/services/integrations/types.ts`) + - [ ] Analyser les types spécifiques à TFS dans `tfs.ts` + - [ ] Créer types d'intégration TFS si nécessaire + - [ ] Préparer structure extensible pour futures intégrations + - [ ] **Core services types** (`src/services/core/types.ts`) + - [ ] Analyser si des types spécifiques aux services core sont nécessaires + - [ ] Types pour database, system-info, user-preferences + - [ ] **Conversion des imports en `import type`** + - [ ] Analyser tous les imports de types depuis `@/lib/types` dans services + - [ ] Remplacer par `import type { ... } from '@/lib/types'` quand applicable + - [ ] Vérifier que les imports de valeurs restent normaux (sans `type`) ### Points d'attention pour chaque service: 1. **Identifier tous les imports du service** (grep) diff --git a/src/services/analytics/analytics.ts b/src/services/analytics/analytics.ts index c7b312d..1e8391a 100644 --- a/src/services/analytics/analytics.ts +++ b/src/services/analytics/analytics.ts @@ -1,5 +1,5 @@ import { Task, TaskStatus, TaskPriority, TaskSource } from '@/lib/types'; -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { getToday, parseDate, subtractDays } from '@/lib/date-utils'; export interface ProductivityMetrics { diff --git a/src/services/analytics/manager-summary.ts b/src/services/analytics/manager-summary.ts index 7580662..91873c8 100644 --- a/src/services/analytics/manager-summary.ts +++ b/src/services/analytics/manager-summary.ts @@ -1,4 +1,4 @@ -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { startOfWeek, endOfWeek } from 'date-fns'; import { getToday } from '@/lib/date-utils'; diff --git a/src/services/analytics/metrics.ts b/src/services/analytics/metrics.ts index ca352c0..549c122 100644 --- a/src/services/analytics/metrics.ts +++ b/src/services/analytics/metrics.ts @@ -1,4 +1,4 @@ -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { startOfWeek, endOfWeek, eachDayOfInterval, format, startOfDay, endOfDay } from 'date-fns'; import { fr } from 'date-fns/locale'; import { formatDateForAPI, getDayName, getToday, subtractDays } from '@/lib/date-utils'; diff --git a/src/services/core/system-info.ts b/src/services/core/system-info.ts index 5bf971f..544417b 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('../data-management/backup'); + const { backupService } = await import('@/services/data-management/backup'); const backups = await backupService.listBackups(); return backups.length; } catch (error) { diff --git a/src/services/data-management/backup.ts b/src/services/data-management/backup.ts index 4cf6b19..13a2f0e 100644 --- a/src/services/data-management/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 '@/services/core/database'; +import { userPreferencesService } from '@/services/core/user-preferences'; +import { BackupUtils } from '@/lib/backup-utils'; import { getToday } from '@/lib/date-utils'; export interface BackupConfig { diff --git a/src/services/integrations/jira/jira.ts b/src/services/integrations/jira/jira.ts index f9d02a8..324ae66 100644 --- a/src/services/integrations/jira/jira.ts +++ b/src/services/integrations/jira/jira.ts @@ -4,7 +4,7 @@ */ import { JiraTask } from '@/lib/types'; -import { prisma } from '../../core/database'; +import { prisma } from '@/services/core/database'; import { parseDate, formatDateForDisplay } from '@/lib/date-utils'; export interface JiraConfig { diff --git a/src/services/integrations/jira/scheduler.ts b/src/services/integrations/jira/scheduler.ts index 0aff2a1..55d954d 100644 --- a/src/services/integrations/jira/scheduler.ts +++ b/src/services/integrations/jira/scheduler.ts @@ -1,4 +1,4 @@ -import { userPreferencesService } from '../../core/user-preferences'; +import { userPreferencesService } from '@/services/core/user-preferences'; import { JiraService } from './jira'; import { addMinutes, getToday } from '@/lib/date-utils'; diff --git a/src/services/integrations/tfs.ts b/src/services/integrations/tfs.ts index 21775c9..6fc0836 100644 --- a/src/services/integrations/tfs.ts +++ b/src/services/integrations/tfs.ts @@ -5,9 +5,9 @@ */ import { TfsPullRequest } from '@/lib/types'; -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { parseDate, formatDateForDisplay } from '@/lib/date-utils'; -import { userPreferencesService } from '../core/user-preferences'; +import { userPreferencesService } from '@/services/core/user-preferences'; export interface TfsConfig { enabled: boolean; diff --git a/src/services/task-management/daily.ts b/src/services/task-management/daily.ts index 06fd3b4..a713352 100644 --- a/src/services/task-management/daily.ts +++ b/src/services/task-management/daily.ts @@ -1,4 +1,4 @@ -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { Prisma } from '@prisma/client'; import { DailyCheckbox, DailyView, CreateDailyCheckboxData, UpdateDailyCheckboxData, BusinessError, DailyCheckboxType, TaskStatus, TaskPriority, TaskSource } from '@/lib/types'; import { getPreviousWorkday, normalizeDate, formatDateForAPI, getToday, getYesterday } from '@/lib/date-utils'; diff --git a/src/services/task-management/tags.ts b/src/services/task-management/tags.ts index 8960e16..99fb37f 100644 --- a/src/services/task-management/tags.ts +++ b/src/services/task-management/tags.ts @@ -1,4 +1,4 @@ -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { Prisma } from '@prisma/client'; import { Tag } from '@/lib/types'; diff --git a/src/services/task-management/tasks.ts b/src/services/task-management/tasks.ts index f858f47..72dbbc2 100644 --- a/src/services/task-management/tasks.ts +++ b/src/services/task-management/tasks.ts @@ -1,4 +1,4 @@ -import { prisma } from '../core/database'; +import { prisma } from '@/services/core/database'; import { Task, TaskStatus, TaskPriority, TaskSource, BusinessError, DailyCheckbox, DailyCheckboxType } from '@/lib/types'; import { Prisma } from '@prisma/client'; import { getToday } from '@/lib/date-utils';