refactor: replace string literals with table constants in TaskRepository

This commit is contained in:
2026-05-27 08:41:53 +02:00
parent 9d796d6e41
commit f6ecb33729

View File

@@ -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<TaskModel> 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);
}
}
}