# InsuRo 보험사 이름 약칭→정식명칭 마이그레이션

## 작업 레벨: Lv.1

## 프로젝트
- InsuRo: `/home/jay/projects/InsuRo`
- 서버: `/home/jay/projects/InsuRo/server`

## 설명
task-2290에서 소식지/보험료 보험사 드롭다운을 insurance-companies.ts 기준으로 동기화.
하지만 DB(newsletters, premium_data 테이블)에 기존 약칭으로 저장된 데이터가 있어 매핑 필요.

## 이름 매핑 (약칭 → 정식)
```
DB손보 → DB손해보험
KB손보 → KB손해보험
농협손보 → NH농협손해보험
롯데손보 → 롯데손해보험
한화손보 → 한화손해보험
MG손보 → MG손해보험
하나손보 → 하나손해보험
AXA손보 → AIG손해보험 (★ 이름 자체가 다름)
```

## 수정 사항

### 1. 서버 COMPANY_PATTERNS에 약칭 매핑 추가
파일: `server/main.py` — COMPANY_PATTERNS 딕셔너리 (라인 3800 부근)

기존 패턴에 약칭도 추가하여 자동 감지 시 정식 명칭으로 매핑:
```python
COMPANY_PATTERNS = {
    "DB손해보험": ["DB손해", "DB손보", "DB손해보험"],  # DB손보도 매칭
    "KB손해보험": ["KB손해", "KB손보", "KB손해보험"],
    "NH농협손해보험": ["NH농협", "농협손보", "NH농협손해"],
    "롯데손해보험": ["롯데손해", "롯데손보"],
    "한화손해보험": ["한화손해", "한화손보"],
    "MG손해보험": ["MG손해", "MG손보"],
    "하나손해보험": ["하나손해", "하나손보"],
    "AIG손해보험": ["AIG", "AXA", "AXA손보"],  # AXA→AIG 매핑 중요
    # ... 기존 패턴 유지
}
```

### 2. DB 데이터 마이그레이션 (Supabase SQL)
newsletters, premium_data 테이블의 company_name 컬럼을 정식 명칭으로 업데이트:

```sql
-- newsletters 테이블
UPDATE newsletters SET company_name = 'DB손해보험' WHERE company_name = 'DB손보';
UPDATE newsletters SET company_name = 'KB손해보험' WHERE company_name = 'KB손보';
UPDATE newsletters SET company_name = 'NH농협손해보험' WHERE company_name = '농협손보';
UPDATE newsletters SET company_name = '롯데손해보험' WHERE company_name = '롯데손보';
UPDATE newsletters SET company_name = '한화손해보험' WHERE company_name = '한화손보';
UPDATE newsletters SET company_name = 'MG손해보험' WHERE company_name = 'MG손보';
UPDATE newsletters SET company_name = '하나손해보험' WHERE company_name = '하나손보';
UPDATE newsletters SET company_name = 'AIG손해보험' WHERE company_name = 'AXA손보';

-- premium_data 테이블도 동일
UPDATE premium_data SET company_name = 'DB손해보험' WHERE company_name = 'DB손보';
UPDATE premium_data SET company_name = 'KB손해보험' WHERE company_name = 'KB손보';
UPDATE premium_data SET company_name = 'NH농협손해보험' WHERE company_name = '농협손보';
UPDATE premium_data SET company_name = '롯데손해보험' WHERE company_name = '롯데손보';
UPDATE premium_data SET company_name = '한화손해보험' WHERE company_name = '한화손보';
UPDATE premium_data SET company_name = 'MG손해보험' WHERE company_name = 'MG손보';
UPDATE premium_data SET company_name = '하나손해보험' WHERE company_name = '하나손보';
UPDATE premium_data SET company_name = 'AIG손해보험' WHERE company_name = 'AXA손보';
```

SQL 파일을 `supabase/migrations/` 에 저장하여 기록.

### 3. correct_insurance_text 교정 사전에도 추가
```python
# 약칭→정식 자동 교정
"DB손보": "DB손해보험", "KB손보": "KB손해보험",
"농협손보": "NH농협손해보험", "롯데손보": "롯데손해보험",
"한화손보": "한화손해보험", "MG손보": "MG손해보험",
"하나손보": "하나손해보험", "AXA손보": "AIG손해보험",
```

## affected_files
- `server/main.py` (수정 — COMPANY_PATTERNS + correct_insurance_text에 약칭 매핑)
- `supabase/migrations/20260428_company_name_migration.sql` (신규 — DB 마이그레이션)

## 검증 시나리오
1. 서버에서 "DB손보" 텍스트 → "DB손해보험"으로 자동 감지/교정 확인
2. "AXA" 또는 "AXA손보" → "AIG손해보험"으로 매핑 확인
3. 마이그레이션 SQL이 정상 생성되었는지 확인
4. 서버 import 정상
5. npm run build 성공