<?php
namespace App\Domain\Entity\PointOfInterest;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Link;
use ApiPlatform\Metadata\Post;
use App\Domain\Entity\Behavior\Identifiable;
use Gedmo\Timestampable\Traits\Timestampable;
/**
* Class OpeningHour
* @package App\Domain\Entity\PointOfInterest
*/
#[ApiResource(
operations : [
new Get(),
new GetCollection(),
new Post()
],
normalizationContext : ['groups' => ['opening_hour_read']],
denormalizationContext: ['groups' => ['opening_hour_write']]
)]
#[ApiResource(
uriTemplate : '/revisions/{uuid}/opening_hours',
operations : [
new GetCollection()
],
uriVariables: [
'uuid' => new Link(fromProperty: 'openingHours', fromClass: Revision::class)
]
)]
class OpeningHour
{
use Identifiable;
use Timestampable;
public function __construct(
public \DateTime $end,
public Revision $revision,
public \DateTime $start,
) {
}
public function getFormattedEnd(): string
{
return $this->end->format('H:i');
}
public function getFormattedStart(): string
{
return $this->start->format('H:i');
}
}