95 lines
1.7 KiB
PHP
95 lines
1.7 KiB
PHP
<?php declare(strict_types = 1);
|
|
|
|
namespace MailPoet\Listing;
|
|
|
|
if (!defined('ABSPATH')) exit;
|
|
|
|
|
|
class ListingDefinition {
|
|
/** @var string|null */
|
|
private $group;
|
|
|
|
/** @var array */
|
|
private $filters;
|
|
|
|
/** @var string|null */
|
|
private $search;
|
|
|
|
/** @var array */
|
|
private $parameters;
|
|
|
|
/** @var string */
|
|
private $sortBy;
|
|
|
|
/** @var string */
|
|
private $sortOrder;
|
|
|
|
/** @var int */
|
|
private $offset;
|
|
|
|
/** @var int */
|
|
private $limit;
|
|
|
|
/** @var int[] */
|
|
private $selection;
|
|
|
|
public function __construct(
|
|
string $group = null,
|
|
array $filters = [],
|
|
string $search = null,
|
|
array $parameters = [],
|
|
string $sortBy = 'created_at',
|
|
string $sortOrder = 'desc',
|
|
int $offset = 0,
|
|
int $limit = 20,
|
|
array $selection = []
|
|
) {
|
|
$this->group = $group;
|
|
$this->filters = $filters;
|
|
$this->search = $search;
|
|
$this->parameters = $parameters;
|
|
$this->sortBy = $sortBy;
|
|
$this->sortOrder = $sortOrder;
|
|
$this->offset = $offset;
|
|
$this->limit = $limit;
|
|
$this->selection = array_map('intval', $selection);
|
|
}
|
|
|
|
/** @return string|null */
|
|
public function getGroup() {
|
|
return $this->group;
|
|
}
|
|
|
|
public function getFilters(): array {
|
|
return $this->filters;
|
|
}
|
|
|
|
/** @return string|null */
|
|
public function getSearch() {
|
|
return $this->search;
|
|
}
|
|
|
|
public function getParameters(): array {
|
|
return $this->parameters;
|
|
}
|
|
|
|
public function getSortBy(): string {
|
|
return $this->sortBy;
|
|
}
|
|
|
|
public function getSortOrder(): string {
|
|
return $this->sortOrder;
|
|
}
|
|
|
|
public function getOffset(): int {
|
|
return $this->offset;
|
|
}
|
|
|
|
public function getLimit(): int {
|
|
return $this->limit;
|
|
}
|
|
|
|
public function getSelection(): array {
|
|
return $this->selection;
|
|
}
|
|
}
|