-- =========================================================
-- MESAVAULT PostgreSQL governance baseline
-- Fase 1: creación de schemas sin mover tablas existentes
-- =========================================================

CREATE SCHEMA IF NOT EXISTS mv_core;
CREATE SCHEMA IF NOT EXISTS mv_raw;
CREATE SCHEMA IF NOT EXISTS mv_observability;

CREATE SCHEMA IF NOT EXISTS mv_edge_oee_ucepsa_demo;
CREATE SCHEMA IF NOT EXISTS mv_reports_ucepsa_demo;

CREATE SCHEMA IF NOT EXISTS mv_hydro_lab;
CREATE SCHEMA IF NOT EXISTS mv_weather_lab;

CREATE SCHEMA IF NOT EXISTS mv_sandbox;

COMMENT ON SCHEMA mv_core IS
'Catálogos comunes MESAVAULT: tenants, sites, assets, verticales, máquinas y metadatos compartidos.';

COMMENT ON SCHEMA mv_raw IS
'Capa raw: datos crudos de entrada, mensajes MQTT, eventos sin normalizar y dead letters. No debe ser consultada directamente por dashboards cliente.';

COMMENT ON SCHEMA mv_observability IS
'Observabilidad interna: salud de servicios, ingesta, latencias, errores y checks.';

COMMENT ON SCHEMA mv_edge_oee_ucepsa_demo IS
'Capa normalizada de la demo Edge-OEE UCEPSA. Inicialmente contiene vistas puente hacia mv_hot.';

COMMENT ON SCHEMA mv_reports_ucepsa_demo IS
'Capa de reporting para Grafana UCEPSA demo. Grafana debe consultar preferentemente este schema.';

COMMENT ON SCHEMA mv_hydro_lab IS
'Capa normalizada de laboratorio Hydro / Aquaponics.';

COMMENT ON SCHEMA mv_weather_lab IS
'Capa meteorológica de laboratorio.';

COMMENT ON SCHEMA mv_sandbox IS
'Zona temporal de pruebas. No usar para dashboards cliente ni datos productivos.';

-- Endurecimiento básico del schema public
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
