<?php
$bitrix = is_array($crm_connection ?? null) ? $crm_connection : array();
$amo = is_array($amo_connection ?? null) ? $amo_connection : array();
$retail = is_array($retailcrm_connection ?? null) ? $retailcrm_connection : array();
$bitrix_enabled = ($bitrix['status'] ?? '') === 'active';
$amo_enabled = ($amo['status'] ?? '') === 'active';
$retail_enabled = ($retail['status'] ?? '') === 'active';
$mode = ($bitrix['entity_mode'] ?? 'lead') === 'deal' ? 'deal' : 'lead';
$amo_fields_ready = !empty($amo['field_mapping']['origin_field_id']) && !empty($amo['field_mapping']['dialog_field_id']) && !empty($amo['field_mapping']['source_field_id']);
?>
<?php echo easychat_style_tag('css/views/crm_integration.css'); ?>
<main class="card border-0 shadow-sm rounded-4 p-4 easychat-crm" aria-labelledby="crm-title">
    <header class="easychat-crm__header">
        <div>
            <h1 id="crm-title" class="h4 fw-bold text-dark mb-1">CRM</h1>
            <p class="text-muted small mb-0">Передавайте новые обращения в отдел продаж.</p>
        </div>
    </header>

    <nav class="easychat-crm__tabs" role="tablist" aria-label="CRM-система">
        <button class="easychat-crm__tab is-active" type="button" role="tab" aria-selected="true" aria-controls="crm-bitrix24" id="crm-tab-bitrix24" data-crm-tab="bitrix24">
            <img src="assets/channels/bitrix24.svg" width="104" height="29" alt="Битрикс24">
            <span class="easychat-crm__tab-state"><?php echo $bitrix_enabled ? 'Включено' : 'Выключено'; ?></span>
        </button>
        <button class="easychat-crm__tab" type="button" role="tab" aria-selected="false" aria-controls="crm-amocrm" id="crm-tab-amocrm" data-crm-tab="amocrm" tabindex="-1">
            <img src="assets/channels/amocrm.svg" width="112" height="28" alt="amoCRM">
            <span class="easychat-crm__tab-state"><?php echo $amo_enabled ? 'Включено' : 'Выключено'; ?></span>
        </button>
        <button class="easychat-crm__tab" type="button" role="tab" aria-selected="false" aria-controls="crm-retailcrm" id="crm-tab-retailcrm" data-crm-tab="retailcrm" tabindex="-1">
            <img src="assets/channels/retailcrm.svg" width="132" height="24" alt="RetailCRM">
            <span class="easychat-crm__tab-state"><?php echo $retail_enabled ? 'Включено' : 'Выключено'; ?></span>
        </button>
    </nav>

    <div id="crm-status" class="alert d-none" role="status" aria-live="polite" tabindex="-1"></div>

    <section id="crm-bitrix24" role="tabpanel" aria-labelledby="crm-tab-bitrix24" data-crm-panel="bitrix24">
        <form class="easychat-crm__form" autocomplete="off" data-crm-form="bitrix24">
            <input type="hidden" name="provider" value="bitrix24">
            <input type="hidden" name="nonce" value="<?php echo htmlspecialchars($crm_nonce, ENT_QUOTES, 'UTF-8'); ?>">
            <div class="easychat-crm__provider">
                <div class="easychat-crm__provider-copy">
                    <h2 class="h6 fw-semibold mb-0">Новые обращения</h2>
                    <p class="small text-muted mb-0">Создавайте лиды или сделки. Следующие сообщения продолжат ту же карточку.</p>
                </div>
                <div class="form-check form-switch easychat-crm__switch">
                    <input class="form-check-input easychat-switch-lg" type="checkbox" role="switch" id="crm-bitrix-enabled" name="enabled" value="1" <?php echo $bitrix_enabled ? 'checked' : ''; ?>>
                    <label class="visually-hidden" for="crm-bitrix-enabled">Передавать обращения в Битрикс24</label>
                </div>
            </div>
            <div class="row g-3 mt-1">
                <div class="col-12">
                    <label class="form-label fw-semibold" for="crm-webhook">Входящий вебхук</label>
                    <input class="form-control" id="crm-webhook" name="webhook_url" type="password" inputmode="url" autocomplete="new-password" placeholder="<?php echo $crm_webhook_mask ? htmlspecialchars($crm_webhook_mask, ENT_QUOTES, 'UTF-8') : 'https://ваш-портал.bitrix24.ru/rest/1/код'; ?>" aria-describedby="crm-webhook-help">
                    <div id="crm-webhook-help" class="form-text">Дайте вебхуку права только на CRM. Пустое поле сохраняет текущий адрес.</div>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-mode">Что создавать</label>
                    <select class="form-select" id="crm-mode" name="entity_mode">
                        <option value="lead" <?php echo $mode === 'lead' ? 'selected' : ''; ?>>Лид</option>
                        <option value="deal" <?php echo $mode === 'deal' ? 'selected' : ''; ?>>Сделку</option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-bitrix-responsible">ID ответственного</label>
                    <input class="form-control" id="crm-bitrix-responsible" name="responsible_id" type="number" min="0" step="1" value="<?php echo (int)($bitrix['responsible_id'] ?? 0); ?>" aria-describedby="crm-bitrix-responsible-help">
                    <div id="crm-bitrix-responsible-help" class="form-text">0 — использовать правила Битрикс24.</div>
                </div>
            </div>
            <div class="easychat-crm__actions">
                <button class="btn btn-primary" type="submit" data-crm-save>Сохранить</button>
                <button class="btn btn-outline-secondary" type="button" data-crm-test <?php echo empty($bitrix) ? 'disabled' : ''; ?>>Проверить подключение</button>
            </div>
        </form>
    </section>

    <section id="crm-amocrm" role="tabpanel" aria-labelledby="crm-tab-amocrm" data-crm-panel="amocrm" hidden>
        <form class="easychat-crm__form" autocomplete="off" data-crm-form="amocrm">
            <input type="hidden" name="provider" value="amocrm">
            <input type="hidden" name="nonce" value="<?php echo htmlspecialchars($crm_nonce, ENT_QUOTES, 'UTF-8'); ?>">
            <div class="easychat-crm__provider">
                <div class="easychat-crm__provider-copy">
                    <h2 class="h6 fw-semibold mb-0">Новые обращения</h2>
                    <p class="small text-muted mb-0">Создавайте сделки в выбранной воронке и добавляйте сообщения как примечания.</p>
                </div>
                <div class="form-check form-switch easychat-crm__switch">
                    <input class="form-check-input easychat-switch-lg" type="checkbox" role="switch" id="crm-amo-enabled" name="enabled" value="1" <?php echo $amo_enabled ? 'checked' : ''; ?>>
                    <label class="visually-hidden" for="crm-amo-enabled">Передавать обращения в amoCRM</label>
                </div>
            </div>
            <div class="easychat-crm__notice" role="note">
                Используйте долгосрочный токен с доступом к данным аккаунта. Он хранится зашифрованно и после сохранения не показывается.
            </div>
            <div class="row g-3">
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-amo-domain">Домен аккаунта</label>
                    <input class="form-control" id="crm-amo-domain" name="base_domain" type="text" inputmode="url" autocomplete="off" value="<?php echo htmlspecialchars((string)($amo['base_domain'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="company.amocrm.ru">
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-amo-token">Долгосрочный токен</label>
                    <input class="form-control" id="crm-amo-token" name="access_token" type="password" autocomplete="new-password" placeholder="<?php echo $amo_token_mask ? htmlspecialchars($amo_token_mask, ENT_QUOTES, 'UTF-8') : 'Вставьте токен amoCRM'; ?>">
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-amo-pipeline">Воронка</label>
                    <select class="form-select" id="crm-amo-pipeline" name="pipeline_id" data-amo-pipeline>
                        <option value="<?php echo (int)($amo['pipeline_id'] ?? 0); ?>"><?php echo !empty($amo['pipeline_id']) ? 'Сохранённая воронка #' . (int)$amo['pipeline_id'] : 'Сначала проверьте подключение'; ?></option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-amo-stage">Начальная стадия</label>
                    <select class="form-select" id="crm-amo-stage" name="status_id" data-amo-stage>
                        <option value="<?php echo (int)($amo['status_id'] ?? 0); ?>"><?php echo !empty($amo['status_id']) ? 'Сохранённая стадия #' . (int)$amo['status_id'] : 'Выберите воронку'; ?></option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-amo-responsible">ID ответственного</label>
                    <input class="form-control" id="crm-amo-responsible" name="responsible_id" type="number" min="0" step="1" value="<?php echo (int)($amo['responsible_id'] ?? 0); ?>" aria-describedby="crm-amo-responsible-help">
                    <div id="crm-amo-responsible-help" class="form-text">0 — использовать правила amoCRM.</div>
                </div>
                <div class="col-md-6 easychat-crm__field-state">
                    <span class="form-label fw-semibold">Поля EasyChat</span>
                    <span class="easychat-crm__readiness <?php echo $amo_fields_ready ? 'is-ready' : ''; ?>" data-amo-fields-state><?php echo $amo_fields_ready ? 'Готовы' : 'Не подготовлены'; ?></span>
                </div>
            </div>
            <details class="easychat-crm__advanced">
                <summary>Дополнительные настройки</summary>
                <div class="form-check mt-3">
                    <input class="form-check-input" type="checkbox" id="crm-amo-digital" name="trigger_digital_pipeline" value="1" <?php echo !empty($amo['trigger_digital_pipeline']) ? 'checked' : ''; ?>>
                    <label class="form-check-label" for="crm-amo-digital">Запускать Digital Pipeline для каждого нового сообщения</label>
                    <div class="form-text">Обычно выключено, чтобы одно сообщение не запускало роботов повторно.</div>
                </div>
            </details>
            <div class="easychat-crm__actions">
                <button class="btn btn-primary" type="submit" data-crm-save>Сохранить</button>
                <button class="btn btn-outline-secondary" type="button" data-crm-test <?php echo empty($amo) ? 'disabled' : ''; ?>>Проверить и загрузить воронки</button>
                <button class="btn btn-outline-secondary" type="button" data-amo-prepare <?php echo empty($amo) ? 'disabled' : ''; ?>>Подготовить поля</button>
            </div>
        </form>
    </section>

    <section id="crm-retailcrm" role="tabpanel" aria-labelledby="crm-tab-retailcrm" data-crm-panel="retailcrm" hidden>
        <form class="easychat-crm__form" autocomplete="off" data-crm-form="retailcrm">
            <input type="hidden" name="provider" value="retailcrm">
            <input type="hidden" name="nonce" value="<?php echo htmlspecialchars($crm_nonce, ENT_QUOTES, 'UTF-8'); ?>">
            <div class="easychat-crm__provider">
                <div class="easychat-crm__provider-copy">
                    <h2 class="h6 fw-semibold mb-0">Клиенты и заказы</h2>
                    <p class="small text-muted mb-0">Создавайте одного клиента на диалог и, при необходимости, заказ. Новые сообщения сохраняются заметками клиента.</p>
                </div>
                <div class="form-check form-switch easychat-crm__switch">
                    <input class="form-check-input easychat-switch-lg" type="checkbox" role="switch" id="crm-retail-enabled" name="enabled" value="1" <?php echo $retail_enabled ? 'checked' : ''; ?>>
                    <label class="visually-hidden" for="crm-retail-enabled">Передавать обращения в RetailCRM</label>
                </div>
            </div>
            <div class="easychat-crm__notice" role="note">API-ключ хранится зашифрованно. Выдайте ему только чтение справочника магазинов и права на клиентов, заметки и, если выбран заказ, заказы.</div>
            <div class="row g-3">
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-retail-domain">Домен аккаунта</label>
                    <input class="form-control" id="crm-retail-domain" name="base_domain" type="text" inputmode="url" autocomplete="off" value="<?php echo htmlspecialchars((string)($retail['base_domain'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="company.retailcrm.ru">
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-retail-key">API-ключ</label>
                    <input class="form-control" id="crm-retail-key" name="api_key" type="password" autocomplete="new-password" placeholder="<?php echo $retailcrm_key_mask ? htmlspecialchars($retailcrm_key_mask, ENT_QUOTES, 'UTF-8') : 'Вставьте API-ключ RetailCRM'; ?>">
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-retail-site">Магазин</label>
                    <input class="form-control" id="crm-retail-site" name="site" list="crm-retail-sites" value="<?php echo htmlspecialchars((string)($retail['site'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="main">
                    <datalist id="crm-retail-sites" data-retail-sites></datalist>
                    <div class="form-text">После первого сохранения нажмите «Проверить», чтобы загрузить доступные магазины.</div>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-retail-mode">Что создавать</label>
                    <select class="form-select" id="crm-retail-mode" name="entity_mode" data-retail-mode>
                        <option value="customer" <?php echo ($retail['entity_mode'] ?? 'customer') !== 'order' ? 'selected' : ''; ?>>Клиента</option>
                        <option value="order" <?php echo ($retail['entity_mode'] ?? '') === 'order' ? 'selected' : ''; ?>>Клиента и заказ</option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label class="form-label fw-semibold" for="crm-retail-responsible">ID ответственного</label>
                    <input class="form-control" id="crm-retail-responsible" name="responsible_id" type="number" min="0" step="1" value="<?php echo (int)($retail['responsible_id'] ?? 0); ?>">
                    <div class="form-text">0 — RetailCRM назначит менеджера по своим правилам.</div>
                </div>
            </div>
            <details class="easychat-crm__advanced" data-retail-order-settings>
                <summary>Настройки заказа</summary>
                <div class="row g-3 mt-1">
                    <div class="col-md-4"><label class="form-label fw-semibold" for="crm-retail-method">Способ оформления</label><input class="form-control" id="crm-retail-method" name="order_method" value="<?php echo htmlspecialchars((string)($retail['order_method'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="easychat"></div>
                    <div class="col-md-4"><label class="form-label fw-semibold" for="crm-retail-type">Тип заказа</label><input class="form-control" id="crm-retail-type" name="order_type" value="<?php echo htmlspecialchars((string)($retail['order_type'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="eshop-individual"></div>
                    <div class="col-md-4"><label class="form-label fw-semibold" for="crm-retail-status">Начальный статус</label><input class="form-control" id="crm-retail-status" name="order_status" value="<?php echo htmlspecialchars((string)($retail['order_status'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>" placeholder="new"></div>
                </div>
            </details>
            <div class="easychat-crm__actions">
                <button class="btn btn-primary" type="submit" data-crm-save>Сохранить</button>
                <button class="btn btn-outline-secondary" type="button" data-crm-test <?php echo empty($retail) ? 'disabled' : ''; ?>>Проверить и загрузить магазины</button>
            </div>
        </form>
    </section>
</main>
<?php echo easychat_script_tag('js/views/crm_integration.js'); ?>
