<?phpnamespace App\Entity;use App\Controller\Admin\StatusTrait;use App\Repository\CabeceraLinkdepagoRepository;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass=CabeceraLinkdepagoRepository::class) * @ORM\HasLifecycleCallbacks() */class CabeceraLinkdepago{ use StatusTrait; use Timestamp; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\ManyToOne(targetEntity=Cabecera::class, inversedBy="CabeceraLinkdepago") */ private $Cabecera; /** * @ORM\Column(type="string", length=255) */ private $Estado; /** * @ORM\Column(type="json", nullable=true) */ private $Linkdepago = []; /** * @ORM\Column(type="string", length=255, nullable=true) */ private $comentario; public function getId(): ?int { return $this->id; } public function getCabecera(): ?Cabecera { return $this->Cabecera; } public function setCabecera(?Cabecera $Cabecera): self { $this->Cabecera = $Cabecera; return $this; } public function getEstado(): ?string { return $this->Estado; } public function setEstado(string $Estado): self { $this->Estado = $Estado; return $this; } public function getLinkdepago(): ?array { return $this->Linkdepago; } public function setLinkdepago(array $Linkdepago): self { $this->Linkdepago = $Linkdepago; return $this; } public function getComentario(): ?string { return $this->comentario; } public function setComentario(string $comentario): self { $this->comentario = $comentario; return $this; } public function getGlobalpayId(): ?string { return $this->Linkdepago['transaction']['id'] ?? null; } public function getGlobalpayLtpId(): ?string { return $this->Linkdepago['transaction']['ltp_id'] ?? null; } public function getGlobalpayStatus(): ?string { // Asegúrate de reemplazar 'parametroEspecifico' con la clave real que buscas. return $this->Linkdepago['transaction']['status'] ?? null; } public function getGlobalpayComment(): ?string { return $this->Linkdepago['transaction']['message'] ?? null; } public function getGlobalpayStatusName(): ?string { // Obtiene el número de estado $status = $this->getGlobalpayStatus(); return $this->mapStatusNumberToName($status); } public function getGlobalpayDate(): ?\DateTime { $date = $this->Linkdepago['transaction']['date'] ?? null; if ($date === null) { return null; } // Usar \DateTime::createFromFormat para manejar el formato de fecha específico $dateTime = \DateTime::createFromFormat('d/m/Y H:i:s', $date); if ($dateTime === false) { throw new \Exception("Failed to parse date string: " . $date); } // Restar 5 horas a la fecha y hora $dateTime->modify('-5 hours'); return $dateTime; } public function getBadgeColor(): ?string { return $this->getBadgeColorForStatus($this->getGlobalpayStatus()); }}