'bool', 'sort_order' => 'int', ]; /** Returns the localised name (name_ro / name_ru / name_en). Fallback: name_ro, then code. */ public function label(?string $locale = null): string { $locale = $locale ?: app()->getLocale(); $col = 'name_' . $locale; return $this->{$col} ?: ($this->name_ro ?: $this->code); } /** Options array keyed by id for Filament Select. */ public static function forSelect(?string $locale = null): array { return static::query() ->where('is_active', true) ->orderBy('sort_order') ->orderBy('code') ->get() ->mapWithKeys(fn (Unit $u) => [$u->id => $u->label($locale)]) ->all(); } /** Look up label from either a Unit id or a legacy code string. */ public static function labelFor(?int $unitId, ?string $codeFallback = null, ?string $locale = null): string { if ($unitId) { $u = static::find($unitId); if ($u) return $u->label($locale); } if ($codeFallback) { $u = static::where('code', $codeFallback)->first(); if ($u) return $u->label($locale); return $codeFallback; } return ''; } }