Migration renumbers all categories per company as 10, 20, 30… to
eliminate existing duplicates. Observer now increments by 10 instead
of 1 to leave headroom between positions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a category is saved with a sort_order already occupied by another
record in the same company, all records at that position and above are
incremented by 1 before the save, inserting the new one cleanly at the
requested position.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Migration: adds name_ro, name_ru, name_en columns; copies name→name_ro;
seeds RU and EN translations for all 11 default categories
- LaborCategory: label() returns localized name, optionsForSelect() keyed
by canonical name (stored in labors.category) with localized label
- LaborCategoryResource: 3-column form with RO/RU/EN inputs; table shows
all three columns side by side
- LaborResource: category select and filter use optionsForSelect()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Creates labor_categories table (company-scoped) seeded with 11 defaults
- LaborCategory model with BelongsToTenant
- Full Filament CRUD resource with drag-to-reorder (sort_order)
- LaborResource category Select now reads from DB instead of hardcoded const
- Navigation: 'Categorii manopere' in Service group, sort 33
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>