# Caddy-фрагмент: tradein-mvp под gendsgn.ru/trade-in/*
#
# Этот блок ВКЛЮЧАЕТСЯ в основной gendsgn.ru { ... } блок Caddy
# (см. /opt/gendesign/Caddyfile на bot-server). Размещение — ПЕРЕД
# универсальным `handle { reverse_proxy frontend:3000 }`, потому что
# Caddy матчит handle-блоки сверху вниз.
#
# DNS — отдельный record НЕ нужен; используется тот же gendsgn.ru.
# TLS уже включён в основном блоке (auto через Let's Encrypt).
#
# URL routes:
#   gendsgn.ru/trade-in           → tradein-frontend:3000 (Next.js basePath=/trade-in)
#   gendsgn.ru/trade-in/api/v1/*  → tradein-backend:8000  (strip префикса /trade-in)

handle_path /trade-in/api/* {
    # handle_path вырезает префикс /trade-in перед прокси →
    # FastAPI получает /api/v1/...
    #
    # #2233: первый рубеж против OOM на фото-аплоаде — режем тело >12MB на
    # уровне Caddy (backend капит на 10MB чанково, см. upload_photo). Scoped
    # ТОЛЬКО на /trade-in/api/* — не трогает фронт/остальной сайт.
    request_body {
        max_size 12MB
    }
    reverse_proxy tradein-backend:8000
}

handle /trade-in {
    redir /trade-in/ permanent
}

handle /trade-in/* {
    # Next.js basePath="/trade-in" — фронт сам ждёт префикса в URL
    reverse_proxy tradein-frontend:3000
}
