Uname: Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 8.0.30 [ PHP INFO ] PHP os: Linux
Server Ip: 145.239.37.162
Your Ip: 216.73.216.190
User: dreampi (1009562) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : PeriodFactory.php
<?php

namespace AmeliaBooking\Domain\Factory\Schedule;

use AmeliaBooking\Domain\Collection\Collection;
use AmeliaBooking\Domain\Entity\Schedule\Period;
use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
use AmeliaBooking\Domain\ValueObjects\DateTime\DateTimeValue;
use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
use AmeliaBooking\Infrastructure\Licence;

/**
 * Class PeriodFactory
 *
 * @package AmeliaBooking\Domain\Factory\Schedule
 */
class PeriodFactory
{
    /**
     * @param array $data
     *
     * @return Period
     * @throws InvalidArgumentException
     */
    public static function create($data)
    {
        Licence\DataModifier::periodFactory($data);

        $period = new Period(
            new DateTimeValue(\DateTime::createFromFormat('H:i:s', $data['startTime'])),
            new DateTimeValue(\DateTime::createFromFormat('H:i:s', $data['endTime'])),
            new Collection($data['periodServiceList']),
            new Collection($data['periodLocationList'])
        );

        if (isset($data['id'])) {
            $period->setId(new Id($data['id']));
        }

        if (isset($data['locationId'])) {
            $period->setLocationId(new Id($data['locationId']));
        }

        return $period;
    }
}
© 2026 GrazzMean-Shell