import 'package:isar/isar.dart'; part 'uretim_kaydi.g.dart'; enum UretimTipi { muzik, resim, video } enum UretimDurumu { bekliyor, kuyrukta, uretiliyor, indiriliyor, tamamlandi, hata, iptal } @collection class UretimKaydi { Id id = Isar.autoIncrement; @enumerated UretimTipi tip = UretimTipi.muzik; String baslik = ''; /// Form parametrelerinin tam snapshot'ı (JSON) — tekrar üretilebilirlik String parametrelerJson = ''; /// Sihirbaz seçimlerinin snapshot'ı (JSON) — galeriden tam geri yükleme String sihirbazJson = ''; /// ComfyUI'ye gönderilen API-format workflow (JSON) String workflowJson = ''; String? promptId; @enumerated UretimDurumu durum = UretimDurumu.bekliyor; List ciktiDosyalari = []; String? hataMesaji; DateTime olusturmaZamani = DateTime.now(); DateTime? bitisZamani; bool favori = false; /// Varyant grubu — aynı üretimin türevleri (yeni seed, edit, tekrar) /// aynı grupta tutulur. 0 = kök üretim (grup id'si kendi id'sidir). @Index() int varyantGrubu = 0; @ignore int get etkinGrup => varyantGrubu == 0 ? id : varyantGrubu; @ignore Duration? get uretimSuresi => bitisZamani?.difference(olusturmaZamani); }