#!/usr/bin/env python3
"""
检查 ODS settlement_records 表的字段名
"""

import os
import psycopg2
from dotenv import load_dotenv

def main():
    # 加载环境变量
    load_dotenv()
    
    test_db_dsn = os.environ.get('TEST_DB_DSN')
    if not test_db_dsn:
        raise RuntimeError("TEST_DB_DSN 环境变量未设置")
    
    print("🔍 检查 ODS settlement_records 表字段")
    
    with psycopg2.connect(test_db_dsn) as conn:
        with conn.cursor() as cur:
            # 查看表字段
            cur.execute("""
                SELECT column_name, data_type 
                FROM information_schema.columns 
                WHERE table_schema = 'ods' 
                AND table_name = 'settlement_records'
                ORDER BY ordinal_position
            """)
            
            columns = cur.fetchall()
            print(f"settlement_records 表有 {len(columns)} 个字段:")
            
            for column_name, data_type in columns:
                print(f"  {column_name} ({data_type})")
                
                # 如果是 ID 相关字段，显示一些样本值
                if 'id' in column_name.lower():
                    cur.execute(f"SELECT {column_name} FROM ods.settlement_records LIMIT 3")
                    samples = cur.fetchall()
                    sample_values = [str(row[0]) for row in samples]
                    print(f"    样本值: {', '.join(sample_values)}")

if __name__ == "__main__":
    main()