import 'package:freezed_annotation/freezed_annotation.dart'; part 'lookup_data.freezed.dart'; part 'lookup_data.g.dart'; /// 전체 Lookups 데이터 컨테이너 (백엔드 API 응답 형식) @freezed class LookupData with _$LookupData { const factory LookupData({ @JsonKey(name: 'manufacturers', defaultValue: []) required List manufacturers, @JsonKey(name: 'equipment_names', defaultValue: []) required List equipmentNames, @JsonKey(name: 'equipment_categories', defaultValue: []) required List equipmentCategories, @JsonKey(name: 'equipment_statuses', defaultValue: []) required List equipmentStatuses, }) = _LookupData; factory LookupData.fromJson(Map json) => _$LookupDataFromJson(json); } /// 기본 Lookup 아이템 (제조사용) @freezed class LookupItem with _$LookupItem { const factory LookupItem({ required int id, required String name, }) = _LookupItem; factory LookupItem.fromJson(Map json) => _$LookupItemFromJson(json); } /// 장비명 Lookup 아이템 (제조사 정보 포함) @freezed class EquipmentNameItem with _$EquipmentNameItem { const factory EquipmentNameItem({ required int id, required String name, @JsonKey(name: 'model_number') String? modelNumber, }) = _EquipmentNameItem; factory EquipmentNameItem.fromJson(Map json) => _$EquipmentNameItemFromJson(json); } /// 카테고리 Lookup 아이템 @freezed class CategoryItem with _$CategoryItem { const factory CategoryItem({ required String id, required String name, String? description, }) = _CategoryItem; factory CategoryItem.fromJson(Map json) => _$CategoryItemFromJson(json); } /// 상태 Lookup 아이템 @freezed class StatusItem with _$StatusItem { const factory StatusItem({ required String id, required String name, String? description, }) = _StatusItem; factory StatusItem.fromJson(Map json) => _$StatusItemFromJson(json); }