#!/bin/bash

# 簡化版文件歸檔腳本 (扁平化歸檔)
# 使用方法: ./archive_file.sh <文件路徑> <原因>
# 檔案格式: YYYYMMDDHHMMSS_原檔名

if [ $# -lt 2 ]; then
    echo "使用方法: $0 文件路徑 原因"
    exit 1
fi

SOURCE_FILE="$1"
REASON="$2"
OPERATOR="${3:-Claude Code}"

# 檢查文件是否存在
if [ ! -f "$SOURCE_FILE" ]; then
    echo "❌ 文件不存在: $SOURCE_FILE"
    exit 1
fi

# 創建歸檔目錄 (直接使用 sop/archive，不建立日期子資料夾)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ARCHIVE_DIR="$SCRIPT_DIR/../archive"
LOG_DIR="$SCRIPT_DIR/../archive/logs"
mkdir -p "$ARCHIVE_DIR"
mkdir -p "$LOG_DIR"

# 生成新文件名 (完整時間戳記前綴 YYYYMMDDHHMMSS)
FILENAME=$(basename "$SOURCE_FILE")
TIMESTAMP=$(date '+%Y%m%d%H%M%S')
ARCHIVED_FILENAME="${TIMESTAMP}_${FILENAME}"
TARGET_FILE="$ARCHIVE_DIR/$ARCHIVED_FILENAME"

# 移動文件
mv "$SOURCE_FILE" "$TARGET_FILE"

if [ $? -eq 0 ]; then
    echo "✅ 歸檔成功: $SOURCE_FILE -> $TARGET_FILE"
    
    # 記錄日誌
    LOG_ENTRY="[$(date '+%Y-%m-%d %H:%M:%S')] ARCHIVE | $SOURCE_FILE -> $TARGET_FILE | $OPERATOR | $REASON"
    echo "$LOG_ENTRY" >> "$LOG_DIR/file_migration.log"
    echo "📋 日誌記錄: $LOG_ENTRY"
else
    echo "❌ 歸檔失敗: $SOURCE_FILE"
    exit 1
fi