firefly-iii/app/models/Limit.php

76 lines
2.8 KiB
PHP
Raw Normal View History

<?php
use LaravelBook\Ardent\Ardent as Ardent;
/**
* Limit
*
2014-07-22 23:57:51 -05:00
* @property integer $id
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property integer $component_id
* @property \Carbon\Carbon $startdate
* @property float $amount
* @property boolean $repeats
* @property string $repeat_freq
* @property-read \Component $component
* @property-read \Budget $budget
* @property-read \Illuminate\Database\Eloquent\Collection|\LimitRepetition[] $limitrepetitions
2014-07-22 23:57:51 -05:00
* @method static \Illuminate\Database\Query\Builder|\Limit whereId($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereCreatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereComponentId($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereStartdate($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereAmount($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereRepeats($value)
* @method static \Illuminate\Database\Query\Builder|\Limit whereRepeatFreq($value)
*/
class Limit extends Ardent
{
public static $rules
= [
'component_id' => 'required|exists:components,id',
'startdate' => 'required|date',
'amount' => 'numeric|required|min:0.01',
'repeats' => 'required|between:0,1',
'repeat_freq' => 'required|in:daily,weekly,monthly,quarterly,half-year,yearly'
];
2014-07-22 23:57:51 -05:00
public static function factory()
{
$start = new Carbon\Carbon;
$start->startOfMonth();
return [
'component_id' => 'factory|Budget',
2014-07-22 23:57:51 -05:00
'startdate' => $start,
'amount' => '100',
'repeats' => 0,
'repeat_freq' => 'monthly'
];
2014-07-22 23:57:51 -05:00
}
public function component()
{
2014-07-22 23:57:51 -05:00
return $this->belongsTo('Component', 'component_id');
}
public function budget()
{
return $this->belongsTo('Budget', 'component_id');
}
2014-07-22 23:57:51 -05:00
public function limitrepetitions()
{
return $this->hasMany('LimitRepetition');
}
public function getDates()
{
return ['created_at', 'updated_at', 'startdate', 'enddate'];
}
}