<?php

declare(strict_types=1);

return [
    // Логины nginx HTTP Basic Auth (.htpasswd-admin), допущенные в saas-admin зону.
    // CSV из env; дефолт совпадает с прод-.htpasswd (единственный логин — admin).
    'basic_auth_allowlist' => array_values(array_filter(array_map(
        'trim',
        explode(',', (string) env('ADMIN_ALLOWED_USERS', 'admin')),
    ))),

    // Включение fail-closed гейта. В local/testing — выкл (nginx нет, тесты
    // аутентифицируются иначе); на проде/staging — вкл. Только env() — config
    // грузится до готовности контейнера, app()->environment() здесь падает.
    'basic_auth_gate' => (bool) env(
        'ADMIN_GATE_ENFORCED',
        ! in_array(env('APP_ENV', 'production'), ['local', 'testing'], true),
    ),

    // Системный saas_admin_users.id для audit-trail admin-действий (FK
    // saas_admin_audit_log.admin_user_id). На проде рантайм-роль crm_app_user НЕ
    // имеет прав на saas_admin_users (админ-креды изолированы) → задаём id здесь,
    // чтобы не обращаться к таблице. null (dev/test, суперюзер) → fallback на
    // авто-создание стаба. На проде — ADMIN_AUDIT_SYSTEM_USER_ID=1 (сид-стаб).
    'audit_system_user_id' => env('ADMIN_AUDIT_SYSTEM_USER_ID') !== null
        ? (int) env('ADMIN_AUDIT_SYSTEM_USER_ID')
        : null,
];
