110 lines
2.7 KiB
PHP
110 lines
2.7 KiB
PHP
<?php
|
||
|
||
namespace kernel\app_modules\event\models;
|
||
|
||
use DateTime;
|
||
use Illuminate\Database\Eloquent\Model;
|
||
use kernel\helpers\Debug;
|
||
|
||
// Добавить @property
|
||
/**
|
||
* @property int $id
|
||
* @property int $status
|
||
* @property int $hours_count
|
||
* @property string $title
|
||
* @property string $type
|
||
* @property string $date_start
|
||
* @property string $dateStartFormated
|
||
* @property string $dateStartFormatedToForm
|
||
* @property string $dateEndFormatedToForm
|
||
* @property string $dateEndFormated
|
||
* @property string $date_end
|
||
* @property string $place
|
||
* @property string $event_format
|
||
* @property string $description
|
||
* @property string $additional_info
|
||
*/
|
||
class Event extends Model
|
||
{
|
||
const DISABLE_STATUS = 0;
|
||
const ACTIVE_STATUS = 1;
|
||
|
||
protected $table = 'event';
|
||
|
||
protected $fillable = ['title', 'type', 'hours_count', 'date_start', 'date_end', 'place', 'event_format', 'description', 'additional_info', 'status'];
|
||
|
||
public static function labels(): array
|
||
{
|
||
return [
|
||
'title' => 'Название',
|
||
'type' => 'Тип',
|
||
'hours_count' => 'Количество часов',
|
||
'date_start' => 'Дата начала',
|
||
'date_end' => 'Дата окончания',
|
||
'place' => 'Место',
|
||
'event_format' => 'Формат',
|
||
'description' => 'Описание',
|
||
'additional_info' => 'Дополнительная информация',
|
||
'status' => 'Статус',
|
||
];
|
||
}
|
||
|
||
/**
|
||
* @return string[]
|
||
*/
|
||
public static function getStatus(): array
|
||
{
|
||
return [
|
||
self::DISABLE_STATUS => "Не активный",
|
||
self::ACTIVE_STATUS => "Активный",
|
||
];
|
||
}
|
||
|
||
public function contacts(): \Illuminate\Database\Eloquent\Relations\HasMany
|
||
{
|
||
return $this->hasMany(EventContact::class);
|
||
}
|
||
|
||
|
||
/**
|
||
* @throws \Exception
|
||
*/
|
||
public function getDateStartFormatedAttribute(): string
|
||
{
|
||
$startDate = new DateTime($this->date_start);
|
||
|
||
return $startDate->format("d-m-Y");
|
||
}
|
||
|
||
/**
|
||
* @throws \Exception
|
||
*/
|
||
public function getDateStartFormatedToFormAttribute(): string
|
||
{
|
||
$startDate = new DateTime($this->date_start);
|
||
|
||
return $startDate->format("Y-m-d");
|
||
}
|
||
|
||
/**
|
||
* @throws \Exception
|
||
*/
|
||
public function getDateEndFormatedAttribute(): string
|
||
{
|
||
$endDate = new DateTime($this->date_end);
|
||
|
||
return $endDate->format("d-m-Y");
|
||
}
|
||
|
||
/**
|
||
* @throws \Exception
|
||
*/
|
||
public function getDateEndFormatedToFormAttribute(): string
|
||
{
|
||
$endDate = new DateTime($this->date_end);
|
||
|
||
return $endDate->format("Y-m-d");
|
||
}
|
||
|
||
|
||
} |