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");
|
|
}
|
|
|
|
|
|
} |