lavorazione dei ticket

This commit is contained in:
2026-05-14 15:59:46 +02:00
parent 0f9616f19a
commit 89099c2cfd
11 changed files with 437 additions and 205 deletions

View File

@@ -14,17 +14,15 @@ class TrackingState {
class TrackingCubit extends Cubit<TrackingState> {
final TrackingRepository _repo = GetIt.I.get<TrackingRepository>();
final String parentId;
final TrackingParentType parentType;
final String companyId = GetIt.I.get<SessionCubit>().state.company!.id!;
TrackingCubit({required this.parentId, required this.parentType})
: super(TrackingState()) {
loadTrackings();
}
TrackingCubit() : super(TrackingState());
Future<void> loadTrackings() async {
emit(TrackingState(isLoading: true, logs: state.logs));
Future<void> loadTrackings(
String parentId,
TrackingParentType parentType,
) async {
emit(TrackingState(isLoading: true, logs: []));
final trackings = await _repo.getTrackingsByParent(
parentId: parentId,
parentType: parentType,
@@ -32,9 +30,11 @@ class TrackingCubit extends Cubit<TrackingState> {
emit(TrackingState(isLoading: false, logs: trackings));
}
Future<void> addManualNote(
String message,
bool isInternal, {
Future<void> addTimelineEvent({
required String parentId,
required TrackingParentType parentType,
required String message,
required bool isInternal,
String? staffId,
}) async {
// Aggiungiamo un feedback visivo immediato (Optimistic UI) se vogliamo,
@@ -49,6 +49,6 @@ class TrackingCubit extends Cubit<TrackingState> {
isInternal: isInternal,
);
// Ricarichiamo la lista fresca dal server
await loadTrackings();
await loadTrackings(parentId, parentType);
}
}

View File

@@ -18,10 +18,7 @@ class TrackingRepository {
.select('*, staff_member(name)')
.eq('parent_id', parentId)
.eq('parent_type', parentType.name)
.order(
'created_at',
ascending: true,
); // ascending: true per avere la timeline dall'alto (vecchi) al basso (nuovi)
.order('created_at', ascending: false);
return response.map((map) => TrackingModel.fromMap(map)).toList();
}