-- F29: estado persistente de cercas en modo observación.
-- Ejecutar una sola vez, después de 04_f29_comandos_preparacion.sql.

CREATE TABLE IF NOT EXISTS cerca_virtual_estado_f29 (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  teid VARCHAR(32) NOT NULL,
  potrero_id INT NOT NULL,
  estado ENUM('SIN_ESTADO','DENTRO','FUERA','SIN_POSICION','SIN_POLIGONO') NOT NULL DEFAULT 'SIN_ESTADO',
  inside TINYINT(1) NOT NULL DEFAULT 0,
  last_lat DECIMAL(10,7) NULL,
  last_lon DECIMAL(10,7) NULL,
  last_position_at DATETIME NULL,
  last_event_id BIGINT NULL,
  last_order_id BIGINT UNSIGNED NULL,
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY uq_f29_estado_teid_potrero (teid,potrero_id),
  KEY idx_f29_estado_estado (estado),
  KEY idx_f29_estado_updated (updated_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Toda cerca queda explícitamente en observación. No se transmiten impulsos.
UPDATE cerca_virtual_config
SET modo='observacion', updated_at=CURRENT_TIMESTAMP
WHERE activa=1;
