import 'package:freezed_annotation/freezed_annotation.dart'; part 'karakter_referans.freezed.dart'; part 'karakter_referans.g.dart'; /// Referans foto türü. enum ReferansTip { @JsonValue('yuz') yuz, @JsonValue('portre') portre, @JsonValue('tam_govde') tamGovde, @JsonValue('sahne') sahne, } /// Yüzün görseldeki bounding box'ı (normalize 0..1 veya piksel). @freezed class Bbox with _$Bbox { const factory Bbox({ @Default(0) double x, @Default(0) double y, @Default(0) double w, @Default(0) double h, }) = _Bbox; factory Bbox.fromJson(Map j) => _$BboxFromJson(j); } /// Bir karakterin tek bir referans görseli (yüz/portre/tam gövde/sahne). @freezed class KarakterReferans with _$KarakterReferans { const factory KarakterReferans({ required String id, @Default(ReferansTip.yuz) ReferansTip tip, required String dosyaYolu, Bbox? bbox, String? aciklama, required DateTime ekleme, }) = _KarakterReferans; factory KarakterReferans.fromJson(Map j) => _$KarakterReferansFromJson(j); }