package infra

// DockerLogsOpts parametriza la peticion de logs al engine API de Docker.
type DockerLogsOpts struct {
	// ContainerID es el ID o nombre del contenedor.
	ContainerID string
	// Tail es el numero de ultimas lineas a devolver. -1 = todas. Default efectivo 100 si es 0.
	Tail int
	// Since filtra logs desde este instante. Acepta unix timestamp ("1716400000") o duracion ("10m", "1h").
	Since string
	// Stdout incluye el stream stdout (default true si ambos son false).
	Stdout bool
	// Stderr incluye el stream stderr (default true si ambos son false).
	Stderr bool
	// Timestamps incluye el timestamp RFC3339 de cada linea en el campo Line prefijado por Docker.
	Timestamps bool
	// DockerHost es la URL del socket/TCP del daemon Docker. Vacio = unix:///var/run/docker.sock.
	DockerHost string
}

// DockerLogLine es una linea de log de un contenedor Docker con su stream de origen.
type DockerLogLine struct {
	// Stream indica el origen: "stdout" o "stderr".
	Stream string
	// Timestamp es el timestamp RFC3339 de la linea. Vacio si DockerLogsOpts.Timestamps es false.
	Timestamp string
	// Line es el contenido de la linea de log (sin newline final).
	Line string
}
