| 
									
										
										
										
											2018-06-10 16:59:03 +02:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * RecurrenceRepetition.php | 
					
						
							|  |  |  |  * Copyright (c) 2018 thegrumpydictator@gmail.com | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is part of Firefly III. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Firefly III is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Firefly III is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with Firefly III. If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | declare(strict_types=1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace FireflyIII\Models; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Database\Eloquent\Model; | 
					
						
							|  |  |  | use Illuminate\Database\Eloquent\Relations\BelongsTo; | 
					
						
							| 
									
										
										
										
											2018-06-20 21:16:42 +02:00
										 |  |  | use Illuminate\Database\Eloquent\SoftDeletes; | 
					
						
							| 
									
										
										
										
											2018-06-10 16:59:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Class RecurrenceRepetition | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @property string         $repetition_type | 
					
						
							|  |  |  |  * @property string         $repetition_moment | 
					
						
							|  |  |  |  * @property int            $repetition_skip | 
					
						
							| 
									
										
										
										
											2018-06-26 18:49:33 +02:00
										 |  |  |  * @property int            $weekend | 
					
						
							| 
									
										
										
										
											2018-06-10 16:59:03 +02:00
										 |  |  |  * @property \Carbon\Carbon $created_at | 
					
						
							|  |  |  |  * @property \Carbon\Carbon $deleted_at | 
					
						
							|  |  |  |  * @property \Carbon\Carbon $updated_at | 
					
						
							|  |  |  |  * @property int            $id | 
					
						
							| 
									
										
										
										
											2019-03-05 17:26:49 +01:00
										 |  |  |  * @property int $recurrence_id | 
					
						
							|  |  |  |  * @property-read \FireflyIII\Models\Recurrence $recurrence | 
					
						
							|  |  |  |  * @method static bool|null forceDelete() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition newModelQuery() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition newQuery() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\RecurrenceRepetition onlyTrashed() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition query() | 
					
						
							|  |  |  |  * @method static bool|null restore() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereCreatedAt($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereDeletedAt($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereId($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereRecurrenceId($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereRepetitionMoment($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereRepetitionSkip($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereRepetitionType($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereUpdatedAt($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Eloquent\Builder|\FireflyIII\Models\RecurrenceRepetition whereWeekend($value) | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\RecurrenceRepetition withTrashed() | 
					
						
							|  |  |  |  * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\RecurrenceRepetition withoutTrashed() | 
					
						
							|  |  |  |  * @mixin \Eloquent | 
					
						
							| 
									
										
										
										
											2018-06-10 16:59:03 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | class RecurrenceRepetition extends Model | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-06-26 18:49:33 +02:00
										 |  |  |     /** @var int */ | 
					
						
							|  |  |  |     public const WEEKEND_DO_NOTHING = 1; | 
					
						
							|  |  |  |     /** @var int */ | 
					
						
							|  |  |  |     public const WEEKEND_SKIP_CREATION = 2; | 
					
						
							|  |  |  |     /** @var int */ | 
					
						
							|  |  |  |     public const WEEKEND_TO_FRIDAY = 3; | 
					
						
							|  |  |  |     /** @var int */ | 
					
						
							|  |  |  |     public const WEEKEND_TO_MONDAY = 4; | 
					
						
							| 
									
										
										
										
											2018-06-20 21:16:42 +02:00
										 |  |  |     use SoftDeletes; | 
					
						
							| 
									
										
										
										
											2018-08-04 17:30:06 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * The attributes that should be casted to native types. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2018-06-17 15:14:34 +02:00
										 |  |  |     protected $casts | 
					
						
							| 
									
										
										
										
											2018-08-06 19:14:30 +02:00
										 |  |  |         = [ | 
					
						
							| 
									
										
										
										
											2018-06-17 15:14:34 +02:00
										 |  |  |             'created_at'        => 'datetime', | 
					
						
							|  |  |  |             'updated_at'        => 'datetime', | 
					
						
							|  |  |  |             'deleted_at'        => 'datetime', | 
					
						
							|  |  |  |             'repetition_type'   => 'string', | 
					
						
							|  |  |  |             'repetition_moment' => 'string', | 
					
						
							|  |  |  |             'repetition_skip'   => 'int', | 
					
						
							| 
									
										
										
										
											2018-07-01 09:27:22 +02:00
										 |  |  |             'weekend'           => 'int', | 
					
						
							| 
									
										
										
										
											2018-06-17 15:14:34 +02:00
										 |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2018-08-04 17:30:06 +02:00
										 |  |  |     /** @var array Fields that can be filled */ | 
					
						
							| 
									
										
										
										
											2018-06-26 18:49:33 +02:00
										 |  |  |     protected $fillable = ['recurrence_id', 'weekend', 'repetition_type', 'repetition_moment', 'repetition_skip']; | 
					
						
							| 
									
										
										
										
											2018-08-04 17:30:06 +02:00
										 |  |  |     /** @var string The table to store the data in */ | 
					
						
							| 
									
										
										
										
											2018-06-10 16:59:03 +02:00
										 |  |  |     protected $table = 'recurrences_repetitions'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @return BelongsTo | 
					
						
							|  |  |  |      * @codeCoverageIgnore | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function recurrence(): BelongsTo | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return $this->belongsTo(Recurrence::class); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-07-22 20:32:02 +02:00
										 |  |  | } |