77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel\app_modules\gestalt_profile\services;
 | |
| 
 | |
| use kernel\helpers\Debug;
 | |
| use kernel\app_modules\gestalt_profile\models\Gestalt_profile;
 | |
| use kernel\FormModel;
 | |
| 
 | |
| class Gestalt_profileService
 | |
| {
 | |
|     protected Gestalt_profile $model;
 | |
|     public function __construct()
 | |
|     {
 | |
|         $this->model = new Gestalt_profile();
 | |
|     }
 | |
| 
 | |
|     public function create(FormModel $form_model): false|Gestalt_profile
 | |
|     {
 | |
|         $model = new Gestalt_profile();
 | |
|         // Пример заполнения:
 | |
|          $model->user_id = $form_model->getItem('user_id');
 | |
|          $model->fio = $form_model->getItem('fio');
 | |
|          $model->phone = $form_model->getItem('phone');
 | |
|          $model->email = $form_model->getItem('email');
 | |
|          $model->city = $form_model->getItem('city');
 | |
|          $model->photo = $form_model->getItem('photo');
 | |
|          $model->community_status = $form_model->getItem('community_status');
 | |
|          $model->specialization = $form_model->getItem('specialization');
 | |
|          $model->description_of_professional_activity = $form_model->getItem('description_of_professional_activity');
 | |
|          $model->past_events = $form_model->getItem('past_events');
 | |
|          $model->upcoming_events = $form_model->getItem('upcoming_events');
 | |
|          $model->under_curation_events = $form_model->getItem('under_curation_events');
 | |
|          $model->status = $form_model->getItem('status');
 | |
|          $model->show_on_main = $form_model->getItem('show_on_main');
 | |
| 
 | |
|         if ($model->save()){
 | |
|             return $model;
 | |
|         }
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     public function update(FormModel $form_model, Gestalt_profile $gestalt_profile): false|Gestalt_profile
 | |
|     {
 | |
|         // Пример обновления:
 | |
|         $gestalt_profile->user_id = $form_model->getItem('user_id');
 | |
|         $gestalt_profile->fio = $form_model->getItem('fio');
 | |
|         $gestalt_profile->phone = $form_model->getItem('phone');
 | |
|         $gestalt_profile->email = $form_model->getItem('email');
 | |
|         $gestalt_profile->city = $form_model->getItem('city');
 | |
|         $gestalt_profile->photo = $form_model->getItem('photo');
 | |
|         $gestalt_profile->community_status = $form_model->getItem('community_status');
 | |
|         $gestalt_profile->specialization = $form_model->getItem('specialization');
 | |
|         $gestalt_profile->description_of_professional_activity = $form_model->getItem('description_of_professional_activity');
 | |
|         $gestalt_profile->past_events = $form_model->getItem('past_events');
 | |
|         $gestalt_profile->upcoming_events = $form_model->getItem('upcoming_events');
 | |
|         $gestalt_profile->under_curation_events = $form_model->getItem('under_curation_events');
 | |
|         $gestalt_profile->status = $form_model->getItem('status');
 | |
|         $gestalt_profile->show_on_main = $form_model->getItem('show_on_main');
 | |
| 
 | |
|         if ($gestalt_profile->save()){
 | |
|             return $gestalt_profile;
 | |
|         }
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     public static function getCount()
 | |
|     {
 | |
|         return Gestalt_profile::count();
 | |
|     }
 | |
| 
 | |
|     public static function getLast4(): array
 | |
|     {
 | |
|         return Gestalt_profile::query()->limit(4)->orderBy('id', 'desc')->get()->toArray();
 | |
|     }
 | |
| } |