#!/usr/bin/env python
"""
기존 Person 데이터의 전화번호를 대시 있는 형태로 되돌리는 스크립트
"""

import os
import sys
import django
import re

# Django 설정
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'A_core.settings')
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
django.setup()

from B_main.models import Person

def format_phone_with_dash(phone):
    """전화번호를 010-XXXX-XXXX 형식으로 변환"""
    if not phone:
        return phone
    # 숫자만 추출
    numbers = re.sub(r'[^0-9]', '', phone)
    
    # 11자리인 경우에만 포맷팅
    if len(numbers) == 11 and numbers.startswith('010'):
        return f"{numbers[:3]}-{numbers[3:7]}-{numbers[7:]}"
    elif len(numbers) == 10 and numbers.startswith('010'):
        return f"{numbers[:3]}-{numbers[3:6]}-{numbers[6:]}"
    
    return phone

def restore_phone_dashes():
    """기존 Person 데이터의 전화번호를 대시 있는 형태로 되돌리기"""
    print("=" * 60)
    print("Person 데이터 전화번호 대시 복원")
    print("=" * 60)
    
    # 모든 Person 데이터 조회
    persons = Person.objects.all()
    
    updated_count = 0
    for person in persons:
        if person.연락처:
            old_phone = person.연락처
            new_phone = format_phone_with_dash(old_phone)
            
            if old_phone != new_phone:
                print(f"복원: {person.이름} - {old_phone} → {new_phone}")
                person.연락처 = new_phone
                person.save()
                updated_count += 1
            else:
                print(f"변경 없음: {person.이름} - {old_phone}")
        else:
            print(f"전화번호 없음: {person.이름}")
    
    print(f"\n총 {updated_count}개의 전화번호가 복원되었습니다.")

if __name__ == '__main__':
    restore_phone_dashes() 