feat(labors): trilingual name — add name_en column + Labor::label() helper

- Migration: add nullable `labors.name_en` alongside existing name_ro/
  name_ru.
- Labor model: label(?locale) accessor returns name_{locale} with
  name_ro fallback.
- LaborResource form: expose 3rd 'Nume (EN)' field.
- Table + Select displays now go through label() so options show the
  locale-appropriate name:
    /app/labors table column,
    WorkOrderResource works Select ('[category] name (Nh)'),
    ServiceTemplate items Select,
    ServiceComposer WorkOrderWork snapshot on create.
- Snapshot name saved on wo_works.name at creation reflects the
  current locale; existing rows keep their stored snapshot untouched.

All 306 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-26 10:54:00 +00:00
parent 64a170b7f9
commit 9609295a9e
8 changed files with 50 additions and 7 deletions
@@ -0,0 +1,26 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
if (! Schema::hasColumn('labors', 'name_en')) {
Schema::table('labors', function (Blueprint $t) {
$t->string('name_en')->nullable()->after('name_ru');
});
}
}
public function down(): void
{
if (Schema::hasColumn('labors', 'name_en')) {
Schema::table('labors', function (Blueprint $t) {
$t->dropColumn('name_en');
});
}
}
};