toby/app/Domain/States/VacationRequest/VacationRequestState.php
Adrian Hopek 95f5ed44d6
- actions and notifications refactor (#88)
* wip

* fix

* fix

* fix

* add test

* fix

* wip

* fix

* fix translations

Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl>
2022-03-21 15:29:20 +01:00

45 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace Toby\Domain\States\VacationRequest;
use Spatie\ModelStates\Exceptions\InvalidConfig;
use Spatie\ModelStates\State;
use Spatie\ModelStates\StateConfig;
abstract class VacationRequestState extends State
{
/**
* @throws InvalidConfig
*/
public static function config(): StateConfig
{
return parent::config()
->default(Created::class)
->allowTransition(Created::class, Approved::class)
->allowTransition(Created::class, WaitingForTechnical::class)
->allowTransition(Created::class, WaitingForAdministrative::class)
->allowTransition(WaitingForTechnical::class, Rejected::class)
->allowTransition(WaitingForTechnical::class, AcceptedByTechnical::class)
->allowTransition(WaitingForAdministrative::class, Rejected::class)
->allowTransition(WaitingForAdministrative::class, AcceptedByAdministrative::class)
->allowTransition(AcceptedByTechnical::class, WaitingForAdministrative::class)
->allowTransition(AcceptedByTechnical::class, Approved::class)
->allowTransition(AcceptedByAdministrative::class, Approved::class)
->allowTransition([
Created::class,
WaitingForTechnical::class,
WaitingForAdministrative::class,
AcceptedByTechnical::class,
AcceptedByAdministrative::class,
Approved::class,
], Cancelled::class);
}
public function label(): string
{
return __(static::$name);
}
}