#!/usr/bin/env bash
set -euo pipefail

ROOT="/opt/copyparty/media/Music"

echo "Starting audio flatten operation..."
echo "Root: $ROOT"
echo

moved=0
renamed=0

find "$ROOT" -type f \( \
    -iname '*.mp3' -o \
    -iname '*.m4a' -o \
    -iname '*.aac' -o \
    -iname '*.flac' -o \
    -iname '*.ogg' -o \
    -iname '*.opus' -o \
    -iname '*.wav' -o \
    -iname '*.wma' -o \
    -iname '*.alac' \
\) | while IFS= read -r file; do

    base=$(basename "$file")
    target="$ROOT/$base"

    if [[ "$file" == "$target" ]]; then
        echo "[SKIP] Already in root: $base"
        continue
    fi

    if [[ -e "$target" ]]; then
        name="${base%.*}"
        ext="${base##*.}"
        n=1

        while [[ -e "$ROOT/${name}_$n.$ext" ]]; do
            ((n++))
        done

        target="$ROOT/${name}_$n.$ext"
        echo "[RENAME] Collision: $base -> $(basename "$target")"
        ((renamed+=1))
    fi

    echo "[MOVE] $file"
    mv "$file" "$target"
    ((moved+=1))
done

echo
echo "Removing empty directories..."
find "$ROOT" -mindepth 1 -depth -type d -empty -print -delete

echo
echo "Done."
echo "Moved files: $moved"
echo "Renamed files due to collisions: $renamed"
