#!/usr/bin/env python3
"""
members.csv を Shift-JIS(cp932) から UTF-8 に変換するスクリプト。
サーバーで一度だけ実行してください。

使い方:
  python3 convert_csv_to_utf8.py
"""

import pandas as pd
import shutil
import os
from datetime import datetime

CSV_PATH = '/var/www/html/members.csv'

def convert():
    if not os.path.exists(CSV_PATH):
        print(f"❌ ファイルが見つかりません: {CSV_PATH}")
        return

    # バックアップ作成
    backup_path = CSV_PATH + '.bak_' + datetime.now().strftime('%Y%m%d_%H%M%S')
    shutil.copy2(CSV_PATH, backup_path)
    print(f"✅ バックアップ作成: {backup_path}")

    # エンコードを自動判別して読み込み
    df = None
    for enc in ('utf-8-sig', 'cp932', 'utf-8'):
        try:
            df = pd.read_csv(CSV_PATH, encoding=enc)
            # 列名を正規化
            df.columns = [str(c).strip().lstrip('\ufeff').strip() for c in df.columns]
            print(f"✅ {enc} で読み込み成功")
            print(f"   列名: {df.columns.tolist()}")
            break
        except UnicodeDecodeError:
            print(f"⚠️  {enc} 失敗、次を試します...")
            continue

    if df is None:
        print("❌ 読み込み失敗")
        return

    # UTF-8(BOMなし)で上書き保存
    df.to_csv(CSV_PATH, index=False, encoding='utf-8-sig')
    print(f"✅ UTF-8 で保存完了: {CSV_PATH}")
    print(f"   行数: {len(df)}")

if __name__ == '__main__':
    convert()
