--- name: hive-model description: Hive 데이터 모델 생성 및 수정. 새 모델 추가, 필드 변경, typeId 관리 시 사용. allowed-tools: Bash, Read, Write, Edit, Glob --- # Hive Model Management ## 현재 모델 (typeId) | Model | typeId | 파일 | |-------|--------|------| | SubscriptionModel | 0 | `lib/models/subscription_model.dart` | | CategoryModel | 1 | `lib/models/category_model.dart` | | PaymentCardModel | 2 | `lib/models/payment_card_model.dart` | ## 새 모델 생성 시 ```dart import 'package:hive/hive.dart'; part 'new_model.g.dart'; @HiveType(typeId: 3) // 다음 사용 가능한 typeId class NewModel extends HiveObject { @HiveField(0) final String id; @HiveField(1) final String name; NewModel({required this.id, required this.name}); } ``` ## 코드 생성 모델 변경 후 반드시 실행: ```bash dart run build_runner build --delete-conflicting-outputs ``` ## 주의사항 1. **typeId 충돌 금지**: 기존 typeId 재사용 불가 2. **HiveField 순서**: 기존 필드 인덱스 변경 금지 (데이터 손실) 3. **마이그레이션**: 필드 추가는 안전, 삭제/변경은 마이그레이션 필요 ## main.dart 등록 ```dart Hive.registerAdapter(NewModelAdapter()); await Hive.openBox('newModelBox'); ```