From f6ecb3372972e5f2deff8df7302bbd1f01f773c4 Mon Sep 17 00:00:00 2001 From: Mark M2 Macbook Date: Wed, 27 May 2026 08:41:53 +0200 Subject: [PATCH] refactor: replace string literals with table constants in TaskRepository --- lib/features/tasks/data/task_repository.dart | 22 +++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/features/tasks/data/task_repository.dart b/lib/features/tasks/data/task_repository.dart index f37ec44..aa9dbff 100644 --- a/lib/features/tasks/data/task_repository.dart +++ b/lib/features/tasks/data/task_repository.dart @@ -21,11 +21,11 @@ class TaskRepository { try { // 1. FASE FILTRI: Usa il join esplicito stile "Notes" var filterBuilder = _supabase - .from('tasks') + .from(Tables.tasks) .select(''' *, - task_assignments ( - staff_members (*) + ${Tables.taskAssignments} ( + ${Tables.staffMembers} (*) ) ''') .eq('company_id', companyId); @@ -76,7 +76,7 @@ class TaskRepository { // 1. Inseriamo il record base nella tabella tasks final response = await _supabase - .from('tasks') + .from(Tables.tasks) .insert(taskData) .select() .single(); @@ -110,7 +110,7 @@ class TaskRepository { ); // Sempre via l'array dal body principale // 1. Aggiorniamo i dati base del task (titolo, stato, scadenza, ecc.) - await _supabase.from('tasks').update(taskData).eq('id', task.id!); + await _supabase.from(Tables.tasks).update(taskData).eq('id', task.id!); // 2. Sincronizziamo in modo distruttivo gli assegnatari nella tabella di giunzione await _syncAssignments(task.id!, task.assignedToIds); @@ -127,7 +127,7 @@ class TaskRepository { try { // Eliminando il task, se la Foreign Key su Supabase ha "ON DELETE CASCADE", // le righe nella tabella di giunzione si distruggeranno da sole in automatico! - await _supabase.from('tasks').delete().eq('id', taskId); + await _supabase.from(Tables.tasks).delete().eq('id', taskId); } catch (e) { throw Exception('Errore nell\'eliminazione del task: $e'); } @@ -137,8 +137,10 @@ class TaskRepository { Future getTaskById(String taskId) async { try { final response = await _supabase - .from('tasks') - .select('*, assigned_to_staff:staff_members!task_assignments(*)') + .from(Tables.tasks) + .select( + '*, assigned_to_staff:${Tables.staffMembers}!${Tables.taskAssignments}(*)', + ) .eq('id', taskId) .single(); return TaskModel.fromMap(response); @@ -154,7 +156,7 @@ class TaskRepository { // di questo task e li reinseriamo. È fulmineo ed esclude a priori bug di disallineamento. // 1. Facciamo piazza pulita - await _supabase.from('task_assignments').delete().eq('task_id', taskId); + await _supabase.from(Tables.taskAssignments).delete().eq('task_id', taskId); // 2. Inseriamo le nuove assegnazioni (se ce ne sono) if (staffIds.isNotEmpty) { @@ -162,7 +164,7 @@ class TaskRepository { .map((staffId) => {'task_id': taskId, 'staff_id': staffId}) .toList(); - await _supabase.from('task_assignments').insert(assignments); + await _supabase.from(Tables.taskAssignments).insert(assignments); } } }