#!/bin/bash
# ============================================================
# archive-scratchpad.sh — Archive scratchpad.json if changed
# Runs every 10 minutes via cron.
# Compares md5 of current file against last archive.
# If changed: copies to data/archive/scratchpad_YYYYMMDD_HHMM.json
# If unchanged: does nothing.
# ============================================================

DATA_DIR="/var/www/ot48/notes/data"
ARCHIVE_DIR="$DATA_DIR/archive"
SOURCE="$DATA_DIR/scratchpad.json"

# Nothing to do if source file doesn't exist yet
if [ ! -f "$SOURCE" ]; then
    exit 0
fi

# Create archive dir if it doesn't exist
mkdir -p "$ARCHIVE_DIR"

# Get md5 of current file
CURRENT_MD5=$(md5sum "$SOURCE" | awk '{print $1}')

# Get md5 of the most recent archive (if any)
LATEST_ARCHIVE=$(ls -t "$ARCHIVE_DIR"/scratchpad_*.json 2>/dev/null | head -1)

if [ -n "$LATEST_ARCHIVE" ]; then
    LAST_MD5=$(md5sum "$LATEST_ARCHIVE" | awk '{print $1}')
else
    LAST_MD5=""
fi

# Archive only if content has changed
if [ "$CURRENT_MD5" != "$LAST_MD5" ]; then
    TIMESTAMP=$(date +"%Y%m%d_%H%M")
    cp "$SOURCE" "$ARCHIVE_DIR/scratchpad_${TIMESTAMP}.json"
fi
