import 'package:freezed_annotation/freezed_annotation.dart'; part 'vendor_stats_dto.freezed.dart'; part 'vendor_stats_dto.g.dart'; @freezed class VendorStatsDto with _$VendorStatsDto { const VendorStatsDto._(); // Private constructor for getters const factory VendorStatsDto({ @JsonKey(name: 'total_vendors') @Default(0) int totalVendors, @JsonKey(name: 'active_vendors') @Default(0) int activeVendors, @JsonKey(name: 'inactive_vendors') @Default(0) int inactiveVendors, @JsonKey(name: 'recent_vendors') @Default(0) int recentVendors, @JsonKey(name: 'vendors_with_models') @Default(0) int vendorsWithModels, @JsonKey(name: 'total_models') @Default(0) int totalModels, @JsonKey(name: 'updated_at') DateTime? updatedAt, }) = _VendorStatsDto; // 계산 속성들 double get activeVendorRatio => totalVendors > 0 ? (activeVendors / totalVendors) : 0.0; double get inactiveVendorRatio => totalVendors > 0 ? (inactiveVendors / totalVendors) : 0.0; double get vendorsWithModelsRatio => totalVendors > 0 ? (vendorsWithModels / totalVendors) : 0.0; double get averageModelsPerVendor => vendorsWithModels > 0 ? (totalModels / vendorsWithModels) : 0.0; factory VendorStatsDto.fromJson(Map json) => _$VendorStatsDtoFromJson(json); }