Files
dtic-DIIAA/adn/tools/cli/inicio.rb
T

62 lines
1.9 KiB
Ruby

# frozen_string_literal: true
# adn/tools/cli/inicio.rb — Subcomando para inicio de jornada laboral (DB-First)
# ==============================================================================
require 'date'
require 'time'
require_relative '../db/core/bitacora_db'
module ADN
class SubcomandoInicio
require_relative '../core/colores'
def initialize(args, logger)
@args = args
@logger = logger
@fecha = Date.today
end
def ejecutar
if @args.empty? || !(@args.include?('jornada'))
puts "#{Color::YELLOW}Uso: ./adn/tools/run inicio de jornada [presencial|remoto]#{Color::RESET}"
return
end
modo = @args.include?('presencial') ? 'P' : 'R'
tipo_str = modo == 'P' ? 'Presencial' : 'Remoto'
hora_ini = Time.now.strftime('%H:%M')
@logger.info("Iniciando jornada #{tipo_str} (Modo DB-First)")
BitacorasDB::BitacoraDB.with_connection do |db|
# 1. Asegurar que existe la bitácora
bitacora = db.find_bitacora_by_fecha(@fecha)
unless bitacora
@logger.info("Creando bitácora en DB para hoy...")
bitacora = db.create_bitacora(fecha: @fecha)
end
# 2. Obtener nodo srv-ns8
nodo = db.find_nodo_by_nombre('srv-ns8')
unless nodo
@logger.warn("Nodo 'srv-ns8' no encontrado, usando nodo general...")
# Podríamos crearlo o buscar uno por defecto
end
# 3. Crear entrada de inicio
db.create_entrada(
inicio: hora_ini,
descripcion: "Inicio de jornada #{tipo_str.downcase}. Sincronización de contexto y revisión de tareas.",
estado: '👁️',
modo: modo,
bitacora_id: bitacora['id'],
nodo_id: nodo ? nodo['id'] : nil
)
@logger.exito("Entrada de inicio creada en Base de Datos.")
end
end
end
end