import os
import sys
import time
from sqlalchemy import create_engine, inspect, text

# 設定專案路徑
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, BASE_DIR)

def inspect_sales_data():
    table_name = 'realtime_sales_monthly'
    
    # 確保路徑與 app.py / clear_sales_table.py 一致
    db_path = os.path.join(BASE_DIR, 'data', 'momo_database.db')
    print(f"🔍 正在檢查資料庫檔案: {db_path}")
    
    if os.path.exists(db_path):
        mtime = time.ctime(os.path.getmtime(db_path))
        size = os.path.getsize(db_path)
        print(f"📂 檔案狀態: 存在 | 大小: {size} bytes | 最後修改: {mtime}")

    if not os.path.exists(db_path):
        print("❌ 資料庫檔案不存在！請確認路徑是否正確。")
        return

    # V-Fix: 直接建立 engine，不透過 DatabaseManager 以避免觸發自動修復邏輯 (寫入操作)
    engine = create_engine(f'sqlite:///{db_path}')
    
    try:
        inspector = inspect(engine)

        # 1. 檢查表格是否存在
        if not inspector.has_table(table_name):
            print(f"✅ 資料表 '{table_name}' 不存在 (確認已從資料庫中移除)。")
            print("👉 如果您在網頁上還看得到資料，請務必【重啟 app.py】以清除記憶體快取。")
            return

        print(f"⚠️ 資料表 '{table_name}' 仍然存在於資料庫中！")

        # 2. 檢查資料筆數
        with engine.connect() as conn:
            count = conn.execute(text(f"SELECT COUNT(*) FROM {table_name}")).scalar()
            print(f"📊 目前資料筆數: {count}")
            
            if count > 0:
                print("\n--- 前 5 筆資料預覽 ---")
                try:
                    result = conn.execute(text(f"SELECT * FROM {table_name} LIMIT 5"))
                    keys = list(result.keys())
                    print(f"欄位: {keys}")
                    for row in result:
                        print(row)
                    
                    # 特別檢查 '狀態' 欄位 (如果存在)
                    if '狀態' in keys:
                        print("\n--- '狀態' 欄位值範例 (確認是否為文字) ---")
                        status_sample = conn.execute(text(f"SELECT DISTINCT \"狀態\" FROM {table_name} LIMIT 10")).fetchall()
                        print([r[0] for r in status_sample])
                except Exception as e:
                    print(f"❌ 讀取資料失敗: {e}")
            else:
                print("ℹ️  資料表存在但無資料 (空表)。")
                
    except Exception as e:
        print(f"❌ 資料庫連接或查詢失敗: {e}")
        print("👉 請確認 app.py 是否已關閉 (可能鎖定了資料庫檔案)")

if __name__ == "__main__":
    inspect_sales_data()