Files
submanager/.claude/skills/hive-model/SKILL.md
JiWoong Sul 83c43fb61f feat: SMS 스캔 전면광고 및 Isolate 버그 수정
## 전면 광고 (AdService)
- AdService 클래스 신규 생성 (lunchpick 패턴 참조)
- Completer 패턴으로 광고 완료 대기 구현
- 로딩 오버레이로 앱 foreground 상태 유지
- 몰입형 모드 (immersiveSticky) 적용
- iOS 테스트 광고 ID 설정

## SMS 스캔 버그 수정
- Isolate 내 Flutter 바인딩 접근 오류 해결
- _isoExtractServiceNameFromSender()에서 하드코딩 사용
- 로딩 위젯 화면 정중앙 배치 수정

## 문서 및 설정
- CLAUDE.md 최적화 (글로벌 규칙 중복 제거)
- Claude Code Skills 5개 추가
  - flutter-build: 빌드/분석
  - hive-model: Hive 모델 관리
  - release-deploy: 릴리즈 배포
  - sms-scanner: SMS 스캔 디버깅
  - admob: 광고 구현

## 버전
- 1.0.1+2 → 1.0.1+3
2025-12-08 18:14:52 +09:00

56 lines
1.3 KiB
Markdown

---
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<NewModel>('newModelBox');
```