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