Proyecto_venta_boletos/Proyecto/modelo/Sala.php

62 lines
1.6 KiB
PHP

<?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;
}
}