src/Actions/Seat/GetMainCharacterAction.php
<?php
namespace Herpaderpaldent\Seat\SeatGroups\Actions\Seat;
use Herpaderpaldent\Seat\SeatGroups\Exceptions\MissingMainCharacterException;
use Seat\Web\Models\Group;
class GetMainCharacterAction
{
public function execute(Group $group)
{
$main_character = $group->main_character;
if (is_null($main_character)) {
logger()->warning('Group has no main character set. Attempt to make assignation based on first attached character.', [
'group_id' => $group->id,
]);
$main_character = optional($group->users()->has('character')->first())->character;
}
if (is_null($main_character))
throw new MissingMainCharacterException($group);
return $main_character;
}
}