# =============================================================================
# .squawk.toml — конфигурация squawk (Прил. Н #15) для Лидерры
# =============================================================================
# Документация: https://squawkhq.com/docs/configuration
# Инструмент: линтер миграций PostgreSQL
# Применяется автоматически при запуске `squawk` без явного --config
# =============================================================================
#
# Стратегия проекта (Прил. Н v1.6, §10.3):
#
# 1. Этот конфиг тихо обрабатывает `db/schema.sql` (initial bootstrap, не миграция).
#    Поэтому отключены:
#      • правила безопасной миграции (require-timeout-settings, prefer-robust-stmts,
#        require-concurrent-index-creation, constraint-missing-not-valid,
#        adding-foreign-key-constraint) — нерелевантны для initial bootstrap
#        (заливается на пустую БД при `db:reset`).
#      • дизайнные предпочтения (prefer-identity, prefer-text-field,
#        prefer-bigint-over-int, prefer-bigint-over-smallint) —
#        в проекте сознательно используются BIGSERIAL и VARCHAR(N) с длинами
#        для UI-валидации; SMALLINT для денормализованных status_code.
#
# 2. Для будущих **Laravel-миграций** в `app/database/migrations/*.sql`
#    создавать локальный `.squawk.toml` рядом или запускать squawk без
#    `--exclude`, чтобы получить полную проверку лайв-миграции.
# =============================================================================

excluded_paths = [
    "db/00_create_roles.sql",  # psql client-side variables (:'name') не парсятся libpg_query
]

excluded_rules = [
    # --- Bootstrap-неприменимые ---------------------------------------------
    "require-timeout-settings",         # initial setup, не run-time миграция
    "prefer-robust-stmts",              # IF NOT EXISTS не нужен на пустой БД
    "require-concurrent-index-creation", # нет конкурирующих подключений
    "constraint-missing-not-valid",     # initial CREATE, не ADD CONSTRAINT
    "adding-foreign-key-constraint",    # initial CREATE с FK inline

    # --- Дизайнные решения проекта ------------------------------------------
    "prefer-identity",                  # BIGSERIAL по консистентности (см. §6.4)
    "prefer-text-field",                # VARCHAR(N) для UI-валидации длин
    "prefer-bigint-over-int",           # INT для счётчиков с лимитом
    "prefer-bigint-over-smallint",      # SMALLINT для status_code (денорм.)
]
