*/ public function forCompany(int $companyId): array { return InventoryWarehouseNameMapping::allCompanies() ->companyId($companyId) ->get(['warehouse_provider', 'warehouse', 'warehouse_short_name']) ->mapWithKeys(static fn (InventoryWarehouseNameMapping $mapping): array => [ self::key($mapping->warehouse_provider, $mapping->warehouse) => $mapping->warehouse_short_name, ])->all(); } /** @param array $names */ public function fill(object $row, array $names): object { $row->warehouse_short_name = $names[self::key( (string) ($row->warehouse_provider ?? ''), (string) ($row->warehouse ?? ''), )] ?? ''; return $row; } private static function key(string $provider, string $warehouse): string { return $provider . "\0" . $warehouse; } }