AutorÃa | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Form\Planning;
use Laminas\InputFilter\InputFilter;
class PlanningObjectiveFilter extends InputFilter
{
public function __construct()
{
$this->add([
'name' => 'title',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\StringLength::class,
'options' => [
'encoding' => 'UTF-8',
'max' => 128,
],
],
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'description',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\StringLength::class,
'options' => [
'encoding' => 'UTF-8',
'max' => 1024,
],
],
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'progress',
'required' => true,
'filters' => [
['name' => \LeadersLinked\Filter\Intval::class],
],
'validators' => [
[
'name' => \Laminas\Validator\GreaterThan::class,
'options' => [
'min' => 0,
'inclusive' => true,
]
],
[
'name' => \Laminas\Validator\LessThan::class,
'options' => [
'max' => 100,
'inclusive' => true,
]
],
],
]);
$this->add([
'name' => 'status',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'date_range',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'start',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Date::class,
'options' => [
'format' => 'Y-m-d'
]
],
],
]);
$this->add([
'name' => 'end',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Date::class,
'options' => [
'format' => 'Y-m-d'
]
],
],
]);
$this->add([
'name' => 'date_range',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'budget',
'required' => true,
'filters' => [
['name' => \LeadersLinked\Filter\Floatval::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\GreaterThan::class,
'options' => [
'min' => 0,
'inclusive' => true,
]
],
[
'name' => \Laminas\Validator\LessThan::class,
'options' => [
'max' => 999999999999.99,
'inclusive' => true,
]
],
],
]);
$this->add([
'name' => 'cost',
'required' => true,
'filters' => [
['name' => \LeadersLinked\Filter\Floatval::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\GreaterThan::class,
'options' => [
'min' => 0,
'inclusive' => true,
]
],
],
]);
}
}