#!/bin/bash
# Claude Code 계정 전환 스크립트
# Usage: bash switch-account.sh [ACCOUNT_NAME|status]

CRED_DIR="$HOME/.claude"
ACTIVE_FILE="$CRED_DIR/.active-account"

if [ -z "$1" ]; then
    echo "사용법: bash switch-account.sh [ACCOUNT_NAME|status]"
    echo ""
    echo "사용 가능한 계정:"
    for f in "$CRED_DIR"/.credentials-*.json; do
        [ -f "$f" ] || continue
        name=$(basename "$f" .json | sed 's/^\.credentials-//')
        if [ -f "$ACTIVE_FILE" ] && [ "$(cat "$ACTIVE_FILE")" = "$name" ]; then
            echo "  $name (활성)"
        else
            echo "  $name"
        fi
    done
    exit 0
fi

case "$1" in
    status)
        echo "=== 계정 상태 ==="
        if [ -f "$ACTIVE_FILE" ]; then
            echo "활성 계정: $(cat "$ACTIVE_FILE")"
        else
            echo "활성 계정: 미확인 (.active-account 파일 없음)"
        fi
        echo ""
        claude auth status 2>&1
        ;;
    *)
        CRED_FILE="$CRED_DIR/.credentials-$1.json"
        if [ ! -f "$CRED_FILE" ]; then
            echo "오류: 계정 '$1'의 credentials 파일이 없습니다: $CRED_FILE"
            exit 1
        fi
        # 현재 활성 계정의 credentials를 백업에 동기화 (갱신된 토큰 보존)
        if [ -f "$ACTIVE_FILE" ]; then
            PREV_ACCOUNT=$(cat "$ACTIVE_FILE")
            if [ -n "$PREV_ACCOUNT" ] && [ "$PREV_ACCOUNT" != "$1" ]; then
                PREV_BACKUP="$CRED_DIR/.credentials-$PREV_ACCOUNT.json"
                cp "$CRED_DIR/.credentials.json" "$PREV_BACKUP" 2>/dev/null
            fi
        fi
        # 새 계정으로 전환
        cp "$CRED_FILE" "$CRED_DIR/.credentials.json"
        echo "$1" > "$ACTIVE_FILE"
        echo "$1 계정으로 전환 완료"
        ;;
esac
