Files
gestalt/kernel/app_modules/gestalt_profile/models/Gestalt_profile.php
2025-06-18 14:50:18 +03:00

118 lines
3.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace kernel\app_modules\gestalt_profile\models;
use Illuminate\Database\Eloquent\Model;
use kernel\app_modules\gestalt_profile_relationship\models\GestaltProfileRelationship;
// Добавить @property
/**
* @property int $id
* @property int $status
* @property int $show_on_main
* @property int $user_id
* @property string $fio
* @property string $phone
* @property string $email
* @property string $city
* @property string $photo
* @property string $community_status
* @property string $specialization
* @property string $description_of_professional_activity
* @property string $past_events
* @property string $upcoming_events
* @property string $under_curation_events
* @property array $communityStatusArr
* @property array $specializationArr
*/
class Gestalt_profile extends Model
{
const DISABLE_STATUS = 0;
const ACTIVE_STATUS = 1;
const DONT_SHOW_ON_MAIN = 0;
const SHOW_ON_MAIN = 1;
protected $table = 'gestalt_profile';
protected $fillable = [
'user_id',
'fio',
'phone',
'email',
'city',
'photo',
'community_status',
'specialization',
'description_of_professional_activity',
'past_events',
'upcoming_events',
'under_curation_events',
'status',
'show_on_main',
];
public static function labels(): array
{
return [
'user_id' => 'Пользователь',
'fio' => 'ФИО',
'phone' => 'Телефон',
'email' => 'Почта',
'city' => 'Город',
'photo' => 'Фото',
'community_status' => 'Статус в сообществе',
'specialization' => 'Специализация',
'description_of_professional_activity' => 'Описание профессиональной деятельности',
'past_events' => 'Прошедшие мероприятия',
'upcoming_events' => 'Будущие мероприятия',
'under_curation_events' => 'Под руководством специалиста',
'status' => 'Статус',
'show_on_main' => 'Показать на главной',
];
}
/**
* @return string[]
*/
public static function getStatus(): array
{
return [
self::DISABLE_STATUS => "Не активный",
self::ACTIVE_STATUS => "Активный",
];
}
/**
* @return string[]
*/
public static function getShowOnMain(): array
{
return [
self::DONT_SHOW_ON_MAIN => "Не показывать",
self::SHOW_ON_MAIN => "Показывать",
];
}
public function relationships(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(GestaltProfileRelationship::class, 'gestalt_profile_id');
}
public function getCommunityStatusArrAttribute(): array
{
return array_filter(explode(", ", $this->community_status));
}
public function getSpecializationArrAttribute(): array
{
return array_filter(explode(", ", $this->specialization));
}
public static function getCountProfiles()
{
return self::count();
}
}