* } */ class IndustryPackage { /** * @param array $definition */ public function __construct( public readonly string $key, public readonly array $definition, ) {} public function label(): string { return (string) ($this->definition['label'] ?? $this->key); } public function description(): string { return (string) ($this->definition['description'] ?? ''); } public function ticketEntity(): string { return (string) ($this->definition['ticket_entity'] ?? 'customer'); } public function displayLayout(): string { return (string) ($this->definition['display_layout'] ?? 'standard'); } /** * @return array */ public function terminology(): array { return (array) ($this->definition['terminology'] ?? []); } /** * @return array */ public function announcement(): array { return (array) ($this->definition['announcement'] ?? []); } /** * @return list */ public function kpis(): array { return array_values((array) ($this->definition['kpis'] ?? [])); } /** * @return array{name: string, description?: string} */ public function workflowMeta(): array { return (array) ($this->definition['workflow'] ?? ['name' => $this->label().' workflow']); } /** * @return list */ public function departments(): array { return array_values((array) ($this->definition['departments'] ?? [])); } /** * @return list */ public function stages(): array { return array_values((array) ($this->definition['stages'] ?? [])); } /** * @return list */ public function integrations(): array { return array_values((array) ($this->definition['integrations'] ?? [])); } }