-- Migration 011 — CREATE TABLE `agente_usuario_vinculo`
-- PRD: docs/PRDs/PRD-0002-modelo-agente/PRD-0002-modelo-agente.md
-- ADR: docs/ADRs/ADR-0003-autenticacao-agente-externo.md
-- Card: AUTH#2 (roadmap) — Passo 0 (parte A)
-- Data: 07/05/2026
--
-- Tabela de juncao entre `tbl_Usuario` (idUsuario) e `tbl_Representante`
-- (cod_Representante onde idNatureza=3). Decisao D5 do AUTH#2: nao reutilizar
-- `tbl_Usuario.idRevenda`, manter vinculo Agente em tabela separada.
--
-- Sem FK fisica para nao acoplar com tabelas legacy do newportaltefnet —
-- integridade garantida em codigo (controller de cadastro de usuario).
--
-- ESCOPO: tabela satelite — nao toca nada do newportaltefnet.

CREATE TABLE `agente_usuario_vinculo` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `id_usuario` INT NOT NULL COMMENT '[satelite:agente] FK soft -> tbl_Usuario.idUsuario (tpUser=Agente)',
  `cod_Representante` INT NOT NULL COMMENT '[satelite:agente] FK soft -> tbl_Representante.id (idNatureza=3)',
  `criado_em` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `criado_por` INT NULL COMMENT '[satelite:agente] FK soft -> tbl_Usuario.idUsuario do admin que cadastrou',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_agente_uv_id_usuario` (`id_usuario`),
  KEY `idx_agente_uv_cod_repr` (`cod_Representante`),
  KEY `idx_agente_uv_criado_em` (`criado_em`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='[satelite:agente] AUTH#2 - vinculo entre usuario do tpUser=Agente e revenda agente em tbl_Representante';
