@@ -10,41 +10,41 @@ |
||
10 | 10 | |
11 | 11 | return [ |
12 | 12 | |
13 | - /** |
|
14 | - * Horário de abertura que será usado de referencia para fazer as consultas de horários disponiveis. |
|
15 | - */ |
|
16 | - 'opening_time' => '06:00:00', |
|
17 | - |
|
18 | - /** |
|
19 | - * Horário de fechamento que será usado de referencia para fazer as consultas de horários disponiveis. |
|
20 | - */ |
|
21 | - 'closing_time' => '20:00:00', |
|
22 | - |
|
23 | - /** |
|
24 | - * Define o nome da tabela que será gerada para os horários agendados. |
|
25 | - */ |
|
26 | - 'schedules_table' => 'schedules', |
|
27 | - |
|
28 | - /** |
|
29 | - * Define o nome da tabela que será gerada para os status do horários agendados. |
|
30 | - */ |
|
31 | - 'schedule_status_table' => 'schedule_status', |
|
32 | - |
|
33 | - /** |
|
34 | - * Configuração que habilita ou desabilita mensagens de erro ao tentar agendar |
|
35 | - * um horário que já foi agendado. |
|
36 | - * |
|
37 | - * Ex: Duas pessoas tentam agendar no mesmo horário, a primeira consegue e a segunda |
|
38 | - * obtém uma mensagem de erro. |
|
39 | - * |
|
40 | - * Caso seja desabilitada, não será exibido mensagem de erro no caso acima e será |
|
41 | - * registrado normalmente. |
|
42 | - */ |
|
43 | - 'enable_schedule_conflict' => true, |
|
44 | - |
|
45 | - /** |
|
46 | - * Configuração que habilita ou desabilita mensagens de erro ao tentar agendar |
|
47 | - * um horário sem informar quando acaba (uma data final). |
|
48 | - */ |
|
49 | - 'enable_schedule_without_end' => false, |
|
13 | + /** |
|
14 | + * Horário de abertura que será usado de referencia para fazer as consultas de horários disponiveis. |
|
15 | + */ |
|
16 | + 'opening_time' => '06:00:00', |
|
17 | + |
|
18 | + /** |
|
19 | + * Horário de fechamento que será usado de referencia para fazer as consultas de horários disponiveis. |
|
20 | + */ |
|
21 | + 'closing_time' => '20:00:00', |
|
22 | + |
|
23 | + /** |
|
24 | + * Define o nome da tabela que será gerada para os horários agendados. |
|
25 | + */ |
|
26 | + 'schedules_table' => 'schedules', |
|
27 | + |
|
28 | + /** |
|
29 | + * Define o nome da tabela que será gerada para os status do horários agendados. |
|
30 | + */ |
|
31 | + 'schedule_status_table' => 'schedule_status', |
|
32 | + |
|
33 | + /** |
|
34 | + * Configuração que habilita ou desabilita mensagens de erro ao tentar agendar |
|
35 | + * um horário que já foi agendado. |
|
36 | + * |
|
37 | + * Ex: Duas pessoas tentam agendar no mesmo horário, a primeira consegue e a segunda |
|
38 | + * obtém uma mensagem de erro. |
|
39 | + * |
|
40 | + * Caso seja desabilitada, não será exibido mensagem de erro no caso acima e será |
|
41 | + * registrado normalmente. |
|
42 | + */ |
|
43 | + 'enable_schedule_conflict' => true, |
|
44 | + |
|
45 | + /** |
|
46 | + * Configuração que habilita ou desabilita mensagens de erro ao tentar agendar |
|
47 | + * um horário sem informar quando acaba (uma data final). |
|
48 | + */ |
|
49 | + 'enable_schedule_without_end' => false, |
|
50 | 50 | ]; |
51 | 51 | \ No newline at end of file |
@@ -1,10 +1,10 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | return [ |
4 | - 'does_not_belong' => 'Não é possível remover registro que não possui o mesmo tipo de model.', |
|
5 | - 'cant_remove_by_date' => 'Não é possível remover um registro pelo horário marcado quando a configuração [enable_schedule_conflict] está desabilitada.', |
|
6 | - 'cant_add_without_end' => 'Não é possível adicionar um registro sem o parâmetro [end_at] quando a configuração [enable_schedule_without_end] está desabilitada.', |
|
7 | - 'cant_add_with_same_start_at' => 'Não é possível adicionar um registro com uma data de ínicio [start_at] que já existe enquanto a configuração [enable_schedule_conflict] estiver habilitada.', |
|
8 | - 'end_cant_before_start' => 'A data que indica o final [end_at] não pode ser anterior a data de início [start_at].', |
|
9 | - 'model_not_found' => 'Não foi encontrado resultados para [:model]' |
|
4 | + 'does_not_belong' => 'Não é possível remover registro que não possui o mesmo tipo de model.', |
|
5 | + 'cant_remove_by_date' => 'Não é possível remover um registro pelo horário marcado quando a configuração [enable_schedule_conflict] está desabilitada.', |
|
6 | + 'cant_add_without_end' => 'Não é possível adicionar um registro sem o parâmetro [end_at] quando a configuração [enable_schedule_without_end] está desabilitada.', |
|
7 | + 'cant_add_with_same_start_at' => 'Não é possível adicionar um registro com uma data de ínicio [start_at] que já existe enquanto a configuração [enable_schedule_conflict] estiver habilitada.', |
|
8 | + 'end_cant_before_start' => 'A data que indica o final [end_at] não pode ser anterior a data de início [start_at].', |
|
9 | + 'model_not_found' => 'Não foi encontrado resultados para [:model]' |
|
10 | 10 | ]; |
11 | 11 | \ No newline at end of file |
@@ -10,58 +10,58 @@ |
||
10 | 10 | |
11 | 11 | interface SchedulerModelInterface |
12 | 12 | { |
13 | - /** |
|
13 | + /** |
|
14 | 14 | * Retorna apenas os horários que possuem o mesmo [model_type] do [parent] dessa [trait]. |
15 | 15 | * |
16 | 16 | * @return \Illuminate\Database\Eloquent\Relations\BelongsTo |
17 | 17 | */ |
18 | - public function schedules(); |
|
18 | + public function schedules(); |
|
19 | 19 | |
20 | - /** |
|
21 | - * Agenda um horário para esta model. |
|
22 | - * |
|
23 | - * @param string|Carbon\Carbon $start_at Data em que será agendado, pode ser em string ou em numa classe Carbon. |
|
24 | - * @param string|Carbon\Carbon|int $end_at Data em que acabada esse agendamento, pode ser em string, ou numa classe Carbon |
|
25 | - * ou em int(sendo considerado os minutos de duração). |
|
26 | - * @param int $status Status desse horário ao ser agendado. |
|
27 | - * @return \H4ad\Scheduler\Models\Schedule |
|
28 | - * |
|
29 | - * @throws \H4ad\Scheduler\Exceptions\CantAddWithoutEnd |
|
30 | - * @throws \H4ad\Scheduler\Exceptions\CantAddWithSameStartAt |
|
31 | - * @throws \H4ad\Scheduler\Exceptions\EndCantBeforeStart |
|
32 | - */ |
|
33 | - public function addSchedule($start_at, $end_at = null, $status = null); |
|
20 | + /** |
|
21 | + * Agenda um horário para esta model. |
|
22 | + * |
|
23 | + * @param string|Carbon\Carbon $start_at Data em que será agendado, pode ser em string ou em numa classe Carbon. |
|
24 | + * @param string|Carbon\Carbon|int $end_at Data em que acabada esse agendamento, pode ser em string, ou numa classe Carbon |
|
25 | + * ou em int(sendo considerado os minutos de duração). |
|
26 | + * @param int $status Status desse horário ao ser agendado. |
|
27 | + * @return \H4ad\Scheduler\Models\Schedule |
|
28 | + * |
|
29 | + * @throws \H4ad\Scheduler\Exceptions\CantAddWithoutEnd |
|
30 | + * @throws \H4ad\Scheduler\Exceptions\CantAddWithSameStartAt |
|
31 | + * @throws \H4ad\Scheduler\Exceptions\EndCantBeforeStart |
|
32 | + */ |
|
33 | + public function addSchedule($start_at, $end_at = null, $status = null); |
|
34 | 34 | |
35 | - /** |
|
36 | - * Exibe uma lista dos horários do dia de hoje. |
|
37 | - * |
|
38 | - * @param int $duration Serve para facilitar na hora de buscar horários livres |
|
39 | - * que precisem ter uma certa duração. |
|
40 | - * @return array |
|
41 | - */ |
|
42 | - public function availableToday($duration = 0); |
|
35 | + /** |
|
36 | + * Exibe uma lista dos horários do dia de hoje. |
|
37 | + * |
|
38 | + * @param int $duration Serve para facilitar na hora de buscar horários livres |
|
39 | + * que precisem ter uma certa duração. |
|
40 | + * @return array |
|
41 | + */ |
|
42 | + public function availableToday($duration = 0); |
|
43 | 43 | |
44 | - /** |
|
45 | - * Lista os horários livres em um determinado dia. |
|
46 | - * |
|
47 | - * @param string|Carbon\Carbon $date Data para o qual ele irá fazer a busca. |
|
48 | - * @param int $duration Serve para facilitar na hora de buscar horários livres |
|
49 | - * que precisem ter uma certa duração. |
|
50 | - * @return array |
|
51 | - */ |
|
52 | - public function availableOn($date, $duration = 0); |
|
44 | + /** |
|
45 | + * Lista os horários livres em um determinado dia. |
|
46 | + * |
|
47 | + * @param string|Carbon\Carbon $date Data para o qual ele irá fazer a busca. |
|
48 | + * @param int $duration Serve para facilitar na hora de buscar horários livres |
|
49 | + * que precisem ter uma certa duração. |
|
50 | + * @return array |
|
51 | + */ |
|
52 | + public function availableOn($date, $duration = 0); |
|
53 | 53 | |
54 | - /** |
|
55 | - * Remove um horário agendado pelo seu ID ou pelo horário em que foi marcado. |
|
56 | - * Caso a configuração "enable_schedule_conflict" estiver desabilitada, será lançado uma exceção |
|
57 | - * se for tentado remover um horário agendado pela data de quando foi marcado. |
|
58 | - * |
|
59 | - * @param int|string|Carbon\Carbon $schedule Horário agendado. |
|
60 | - * @return bool|null |
|
61 | - * |
|
62 | - * @throws \H4ad\Scheduler\Exceptions\DoesNotBelong |
|
63 | - * @throws \H4ad\Scheduler\Exceptions\CantRemoveByDate |
|
64 | - * @throws \H4ad\Scheduler\Exceptions\ModelNotFound |
|
65 | - */ |
|
66 | - public function removeSchedule($schedule); |
|
54 | + /** |
|
55 | + * Remove um horário agendado pelo seu ID ou pelo horário em que foi marcado. |
|
56 | + * Caso a configuração "enable_schedule_conflict" estiver desabilitada, será lançado uma exceção |
|
57 | + * se for tentado remover um horário agendado pela data de quando foi marcado. |
|
58 | + * |
|
59 | + * @param int|string|Carbon\Carbon $schedule Horário agendado. |
|
60 | + * @return bool|null |
|
61 | + * |
|
62 | + * @throws \H4ad\Scheduler\Exceptions\DoesNotBelong |
|
63 | + * @throws \H4ad\Scheduler\Exceptions\CantRemoveByDate |
|
64 | + * @throws \H4ad\Scheduler\Exceptions\ModelNotFound |
|
65 | + */ |
|
66 | + public function removeSchedule($schedule); |
|
67 | 67 | } |
68 | 68 | \ No newline at end of file |
@@ -87,23 +87,27 @@ |
||
87 | 87 | $start = Carbon::parse($schedule->start_at); |
88 | 88 | $begin = Carbon::parse($start->toDateString()); |
89 | 89 | |
90 | - if($begin->greaterThan($today)) |
|
91 | - break; |
|
90 | + if($begin->greaterThan($today)) { |
|
91 | + break; |
|
92 | + } |
|
92 | 93 | |
93 | - if($begin->notEqualTo($today)) |
|
94 | - continue; |
|
94 | + if($begin->notEqualTo($today)) { |
|
95 | + continue; |
|
96 | + } |
|
95 | 97 | |
96 | 98 | $end = Carbon::parse($schedule->end_at); |
97 | 99 | if($start <= Carbon::parse($openingTime->toDateTimeString()) |
98 | - && $end >= Carbon::parse($openingTime->toDateTimeString())->addMinutes($durationMinutes)) |
|
99 | - $add = false; |
|
100 | + && $end >= Carbon::parse($openingTime->toDateTimeString())->addMinutes($durationMinutes)) { |
|
101 | + $add = false; |
|
102 | + } |
|
100 | 103 | } |
101 | 104 | |
102 | - if($add) |
|
103 | - $livres[] = [ |
|
105 | + if($add) { |
|
106 | + $livres[] = [ |
|
104 | 107 | 'start_at' => Carbon::parse($openingTime->toDateTimeString()), |
105 | 108 | 'end_at' => Carbon::parse($openingTime->toDateTimeString())->addMinutes($durationMinutes) |
106 | 109 | ]; |
110 | + } |
|
107 | 111 | |
108 | 112 | $openingTime->addMinutes($durationMinutes); |
109 | 113 | } |
@@ -13,13 +13,13 @@ |
||
13 | 13 | class ModelNotFound extends CustomException |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * {@inheritDoc} |
|
18 | - */ |
|
19 | - protected $trans = 'model_not_found'; |
|
16 | + /** |
|
17 | + * {@inheritDoc} |
|
18 | + */ |
|
19 | + protected $trans = 'model_not_found'; |
|
20 | 20 | |
21 | - /** |
|
22 | - * {@inheritDoc} |
|
23 | - */ |
|
24 | - protected $statusCode = Response::HTTP_NOT_FOUND; |
|
21 | + /** |
|
22 | + * {@inheritDoc} |
|
23 | + */ |
|
24 | + protected $statusCode = Response::HTTP_NOT_FOUND; |
|
25 | 25 | } |
26 | 26 | \ No newline at end of file |
@@ -13,13 +13,13 @@ |
||
13 | 13 | class EndCantBeforeStart extends CustomException |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * {@inheritDoc} |
|
18 | - */ |
|
19 | - protected $trans = 'end_cant_before_start'; |
|
16 | + /** |
|
17 | + * {@inheritDoc} |
|
18 | + */ |
|
19 | + protected $trans = 'end_cant_before_start'; |
|
20 | 20 | |
21 | - /** |
|
22 | - * {@inheritDoc} |
|
23 | - */ |
|
24 | - protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
21 | + /** |
|
22 | + * {@inheritDoc} |
|
23 | + */ |
|
24 | + protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
25 | 25 | } |
26 | 26 | \ No newline at end of file |
@@ -13,13 +13,13 @@ |
||
13 | 13 | class CantRemoveByDate extends CustomException |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * {@inheritDoc} |
|
18 | - */ |
|
19 | - protected $trans = 'cant_remove_by_date'; |
|
16 | + /** |
|
17 | + * {@inheritDoc} |
|
18 | + */ |
|
19 | + protected $trans = 'cant_remove_by_date'; |
|
20 | 20 | |
21 | - /** |
|
22 | - * {@inheritDoc} |
|
23 | - */ |
|
24 | - protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
21 | + /** |
|
22 | + * {@inheritDoc} |
|
23 | + */ |
|
24 | + protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
25 | 25 | } |
26 | 26 | \ No newline at end of file |
@@ -88,8 +88,9 @@ discard block |
||
88 | 88 | */ |
89 | 89 | protected function parseValues() |
90 | 90 | { |
91 | - if(is_array($this->attributes) && is_array($this->values)) |
|
92 | - return collect($this->attributes)->combine($this->values)->all(); |
|
91 | + if(is_array($this->attributes) && is_array($this->values)) { |
|
92 | + return collect($this->attributes)->combine($this->values)->all(); |
|
93 | + } |
|
93 | 94 | |
94 | 95 | return [ $this->attributes => $this->values ?? $this->isLower() ]; |
95 | 96 | } |
@@ -111,8 +112,9 @@ discard block |
||
111 | 112 | */ |
112 | 113 | protected function getAlias() |
113 | 114 | { |
114 | - if(is_object($this->model)) |
|
115 | - $this->model = get_class($this->model); |
|
115 | + if(is_object($this->model)) { |
|
116 | + $this->model = get_class($this->model); |
|
117 | + } |
|
116 | 118 | |
117 | 119 | return collect(trans('scheduler::exceptions.aliases.'. $this->aliastype))->search($this->model) ?: 'Recurso'; |
118 | 120 | } |
@@ -13,13 +13,13 @@ |
||
13 | 13 | class CantAddWithSameStartAt extends CustomException |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * {@inheritDoc} |
|
18 | - */ |
|
19 | - protected $trans = 'cant_add_with_same_start_at'; |
|
16 | + /** |
|
17 | + * {@inheritDoc} |
|
18 | + */ |
|
19 | + protected $trans = 'cant_add_with_same_start_at'; |
|
20 | 20 | |
21 | - /** |
|
22 | - * {@inheritDoc} |
|
23 | - */ |
|
24 | - protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
21 | + /** |
|
22 | + * {@inheritDoc} |
|
23 | + */ |
|
24 | + protected $statusCode = Response::HTTP_BAD_REQUEST; |
|
25 | 25 | } |
26 | 26 | \ No newline at end of file |