toalett-redis-timeseries/src/Model/Where.php

44 lines
937 B
PHP

<?php
namespace Toalett\Redis\Timeseries\Model;
final class Where
{
private ?string $label;
public function __construct(string $label)
{
$this->label = $label;
}
public function is(string $value): Filter
{
return new Filter($this->label, '=', $value);
}
public function isNot(string $value): Filter
{
return new Filter($this->label, '!=', $value);
}
public function isNotSet(): Filter
{
return new Filter($this->label, '=');
}
public function isSet(): Filter
{
return new Filter($this->label, '!=');
}
public function isOneOf(string ...$possibleValues): Filter
{
return new Filter($this->label, '=(', implode(',', $possibleValues) . ')');
}
public function isNoneOf(string ...$possibleValues): Filter
{
return new Filter($this->label, '!=(', implode(',', $possibleValues) . ')');
}
}