'use strict';

/**
 * Shared JSDoc type definitions for dbschema validator pipeline.
 *
 * The validator pipeline emits an array of Issue objects instead of throwing.
 * Each Issue is a structured record consumed by the reporter (human + JSON).
 *
 * @typedef {Object} Issue
 * @property {'error' | 'warning'} severity
 * @property {string} code               Machine-readable rule identifier (kebab-case).
 * @property {string} message            Human-readable message (English).
 * @property {string} [file]             Absolute path to schema file (when available).
 * @property {string} [table]            Qualified table name (e.g. 'inventory.product').
 * @property {string} [field]            Field name (when issue is field-scoped).
 * @property {string} [relation]         Relation name (when issue is relation-scoped).
 */

/**
 * JSON output report shape, stable contract for MCP / CI / LSP consumers.
 *
 * @typedef {Object} JsonReport
 * @property {string} schemaVersion          Report schema version (e.g. '1.0').
 * @property {ReportSummary} summary
 * @property {Issue[]} issues
 *
 * @typedef {Object} ReportSummary
 * @property {number} modelsLoaded
 * @property {number} errorCount
 * @property {number} warningCount
 */

module.exports = {};
