# LunchPick - 점심 메뉴 추천 앱

> 글로벌 규칙(~/.claude/CLAUDE.md) 상속. 상세 가이드는 [AGENTS.md](AGENTS.md) 참조.

## 프로젝트 개요

- **앱 이름**: 오늘 뭐 먹Z?
- **패키지**: `com.naturebridgeai.lunchpick`
- **SDK**: Flutter 3.8.1+ / Dart 3.8.1+

## 핵심 기술 스택

| 분류 | 패키지 |
|------|--------|
| 상태관리 | Riverpod + riverpod_generator |
| 로컬저장 | Hive + hive_generator |
| 네비게이션 | go_router |
| 네트워크 | Dio + dio_cache_interceptor |
| 위치/권한 | geolocator, permission_handler |
| 광고 | google_mobile_ads |

## 프로젝트 구조

```text
lib/
├── core/
│   ├── constants/    # app_constants, app_colors, api_keys
│   ├── network/      # network_client, interceptors
│   ├── services/     # permission, geocoding, ad, bluetooth, notification
│   ├── errors/       # app_exceptions, network_exceptions
│   └── widgets/      # 공통 위젯 (loading, error, empty_state)
├── data/
│   ├── api/          # naver_api_client, naver GraphQL/LocalSearch
│   ├── datasources/  # local, remote (naver_html_parser 등)
│   ├── repositories/ # *_repository_impl
│   └── models/       # DTO, Hive adapters
├── domain/
│   ├── entities/     # Restaurant, VisitRecord, UserSettings, WeatherInfo
│   ├── repositories/ # 인터페이스 정의
│   └── usecases/     # 비즈니스 로직
└── presentation/
    ├── providers/    # Riverpod providers
    ├── view_models/  # 화면 상태 관리
    └── pages/        # splash, main, random_selection, restaurant_list,
                      # calendar, settings, share
```

## 주요 도메인 엔티티

- `Restaurant`: 음식점 정보 (이름, 카테고리, 위치, 영업시간 등)
- `VisitRecord`: 방문 기록
- `RecommendationRecord`: 추천 기록
- `UserSettings`: 사용자 설정 (반경, 카테고리 필터 등)
- `WeatherInfo`: 날씨 정보 (추천 알고리즘 활용)

## 필수 명령어

```bash
# 의존성 설치
flutter pub get

# 코드 생성 (Hive adapters, Riverpod, JSON)
dart run build_runner build --delete-conflicting-outputs

# 개발 중 자동 생성
dart run build_runner watch --delete-conflicting-outputs

# 분석 & 테스트
flutter analyze
flutter test
flutter test test_hive  # Hive 변경 시

# 릴리즈 빌드
flutter build appbundle --release
```

## Agent 응답 형식

```text
[Model Name] - [Agent Name]. I have reviewed all the following rules: [categories]. Proceeding with the task. Master!
```

### Available Agents

| Agent | 용도 |
|-------|------|
| Direct Implementation | 직접 구현 |
| flutter-ui-designer | UI/UX 디자인 |
| flutter-architecture-designer | 아키텍처 설계 |
| flutter-network-engineer | 네트워크/API |
| flutter-qa-engineer | QA/테스트 |
| app-launch-validator | 출시 검증 |
| aso-optimization-expert | ASO 최적화 |

## 주의사항

- `api_keys.dart`는 커밋 금지 (로컬 생성)
- Android/iOS 빌드 설정 변경 시 승인 필요
- Hive 스키마 변경 시 마이그레이션 고려
- 네이버 API 호출 시 캐시 정책 준수
