import sqlite3
import os

DB_PATH = "auction.db"

def init_db():
    # 기존 DB가 있다면 삭제하고 새로 만들지(테스트용), 아니면 유지할지 결정
    # 실전에서는 실수로 삭제하면 안 되니, 파일이 없을 때만 생성하게 합니다.
    if os.path.exists(DB_PATH):
        print(f"⚠️ 경고: '{DB_PATH}' 파일이 이미 존재합니다.")
        print("덮어쓰고 새로 만드시겠습니까? (y/n)")
        choice = input("> ").strip().lower()
        if choice != 'y':
            print("🚫 DB 생성을 취소합니다.")
            return

    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()

    print("🏗️ 데이터베이스 구축을 시작합니다...")

    # 1. 감시 조건 테이블 (데일리 배치용)
    # - last_scanned_id 삭제 완료
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS monitoring_conditions (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        region1_code TEXT,      -- 시/도 (예: 10)
        region1_name TEXT,      -- 시/도 명 (예: 서울특별시)
        region2_code TEXT,      -- 구/군 (예: 235)
        region2_name TEXT,      -- 구/군 명 (예: 강남구)
        item_code TEXT,         -- 물건종류 코드 (예: 101)
        item_name TEXT,         -- 물건종류 명 (예: 아파트)
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    )
    ''')
    print("✅ 'monitoring_conditions' 테이블 생성 완료")

    # 2. 물건 아카이브 (전체 물건 저장소)
    # - 요청하신 상세 칼럼들 모두 포함
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS items (
        auction_id TEXT PRIMARY KEY,   -- 물건번호 (예: 2024타경12345) - 고유키
        image_url TEXT,                -- 사진 링크
        category TEXT,                 -- 물건종류
        court_name TEXT,               -- 관련법원
        address TEXT,                  -- 소재지
        area_spec TEXT,                -- 건물/토지 면적
        price_info TEXT,               -- 감정가 / 최저가
        current_status TEXT,           -- 현재상태 (신건, 유찰 등)
        bidding_date DATE,             -- 매각기일
        link TEXT,                     -- 상세 페이지 링크
        is_hidden BOOLEAN DEFAULT 0,   -- 가리기(숨김) 여부
        first_seen_at DATETIME DEFAULT CURRENT_TIMESTAMP
    )
    ''')
    print("✅ 'items' 테이블 생성 완료")

    # 3. 관심 물건 (주인님의 찜 목록)
    # - link 칼럼 추가 완료
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS saved_targets (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        auction_id TEXT,               -- items 테이블 참조
        link TEXT,                     -- 바로가기 링크
        bidding_date DATE,             -- 입찰 기일 (추적용)
        status TEXT,                   -- 상태 (낙찰/유찰 등)
        note TEXT,                     -- 주인님 메모
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
        FOREIGN KEY(auction_id) REFERENCES items(auction_id)
    )
    ''')
    print("✅ 'saved_targets' 테이블 생성 완료")

    conn.commit()
    conn.close()
    print("\n🎉 데이터베이스(auction.db) 구축이 성공적으로 끝났습니다.")

if __name__ == "__main__":
    init_db()