<?php require_once 'Boleto.php'; class Sala { private $id; private $nombre; private $boletos = []; public function __construct($id, $nombre) { $this->id = $id; $this->nombre = $nombre; } public function getId() { return $this->id; } public function getNombre() { return $this->nombre; } public function inicializarBoletos($filas, $asientosPorFila, $precio) { $this->boletos = []; $contador = 1; for ($i = 1; $i <= $filas; $i++) { for ($j = 1; $j <= $asientosPorFila; $j++) { $this->boletos[] = new Boleto($contador, $i, $j, $precio); $contador++; } } } public function obtenerBoletos() { return $this->boletos; } public function obtenerBoletosPorEstado($estado) { return array_filter($this->boletos, function($boleto) use ($estado) { return $boleto->getEstado() === $estado; }); } public function obtenerBoletosPorId($ids) { return array_filter($this->boletos, function($boleto) use ($ids) { return in_array($boleto->getId(), $ids); }); } public function disponibilidadAsientos() { $mapa = []; foreach ($this->boletos as $boleto) { $mapa[$boleto->getFila()][$boleto->getNumero()] = $boleto->getEstado(); } return $mapa; } // Setter para asignar boletos desde la base de datos public function setBoletos($boletos) { $this->boletos = $boletos; } }