#!/bin/bash
# gen_bumpers.sh — Generate transition bumper videos for block boundaries
#
# Outputs 1280x720 H.264 MP4s into videos/bumpers/.
# Silent audio track (replace with a music file via MUSIC= if desired).
#
# Usage:
#   ./gen_bumpers.sh            # skip existing bumpers
#   ./gen_bumpers.sh --force    # regenerate all

set -e

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
BASE_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
OUT_DIR="$BASE_DIR/videos/bumpers"

FONT_EN="/usr/share/fonts/truetype/noto/NotoSans-Bold.ttf"
FONT_AR="/usr/share/fonts/truetype/noto/NotoSansArabic-Bold.ttf"
FONT_AR_REG="/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf"

FORCE=0
[ "$1" = "--force" ] && FORCE=1

mkdir -p "$OUT_DIR"

# ── Helpers ───────────────────────────────────────────────────────────────────

need_generate() {
    local file="$1"
    [ "$FORCE" = "1" ] && return 0
    [ ! -f "$file" ] && return 0
    return 1
}

ok()   { echo "  OK   $(basename "$1")"; }
skip() { echo "  SKIP $(basename "$1")  (exists, use --force to overwrite)"; }

# ── Bumper 1: Branded slate ───────────────────────────────────────────────────
# Dark navy background, church name in English + Arabic, dots accent, 15s
OUT="$OUT_DIR/bumper-brand.mp4"
if need_generate "$OUT"; then
    ffmpeg -y \
      -f lavfi -i "color=c=0x0a0a1a:s=1280x720:r=25,format=yuv420p" \
      -f lavfi -i "anullsrc=channel_layout=stereo:sample_rate=44100" \
      -filter_complex "
        [0]
        drawtext=fontfile=$FONT_EN:text='Arabic Bible Christian Church':fontcolor=white:fontsize=52:x=(w-text_w)/2:y=(h-text_h)/2-60:alpha='if(lt(t,1),t,if(gt(t,14),15-t,1))':shadowcolor=black:shadowx=2:shadowy=2,
        drawtext=fontfile=$FONT_AR:text='الكنيسة العربية المسيحية الكتابية':fontcolor=0xccccff:fontsize=44:x=(w-text_w)/2:y=(h-text_h)/2+20:alpha='if(lt(t,1),t,if(gt(t,14),15-t,1))',
        drawtext=fontfile=$FONT_EN:text='in Long Beach\, California':fontcolor=0x8899bb:fontsize=30:x=(w-text_w)/2:y=(h-text_h)/2+90:alpha='if(lt(t,1.5),t/1.5,if(gt(t,14),15-t,1))',
        drawtext=fontfile=$FONT_EN:text='.  .  .':fontcolor=0x6699ff:fontsize=48:x=(w-text_w)/2:y=(h-text_h)/2+140:alpha='if(lt(t,2),0,if(lt(t,3),t-2,if(gt(t,14),15-t,1)))'
        [v];
        [1]afade=t=out:st=13:d=2[a]
      " \
      -map "[v]" -map "[a]" \
      -t 15 -c:v libx264 -preset fast -crf 22 -c:a aac -b:a 64k \
      "$OUT" 2>/dev/null
    ok "$OUT"
else
    skip "$OUT"
fi

# ── Bumper 2: Coming Up Next ──────────────────────────────────────────────────
# Warm dark background, gold text EN + AR, gold divider line, 11s
OUT="$OUT_DIR/bumper-coming-up.mp4"
if need_generate "$OUT"; then
    ffmpeg -y \
      -f lavfi -i "color=c=0x12100a:s=1280x720:r=25,format=yuv420p" \
      -f lavfi -i "anullsrc=channel_layout=stereo:sample_rate=44100" \
      -filter_complex "
        [0]
        drawtext=fontfile=$FONT_EN:text='Coming Up Next':fontcolor=0xf5c842:fontsize=62:x=(w-text_w)/2:y=(h-text_h)/2-80:alpha='if(lt(t,1.5),t/1.5,if(gt(t,9),1-(t-9)/1.5,1))':shadowcolor=black:shadowx=3:shadowy=3,
        drawtext=fontfile=$FONT_AR:text='يأتي بعد ذلك':fontcolor=0xf5c842:fontsize=48:x=(w-text_w)/2:y=(h-text_h)/2:alpha='if(lt(t,1.5),t/1.5,if(gt(t,9),1-(t-9)/1.5,1))',
        drawbox=x=240:y=ih/2+80:w=800:h=4:color=0xf5c842@0.6:t=fill
        [v];
        [1]afade=t=out:st=9:d=1.5[a]
      " \
      -map "[v]" -map "[a]" \
      -t 11 -c:v libx264 -preset fast -crf 22 -c:a aac -b:a 64k \
      "$OUT" 2>/dev/null
    ok "$OUT"
else
    skip "$OUT"
fi

# ── Bumper 3: Stay Tuned ─────────────────────────────────────────────────────
# Deep blue, cross graphic, EN + AR text, ABCC Media footer, 12s
OUT="$OUT_DIR/bumper-stay-tuned.mp4"
if need_generate "$OUT"; then
    ffmpeg -y \
      -f lavfi -i "color=c=0x08101e:s=1280x720:r=25,format=yuv420p" \
      -f lavfi -i "anullsrc=channel_layout=stereo:sample_rate=44100" \
      -filter_complex "
        [0]
        drawbox=x=iw/2-3:y=iw/4-60:w=6:h=120:color=0x336699@0.8:t=fill,
        drawbox=x=iw/2-50:y=iw/4-10:w=100:h=6:color=0x336699@0.8:t=fill,
        drawtext=fontfile=$FONT_EN:text='Stay Tuned':fontcolor=white:fontsize=58:x=(w-text_w)/2:y=(h-text_h)/2+60:alpha='if(lt(t,1),t,if(gt(t,11),12-t,1))':shadowcolor=0x336699:shadowx=2:shadowy=2,
        drawtext=fontfile=$FONT_AR_REG:text='ابقوا معنا':fontcolor=0x99bbdd:fontsize=42:x=(w-text_w)/2:y=(h-text_h)/2+130:alpha='if(lt(t,1.5),t/1.5,if(gt(t,11),12-t,1))',
        drawtext=fontfile=$FONT_EN:text='ABCC Media':fontcolor=0x336699:fontsize=28:x=(w-text_w)/2:y=h-80:alpha='if(lt(t,2),t/2,if(gt(t,11),12-t,1))'
        [v];
        [1]afade=t=out:st=11:d=1[a]
      " \
      -map "[v]" -map "[a]" \
      -t 12 -c:v libx264 -preset fast -crf 22 -c:a aac -b:a 64k \
      "$OUT" 2>/dev/null
    ok "$OUT"
else
    skip "$OUT"
fi

echo ""
echo "Done. Bumpers in: $OUT_DIR"
echo "Tip: set MUSIC=/path/to/audio.mp3 and add -i \"\$MUSIC\" to mix in background music."
