/*
 * Gradle-задачи для утилитного деплоя UI Shine Payments.
 *
 * Куда деплоим файлы UI:
 *   /home/player/sites/test-solana-tickets.shineup.me
 *
 * Где расположен Caddy-конфиг на сервере:
 *   /home/player/SHiNE/caddy/Caddyfile
 *
 * По каким URL должен работать UI:
 *   https://test-solana-tickets.shineup.me
 *   https://test-solana-tickets.shiningpeople.ru
 *
 * Это временные тестовые сайты для сценариев `shine_payments`:
 * покупка билетов, выдача лимитов менеджеру, ручное добавление билетов и пошаговые выплаты.
 *
 * Для SSH/deploy использовать доменное имя `shineup.me`, а не фиксированный IP:
 * целевой адрес должен разрешаться через DNS на момент деплоя.
 */

tasks.register("deployUi", Exec) {
    group = "deploy"
    description = "Деплой HTML UI Shine Payments на player@shineup.me в /home/player/sites/test-solana-tickets.shineup.me (URL: test-solana-tickets.shineup.me, test-solana-tickets.shiningpeople.ru)"

    // Источник локальных UI-страниц:
    // shine/programs/shine_payments/web/
    def localUiDir = "${projectDir}/programs/shine_payments/web/"

    // Целевая директория на сервере:
    // /home/player/sites/test-solana-tickets.shineup.me
    def remoteTarget = "player@shineup.me:/home/player/sites/test-solana-tickets.shineup.me/"

    commandLine "rsync", "-av", "--delete", localUiDir, remoteTarget
}

tasks.register("checkUiRemote", Exec) {
    group = "deploy"
    description = "Проверка на сервере: Caddy-конфиг и наличие новых Program ID в UI"

    commandLine "ssh", "-o", "StrictHostKeyChecking=no", "player@shineup.me",
            "set -e; " +
            "echo 'Caddy file:'; " +
            "ls -la /home/player/SHiNE/caddy/Caddyfile; " +
            "echo; " +
            "echo 'Домены в Caddy:'; " +
            "grep -n 'test-solana-tickets.shineup.me\\|test-solana-tickets.shiningpeople.ru' /home/player/SHiNE/caddy/Caddyfile; " +
            "echo; " +
            "echo 'Program ID в загруженных html:'; " +
            "grep -R -n 'c4yTa4JT9EtQDCBX9LmWFK6T2gp4JGsuymFbom2EudW' /home/player/sites/test-solana-tickets.shineup.me/*.html"
}
