import 'package:freezed_annotation/freezed_annotation.dart'; import 'enums.dart'; part 'job.freezed.dart'; part 'job.g.dart'; /// JobOrchestrator için bir iş kaydı — Hive 'joblar' box'unda saklanır, /// uygulama açılışında `calisiyor` durumlu jobs `kuyruk`'a geri atılır. @freezed class Job with _$Job { const factory Job({ required String id, @Default(JobTipi.sahneUret) JobTipi tipi, String? filmId, String? sahneId, String? karakterId, @Default(KuyrukDurumu.bos) KuyrukDurumu durum, @Default(0.0) double ilerleme, // 0..1 @Default('') String faz, required int baslangicMs, // millisecondsSinceEpoch int? bitisMs, String? hata, @Default([]) List ciktiYollari, /// Sağlayıcı bilgisi, köprü job_id'si, token kullanımı vs. @Default({}) Map meta, }) = _Job; factory Job.fromJson(Map j) => _$JobFromJson(j); }