/** * portal/domains/model.mjs — 도메인 영역 세부 표(중심 표 domains 는 portal/core/model.mjs). * domain_checks 확인 기록(소유·DNS·인증서·외부 접속)의 시계열 — 반복 실패·만료 표시(§30.1) * domains 표에 확인 결과 세부(dns_detail_json)·인증서 실패 사유·외부 확인 결과 열을 더한다. */ export const MIGRATIONS = [{ id: 'domains_0001', sql: ` CREATE TABLE IF NOT EXISTS domain_checks (id TEXT PRIMARY KEY, domain_id TEXT NOT NULL, kind TEXT NOT NULL, ok INTEGER NOT NULL, detail_json TEXT, checked_at TEXT NOT NULL); CREATE INDEX IF NOT EXISTS domain_checks_domain ON domain_checks(domain_id, checked_at); ALTER TABLE domains ADD COLUMN dns_detail_json TEXT; ALTER TABLE domains ADD COLUMN cert_error TEXT; ALTER TABLE domains ADD COLUMN external_check_json TEXT; ALTER TABLE domains ADD COLUMN expected_ip TEXT; ALTER TABLE domains ADD COLUMN redirect_from TEXT; ALTER TABLE domains ADD COLUMN created_by TEXT; ` }];