"""테스트 데이터 생성 스크립트"""
from datetime import datetime, timedelta
from src.models import Reservation, Customer
from src.storage import Storage
def create_test_data():
"""샘플 예약 데이터 생성"""
storage = Storage()
# 오늘 날짜
today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
# 샘플 예약 데이터
test_reservations = [
# 오늘 예약
Reservation(
id="airbnb_001",
platform="airbnb",
customer_name="김철수",
customer_phone="010-1234-5678",
start_time=today + timedelta(hours=14),
end_time=today + timedelta(hours=18),
price=80000,
status="confirmed"
),
Reservation(
id="naver_001",
platform="naver",
customer_name="이영희",
customer_phone="010-2345-6789",
start_time=today + timedelta(hours=19),
end_time=today + timedelta(hours=22),
price=60000,
status="confirmed"
),
# 내일 예약
Reservation(
id="spacecloud_001",
platform="spacecloud",
customer_name="박민수",
customer_phone="010-3456-7890",
start_time=today + timedelta(days=1, hours=10),
end_time=today + timedelta(days=1, hours=14),
price=70000,
status="confirmed"
),
Reservation(
id="kakao_001",
platform="kakao",
customer_name="정수진",
customer_phone="010-4567-8901",
start_time=today + timedelta(days=1, hours=15),
end_time=today + timedelta(days=1, hours=19),
price=75000,
status="confirmed"
),
# 이번 주 예약
Reservation(
id="yanolja_001",
platform="yanolja",
customer_name="최동욱",
customer_phone="010-5678-9012",
start_time=today + timedelta(days=3, hours=13),
end_time=today + timedelta(days=3, hours=17),
price=85000,
status="confirmed"
),
Reservation(
id="airbnb_002",
platform="airbnb",
customer_name="강혜진",
customer_phone="010-6789-0123",
start_time=today + timedelta(days=5, hours=11),
end_time=today + timedelta(days=5, hours=15),
price=90000,
status="confirmed"
),
# 다음 주 예약
Reservation(
id="naver_002",
platform="naver",
customer_name="윤서연",
customer_phone="010-7890-1234",
start_time=today + timedelta(days=7, hours=16),
end_time=today + timedelta(days=7, hours=20),
price=65000,
status="confirmed"
),
# 지난 예약 (노쇼)
Reservation(
id="airbnb_003",
platform="airbnb",
customer_name="한지민",
customer_phone="010-8901-2345",
start_time=today - timedelta(days=2, hours=-10),
end_time=today - timedelta(days=2, hours=-14),
price=70000,
status="noshow"
),
]
# 예약 저장
print("테스트 예약 데이터 생성 중...")
for reservation in test_reservations:
storage.add_reservation(reservation)
print(f" ✓ {reservation.platform}: {reservation.customer_name} ({reservation.start_time.strftime('%Y-%m-%d %H:%M')})")
# 고객 데이터
test_customers = [
Customer(
phone="010-8901-2345",
name="한지민",
is_blacklisted=False,
noshow_count=1,
total_reservations=3,
notes="노쇼 이력 1회"
),
Customer(
phone="010-9999-8888",
name="블랙리스트고객",
is_blacklisted=True,
noshow_count=3,
total_reservations=5,
notes="노쇼 3회로 블랙리스트 등록"
),
]
print("\n고객 데이터 생성 중...")
for customer in test_customers:
storage.save_customer(customer)
status = "블랙리스트" if customer.is_blacklisted else f"노쇼 {customer.noshow_count}회"
print(f" ✓ {customer.name} ({status})")
print("\n✅ 테스트 데이터 생성 완료!")
print(f" - 예약: {len(test_reservations)}건")
print(f" - 고객: {len(test_customers)}명")
if __name__ == "__main__":
create_test_data()