— карта «сырое значение => подпись» */ public function __construct( public string $key, public string $label, public string $type, public string $select, public ?string $groupBy = null, public ?Closure $applyJoin = null, public ?Closure $labels = null, ) {} public function groupByExpr(): string { return $this->groupBy ?? $this->select; } /** * Подпись сырого значения для вывода в таблице. * * @param array|null $labelMap */ public function display(mixed $raw, ?array $labelMap = null): string { if ($raw === null || $raw === '') { return '—'; } if ($labelMap !== null && array_key_exists($raw, $labelMap)) { return $labelMap[$raw]; } if ($this->type === 'date') { return \Illuminate\Support\Carbon::parse((string) $raw)->format('d.m.Y'); } return (string) $raw; } }