| 
<?php
 declare(strict_types=1);
 
 namespace ComplexHeart\Domain\Criteria;
 
 /**
 * Class Operator
 *
 * @author Unay Santisteban <[email protected]>
 * @package ComplexHeart\Domain\Criteria
 */
 enum Operator: string
 {
 case EQUAL = '=';
 case NOT_EQUAL = '!=';
 case GT = '>';
 case GTE = '>=';
 case LT = '<';
 case LTE = '<=';
 case IN = 'IN';
 case NOT_IN = 'NOT IN';
 case LIKE = 'LIKE';
 case NOT_LIKE = 'NOT LIKE';
 case CONTAINS = 'CONTAINS';
 case NOT_CONTAINS = 'NOT CONTAINS';
 
 public static function create(string $value): self
 {
 return match ($value) {
 'eq' => self::EQUAL,
 'neq', 'ne' => self::NOT_EQUAL,
 'gt' => self::GT,
 'gte', 'ge' => self::GTE,
 'lt' => self::LT,
 'lte', 'le' => self::LTE,
 'nin', 'out' => self::NOT_IN,
 'nlike' => self::NOT_LIKE,
 'ncontains' => self::NOT_CONTAINS,
 default => self::from($value)
 };
 }
 }
 
 |