feat: complete Phase 4 of service refactoring

- Marked tasks in `TODO.md` as completed for moving task-related files to the `task-management` directory and correcting imports across the codebase.
- Updated imports in `seed-data.ts`, `seed-tags.ts`, API routes, and various components to reflect the new structure.
- Removed obsolete `daily.ts`, `tags.ts`, and `tasks.ts` files to streamline the codebase.
- Added new tasks in `TODO.md` for future cleaning and organization of service imports.
This commit is contained in:
Julien Froidefond
2025-09-23 10:25:41 +02:00
parent b8e0307f03
commit f5417040fd
23 changed files with 38 additions and 35 deletions

21
TODO.md
View File

@@ -126,13 +126,16 @@ src/services/
- [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`
- [ ] Corriger imports dans actions/tasks, hooks/useTasks
- [ ] **Déplacer `tags.ts`**`task-management/tags.ts`
- [ ] Corriger import dans `actions/tags.ts`
- [ ] **Déplacer `daily.ts`**`task-management/daily.ts`
- [ ] Corriger imports dans hooks/useDaily, actions/daily
### Phase 4: Task Management
- [x] **Déplacer `tasks.ts`**`task-management/tasks.ts`
- [x] Corriger 7 imports externes (pages, API routes, actions)
- [x] Corriger import dans script seed-data.ts
- [x] **Déplacer `tags.ts`**`task-management/tags.ts`
- [x] Corriger 8 imports externes (pages, API routes, actions)
- [x] Corriger import dans script seed-tags.ts
- [x] **Déplacer `daily.ts`**`task-management/daily.ts`
- [x] Corriger 6 imports externes (pages, API routes, actions)
- [x] Corriger imports relatifs vers ../core/database
### Phase 5: Intégrations (déjà partiellement fait)
- [ ] **Déplacer `tfs.ts`**`integrations/tfs.ts`
@@ -147,8 +150,8 @@ src/services/
- [ ] 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.
- [ ] 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)
### Points d'attention pour chaque service:
1. **Identifier tous les imports du service** (grep)

View File

@@ -1,4 +1,4 @@
import { tasksService } from '../src/services/tasks';
import { tasksService } from '../src/services/task-management/tasks';
import { TaskStatus, TaskPriority } from '../src/lib/types';
/**

View File

@@ -1,4 +1,4 @@
import { tagsService } from '../src/services/tags';
import { tagsService } from '../src/services/task-management/tags';
async function seedTags() {
console.log('🏷️ Création des tags de test...');

View File

@@ -1,6 +1,6 @@
'use server';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
import { UpdateDailyCheckboxData, DailyCheckbox, CreateDailyCheckboxData } from '@/lib/types';
import { revalidatePath } from 'next/cache';
import { getToday, getPreviousWorkday, parseDate, normalizeDate } from '@/lib/date-utils';

View File

@@ -1,6 +1,6 @@
'use server';
import { tagsService } from '@/services/tags';
import { tagsService } from '@/services/task-management/tags';
import { revalidatePath } from 'next/cache';
import { Tag } from '@/lib/types';

View File

@@ -1,6 +1,6 @@
'use server'
import { tasksService } from '@/services/tasks';
import { tasksService } from '@/services/task-management/tasks';
import { revalidatePath } from 'next/cache';
import { TaskStatus, TaskPriority } from '@/lib/types';

View File

@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from 'next/server';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
export async function PATCH(
request: NextRequest,

View File

@@ -1,5 +1,5 @@
import { NextResponse } from 'next/server';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
/**
* API route pour récupérer toutes les dates avec des dailies

View File

@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from 'next/server';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
import { DailyCheckboxType } from '@/lib/types';
export async function GET(request: NextRequest) {

View File

@@ -1,5 +1,5 @@
import { NextResponse } from 'next/server';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
import { getToday, parseDate, isValidAPIDate, createDateFromParts } from '@/lib/date-utils';
/**

View File

@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from 'next/server';
import { tagsService } from '@/services/tags';
import { tagsService } from '@/services/task-management/tags';
/**
* GET /api/tags/[id] - Récupère un tag par son ID

View File

@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from 'next/server';
import { tagsService } from '@/services/tags';
import { tagsService } from '@/services/task-management/tags';
/**
* GET /api/tags - Récupère tous les tags ou recherche par query

View File

@@ -1,5 +1,5 @@
import { NextRequest, NextResponse } from 'next/server';
import { tasksService } from '@/services/tasks';
import { tasksService } from '@/services/task-management/tasks';
export async function GET(
request: NextRequest,

View File

@@ -1,5 +1,5 @@
import { NextResponse } from 'next/server';
import { tasksService } from '@/services/tasks';
import { tasksService } from '@/services/task-management/tasks';
import { TaskStatus } from '@/lib/types';
/**

View File

@@ -1,6 +1,6 @@
import { Metadata } from 'next';
import { DailyPageClient } from './DailyPageClient';
import { dailyService } from '@/services/daily';
import { dailyService } from '@/services/task-management/daily';
import { getToday } from '@/lib/date-utils';
// Force dynamic rendering (no static generation)

View File

@@ -1,5 +1,5 @@
import { tasksService } from '@/services/tasks';
import { tagsService } from '@/services/tags';
import { tasksService } from '@/services/task-management/tasks';
import { tagsService } from '@/services/task-management/tags';
import { KanbanPageClient } from './KanbanPageClient';
// Force dynamic rendering (no static generation)

View File

@@ -1,5 +1,5 @@
import { tasksService } from '@/services/tasks';
import { tagsService } from '@/services/tags';
import { tasksService } from '@/services/task-management/tasks';
import { tagsService } from '@/services/task-management/tags';
import { HomePageClient } from '@/components/HomePageClient';
// Force dynamic rendering (no static generation)

View File

@@ -1,5 +1,5 @@
import { tasksService } from '@/services/tasks';
import { tagsService } from '@/services/tags';
import { tasksService } from '@/services/task-management/tasks';
import { tagsService } from '@/services/task-management/tags';
import { backupService } from '@/services/data-management/backup';
import { backupScheduler } from '@/services/data-management/backup-scheduler';
import { AdvancedSettingsPageClient } from '@/components/settings/AdvancedSettingsPageClient';

View File

@@ -1,4 +1,4 @@
import { tagsService } from '@/services/tags';
import { tagsService } from '@/services/task-management/tags';
import { GeneralSettingsPageClient } from '@/components/settings/GeneralSettingsPageClient';
// Force dynamic rendering for real-time data

View File

@@ -1,7 +1,7 @@
import { Header } from '@/components/ui/Header';
import { ManagerSummaryService } from '@/services/analytics/manager-summary';
import { tasksService } from '@/services/tasks';
import { tagsService } from '@/services/tags';
import { tasksService } from '@/services/task-management/tasks';
import { tagsService } from '@/services/task-management/tags';
import { WeeklyManagerPageClient } from './WeeklyManagerPageClient';
// Force dynamic rendering (no static generation)

View File

@@ -1,4 +1,4 @@
import { prisma } from './core/database';
import { prisma } from '../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';

View File

@@ -1,4 +1,4 @@
import { prisma } from './core/database';
import { prisma } from '../core/database';
import { Prisma } from '@prisma/client';
import { Tag } from '@/lib/types';

View File

@@ -1,4 +1,4 @@
import { prisma } from './core/database';
import { prisma } from '../core/database';
import { Task, TaskStatus, TaskPriority, TaskSource, BusinessError, DailyCheckbox, DailyCheckboxType } from '@/lib/types';
import { Prisma } from '@prisma/client';
import { getToday } from '@/lib/date-utils';