Добрый день. Есть код, добавляющий компанию. Он используется в личном кабинете пользователя.
<?php
class Companies
{
public function create(CompanyData $data, User $initiator)
{
$company = new Company;
$company->title = $data;
$company->saveOrFail();
$companyMember = new CompanyMember;
$companyMember->userId = $initiator->id;
$companyMember->companyId = $company->id;
$companyMember->role = 'owner';
$companyMember->saveOrFail();
$companyLog = new CompanyLog();
$companyLog->companyId = $company->id;
$companyLog->comment = 'Компания создана';
$companyLog->saveOrFail();
}
}
Появилась задача, сделать такой же функционал в админке, только при добавлении через админку, не должен добавляться companyMember и комментарий к логу компании должен быть "Компания создана тех поддержкой".
- 1. Как бы вы решили такой вопрос?
- 2. А что, если компания будет прилетать от чужого сервиса, и понадобится в лог писать комментарий "Компания импортирована из стороннего сервиса"?
- 3. Что, если логика добавления из разных контекстов будет отличаться сильнее?