From 5e923459f748dcb40892a2393ff0e740a7fae5fd Mon Sep 17 00:00:00 2001 From: Vasyka Date: Tue, 8 Sep 2026 04:38:35 +0000 Subject: [PATCH] Three features: labor group headers, status picker, catalog import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LaborResource: add titlePrefixedWithLabel(false) so group headers show just the localized category name (not "Categorie: Шины"); remove static cache from closure to avoid Octane cross-request locale bleed - WorkOrderDashboard: add changeStatus() Livewire method + Alpine.js dropdown on the status badge so status can be changed directly from the dashboard without going to the full edit form - New artisan command catalog:import-labors {company} that reads database/data/labor-catalog.json (386 operations, 45 leaf categories) and upserts labor_categories + labors for the given tenant; supports --force to update existing records by code - Add "Status actualizat" translation to ru/en JSON Co-Authored-By: Claude Sonnet 4.6 --- .../Commands/ImportLaborCatalogCommand.php | 152 + .../Tenant/Pages/WorkOrderDashboard.php | 15 + .../Tenant/Resources/LaborResource.php | 4 +- database/data/labor-catalog.json | 5320 +++++++++++++++++ lang/en.json | 1 + lang/ru.json | 1 + .../pages/work-order-dashboard.blade.php | 25 +- 7 files changed, 5512 insertions(+), 6 deletions(-) create mode 100644 app/Console/Commands/ImportLaborCatalogCommand.php create mode 100644 database/data/labor-catalog.json diff --git a/app/Console/Commands/ImportLaborCatalogCommand.php b/app/Console/Commands/ImportLaborCatalogCommand.php new file mode 100644 index 0000000..8bfb3ae --- /dev/null +++ b/app/Console/Commands/ImportLaborCatalogCommand.php @@ -0,0 +1,152 @@ +argument('company'); + $company = is_numeric($companyArg) + ? Company::find((int) $companyArg) + : Company::where('slug', $companyArg)->first(); + + if (! $company) { + $this->error("Company '{$companyArg}' not found."); + return 1; + } + + app(TenantManager::class)->setCurrent($company); + + $file = $this->option('file') ?: database_path('data/labor-catalog.json'); + if (! file_exists($file)) { + foreach ([ + '/tmp/service/todo/psauto-katalog-rabot-full.json', + storage_path('app/labor-catalog.json'), + ] as $path) { + if (file_exists($path)) { $file = $path; break; } + } + } + + if (! file_exists($file)) { + $this->error("JSON file not found. Pass --file=/path/to/psauto-katalog-rabot-full.json"); + return 1; + } + + $data = json_decode(file_get_contents($file), true); + $allCats = $data['categories'] ?? []; + $operations = $data['operations'] ?? []; + + $catMap = collect($allCats)->keyBy('id'); + + // Identify leaf categories (those that have operations assigned to them) + $usedCatIds = collect($operations)->pluck('service_category_id')->unique(); + $leafCats = $catMap->only($usedCatIds->all()); + + $this->info("Company: {$company->name} (id={$company->id})"); + $this->info("Categories to import: {$leafCats->count()}"); + $this->info("Operations to import: " . count($operations)); + $force = $this->option('force'); + + // ── 1. Upsert labor categories ──────────────────────────────────── + $this->info('Importing categories...'); + $catCodeToName = []; // leaf code → canonical name (= code itself) + $sortBase = 100; + + foreach ($leafCats as $leaf) { + $parent = $catMap->get($leaf['parent_id']); + $nameRu = ($parent ? $parent['name'] . ' · ' : '') . $leaf['name']; + $code = $leaf['code']; // canonical key + + $existing = LaborCategory::withoutGlobalScope(TenantScope::class) + ->where('company_id', $company->id) + ->where('name', $code) + ->first(); + + if ($existing) { + if ($force) { + $existing->update(['name_ru' => $nameRu]); + $this->line(" Updated cat: {$code}"); + } + } else { + LaborCategory::withoutGlobalScope(TenantScope::class)->create([ + 'company_id' => $company->id, + 'name' => $code, + 'name_ro' => $nameRu, + 'name_ru' => $nameRu, + 'sort_order' => $sortBase + ($leaf['sort_order'] ?? 0), + ]); + $this->line(" Created cat: {$code} ({$nameRu})"); + } + + $catCodeToName[$leaf['id']] = $code; + $sortBase += 5; + } + + // ── 2. Upsert labors ───────────────────────────────────────────── + $this->info('Importing operations...'); + $created = 0; + $updated = 0; + $skipped = 0; + + foreach ($operations as $op) { + $catId = $op['service_category_id']; + $catKey = $catCodeToName[$catId] ?? null; + if (! $catKey) { + $skipped++; + continue; + } + + $hours = round(($op['norm_minutes'] ?? 0) / 60, 2); + $price = round(($op['base_price_minor'] ?? 0) / 100, 2); + $nameRu = $op['name']; + $code = $op['code']; + + $existing = Labor::withoutGlobalScope(TenantScope::class) + ->where('company_id', $company->id) + ->where('code', $code) + ->first(); + + if ($existing) { + if ($force) { + $existing->update([ + 'name_ru' => $nameRu, + 'hours' => $hours, + 'price' => $price, + ]); + $updated++; + } else { + $skipped++; + } + } else { + Labor::withoutGlobalScope(TenantScope::class)->create([ + 'company_id' => $company->id, + 'category' => $catKey, + 'code' => $code, + 'name_ro' => $nameRu, + 'name_ru' => $nameRu, + 'pricing_mode' => 'hourly', + 'hours' => $hours, + 'price' => $price, + 'is_active' => (bool) ($op['is_active'] ?? true), + ]); + $created++; + } + } + + $this->info("Done. Created: {$created}, Updated: {$updated}, Skipped: {$skipped}"); + return 0; + } +} diff --git a/app/Filament/Tenant/Pages/WorkOrderDashboard.php b/app/Filament/Tenant/Pages/WorkOrderDashboard.php index 77b82d5..9a77806 100644 --- a/app/Filament/Tenant/Pages/WorkOrderDashboard.php +++ b/app/Filament/Tenant/Pages/WorkOrderDashboard.php @@ -248,6 +248,21 @@ class WorkOrderDashboard extends Page ->first(['id', 'number']); } + public function changeStatus(string $status): void + { + if (! array_key_exists($status, WorkOrder::STATUSES)) return; + $wo = $this->record; + $wo->status = $status; + if ($status === 'done' && ! $wo->closed_at) { + $wo->closed_at = now(); + } + $wo->save(); + $this->record->refresh(); + \Filament\Notifications\Notification::make() + ->title(__('Status actualizat')) + ->success()->send(); + } + public function closeWorkOrder(): void { $wo = $this->record; diff --git a/app/Filament/Tenant/Resources/LaborResource.php b/app/Filament/Tenant/Resources/LaborResource.php index 6cbd67c..d608bf3 100644 --- a/app/Filament/Tenant/Resources/LaborResource.php +++ b/app/Filament/Tenant/Resources/LaborResource.php @@ -120,9 +120,9 @@ class LaborResource extends Resource ->groups([ Tables\Grouping\Group::make('category') ->label(__('Categorie')) + ->titlePrefixedWithLabel(false) ->getTitleFromRecordUsing(function ($record) { - static $opts = null; - $opts ??= \App\Models\Tenant\LaborCategory::optionsForSelect(); + $opts = \App\Models\Tenant\LaborCategory::optionsForSelect(); return $opts[$record->category] ?? $record->category; }), ]) diff --git a/database/data/labor-catalog.json b/database/data/labor-catalog.json new file mode 100644 index 0000000..79eeb67 --- /dev/null +++ b/database/data/labor-catalog.json @@ -0,0 +1,5320 @@ +{ + "categories": [ + { + "id": 1, + "name": "Диагностика", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag", + "parent_id": null + }, + { + "id": 7, + "name": "Техническое обслуживание", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "to", + "parent_id": null + }, + { + "id": 12, + "name": "Двигатель и навесное", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine", + "parent_id": null + }, + { + "id": 18, + "name": "Топливная система", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "fuel", + "parent_id": null + }, + { + "id": 22, + "name": "Трансмиссия", + "sort_order": 50, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans", + "parent_id": null + }, + { + "id": 28, + "name": "Ходовая часть", + "sort_order": 60, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "chassis", + "parent_id": null + }, + { + "id": 33, + "name": "Рулевое управление", + "sort_order": 70, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "steering", + "parent_id": null + }, + { + "id": 35, + "name": "Тормозная система", + "sort_order": 80, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "brakes", + "parent_id": null + }, + { + "id": 37, + "name": "Колёса и развал", + "sort_order": 90, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "wheels", + "parent_id": null + }, + { + "id": 40, + "name": "Электрика и электроника", + "sort_order": 100, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "electric", + "parent_id": null + }, + { + "id": 45, + "name": "Климат и комфорт", + "sort_order": 110, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "climate", + "parent_id": null + }, + { + "id": 47, + "name": "Кузовные работы", + "sort_order": 120, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body", + "parent_id": null + }, + { + "id": 53, + "name": "Гибриды и электромобили", + "sort_order": 130, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "hybrid", + "parent_id": null + }, + { + "id": 55, + "name": "Детейлинг и мойка", + "sort_order": 140, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "detailing", + "parent_id": null + }, + { + "id": 57, + "name": "Дополнительное оборудование", + "sort_order": 150, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "extra", + "parent_id": null + }, + { + "id": 59, + "name": "Сервисные операции", + "sort_order": 160, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "service", + "parent_id": null + }, + { + "id": 61, + "name": "Пассивная безопасность", + "sort_order": 170, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "safety", + "parent_id": null + }, + { + "id": 2, + "name": "Компьютерная", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag.scan", + "parent_id": 1 + }, + { + "id": 3, + "name": "Двигателя", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag.engine", + "parent_id": 1 + }, + { + "id": 4, + "name": "Ходовой", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag.chassis", + "parent_id": 1 + }, + { + "id": 5, + "name": "Электрики", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag.electric", + "parent_id": 1 + }, + { + "id": 6, + "name": "Специальная", + "sort_order": 50, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "diag.special", + "parent_id": 1 + }, + { + "id": 8, + "name": "Регламентное", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "to.regular", + "parent_id": 7 + }, + { + "id": 9, + "name": "Масла и жидкости", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "to.fluids", + "parent_id": 7 + }, + { + "id": 10, + "name": "Фильтры", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "to.filters", + "parent_id": 7 + }, + { + "id": 11, + "name": "Свечи и зажигание", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "to.ignition", + "parent_id": 7 + }, + { + "id": 13, + "name": "Механическая часть", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine.mech", + "parent_id": 12 + }, + { + "id": 14, + "name": "ГРМ", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine.timing", + "parent_id": 12 + }, + { + "id": 15, + "name": "Смазка и охлаждение", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine.cooling", + "parent_id": 12 + }, + { + "id": 16, + "name": "Наддув", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine.turbo", + "parent_id": 12 + }, + { + "id": 17, + "name": "Впуск и выпуск", + "sort_order": 50, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "engine.intake", + "parent_id": 12 + }, + { + "id": 19, + "name": "Бензин", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "fuel.petrol", + "parent_id": 18 + }, + { + "id": 20, + "name": "Дизель", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "fuel.diesel", + "parent_id": 18 + }, + { + "id": 21, + "name": "Газовое оборудование", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "fuel.lpg", + "parent_id": 18 + }, + { + "id": 23, + "name": "Сцепление и МКПП", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans.manual", + "parent_id": 22 + }, + { + "id": 24, + "name": "АКПП", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans.auto", + "parent_id": 22 + }, + { + "id": 25, + "name": "Роботы и вариаторы", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans.dsg", + "parent_id": 22 + }, + { + "id": 26, + "name": "Полный привод", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans.awd", + "parent_id": 22 + }, + { + "id": 27, + "name": "Приводы и карданы", + "sort_order": 50, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z", + "multiplier_bp": 10000, + "code": "trans.shafts", + "parent_id": 22 + }, + { + "id": 29, + "name": "Передняя подвеска", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "chassis.front", + "parent_id": 28 + }, + { + "id": 30, + "name": "Задняя подвеска", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "chassis.rear", + "parent_id": 28 + }, + { + "id": 31, + "name": "Ступицы и подшипники", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "chassis.hub", + "parent_id": 28 + }, + { + "id": 32, + "name": "Пневмо- и гидроподвеска", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "chassis.air", + "parent_id": 28 + }, + { + "id": 34, + "name": "Рулевое управление", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "steering.main", + "parent_id": 33 + }, + { + "id": 36, + "name": "Тормозная система", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "brakes.main", + "parent_id": 35 + }, + { + "id": 38, + "name": "Шиномонтаж", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "wheels.tires", + "parent_id": 37 + }, + { + "id": 39, + "name": "Углы установки колёс", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "wheels.align", + "parent_id": 37 + }, + { + "id": 41, + "name": "Питание", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "electric.power", + "parent_id": 40 + }, + { + "id": 42, + "name": "Освещение", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "electric.light", + "parent_id": 40 + }, + { + "id": 43, + "name": "Электроника кузова", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "electric.body", + "parent_id": 40 + }, + { + "id": 44, + "name": "Ключи и охрана", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "electric.security", + "parent_id": 40 + }, + { + "id": 46, + "name": "Климат и комфорт", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "climate.main", + "parent_id": 45 + }, + { + "id": 48, + "name": "Ремонт", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body.repair", + "parent_id": 47 + }, + { + "id": 49, + "name": "Покраска", + "sort_order": 20, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body.paint", + "parent_id": 47 + }, + { + "id": 50, + "name": "Защита и стайлинг", + "sort_order": 30, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body.protect", + "parent_id": 47 + }, + { + "id": 51, + "name": "Стёкла", + "sort_order": 40, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body.glass", + "parent_id": 47 + }, + { + "id": 52, + "name": "Салон", + "sort_order": 50, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "body.interior", + "parent_id": 47 + }, + { + "id": 54, + "name": "Гибриды и электромобили", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "hybrid.main", + "parent_id": 53 + }, + { + "id": 56, + "name": "Детейлинг и мойка", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "detailing.main", + "parent_id": 55 + }, + { + "id": 58, + "name": "Дополнительное оборудование", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "extra.main", + "parent_id": 57 + }, + { + "id": 60, + "name": "Сервисные операции", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "service.main", + "parent_id": 59 + }, + { + "id": 62, + "name": "Пассивная безопасность", + "sort_order": 10, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z", + "multiplier_bp": 10000, + "code": "safety.main", + "parent_id": 61 + } + ], + "operations": [ + { + "id": 5, + "service_category_id": 2, + "code": "diag.scan.adapt", + "name": "Адаптации и сброс сервисных интервалов", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 8, + "service_category_id": 2, + "code": "diag.scan.can", + "name": "Диагностика CAN и CAN-FD, поиск обрыва шины", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 3, + "service_category_id": 2, + "code": "diag.scan.testdrive", + "name": "Диагностика с тест-драйвом", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 2, + "service_category_id": 2, + "code": "diag.scan.full", + "name": "Полное сканирование всех блоков", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 6, + "service_category_id": 2, + "code": "diag.scan.coding", + "name": "Программирование и кодирование блоков", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 7, + "service_category_id": 2, + "code": "diag.scan.sfd", + "name": "Работа со шлюзом SFD (Porsche, Audi, VW)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 1, + "service_category_id": 2, + "code": "diag.scan.read", + "name": "Считывание и расшифровка ошибок", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 9, + "service_category_id": 2, + "code": "diag.scan.tuning", + "name": "Чип-тюнинг Stage 1 (прошивка ECU)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 4, + "service_category_id": 2, + "code": "diag.scan.live", + "name": "Чтение данных в реальном времени", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 17, + "service_category_id": 3, + "code": "diag.engine.pcv", + "name": "Диагностика системы вентиляции картера", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 10, + "service_category_id": 3, + "code": "diag.engine.compression", + "name": "Замер компрессии", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 13, + "service_category_id": 3, + "code": "diag.engine.backflow", + "name": "Замер обратного слива форсунок", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 18, + "service_category_id": 3, + "code": "diag.engine.timing_marks", + "name": "Проверка ГРМ по меткам", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 15, + "service_category_id": 3, + "code": "diag.engine.oil_pressure", + "name": "Проверка давления масла", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 14, + "service_category_id": 3, + "code": "diag.engine.fuel_pressure", + "name": "Проверка давления топлива", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 12, + "service_category_id": 3, + "code": "diag.engine.injectors", + "name": "Проверка форсунок на стенде (комплект)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 11, + "service_category_id": 3, + "code": "diag.engine.leakdown", + "name": "Тест на утечки цилиндров (пневмотест)", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 16, + "service_category_id": 3, + "code": "diag.engine.endoscopy", + "name": "Эндоскопия цилиндров", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 20, + "service_category_id": 4, + "code": "diag.chassis.shaker", + "name": "Диагностика на вибростенде", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 19, + "service_category_id": 4, + "code": "diag.chassis.lift", + "name": "Диагностика подвески на подъёмнике", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 22, + "service_category_id": 4, + "code": "diag.chassis.noise", + "name": "Поиск стуков с выездом", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 21, + "service_category_id": 4, + "code": "diag.chassis.steering_play", + "name": "Проверка люфтов рулевого", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 26, + "service_category_id": 5, + "code": "diag.electric.starter", + "name": "Диагностика стартера на автомобиле", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 23, + "service_category_id": 5, + "code": "diag.electric.leak", + "name": "Диагностика утечки тока", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 25, + "service_category_id": 5, + "code": "diag.electric.wiring", + "name": "Поиск обрыва проводки", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 24, + "service_category_id": 5, + "code": "diag.electric.battery", + "name": "Проверка АКБ и генератора нагрузочная", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 27, + "service_category_id": 6, + "code": "diag.special.at", + "name": "Диагностика АКПП с адаптациями", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 30, + "service_category_id": 6, + "code": "diag.special.hybrid", + "name": "Диагностика высоковольтной батареи", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 28, + "service_category_id": 6, + "code": "diag.special.ac", + "name": "Диагностика системы кондиционирования", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 31, + "service_category_id": 6, + "code": "diag.special.smoke", + "name": "Дымогенератор: поиск подсоса воздуха", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 33, + "service_category_id": 6, + "code": "diag.special.adas", + "name": "Калибровка ADAS (камера\/радар) после ремонта", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 29, + "service_category_id": 6, + "code": "diag.special.freon", + "name": "Поиск утечки фреона", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 32, + "service_category_id": 6, + "code": "diag.special.prepurchase", + "name": "Проверка перед покупкой (полная)", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 37, + "service_category_id": 8, + "code": "to.regular.presale", + "name": "Предпродажная подготовка", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 38, + "service_category_id": 8, + "code": "to.regular.seasonal", + "name": "Сезонная подготовка", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 34, + "service_category_id": 8, + "code": "to.regular.to1", + "name": "ТО-1 малое: масло и фильтры", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 35, + "service_category_id": 8, + "code": "to.regular.to2", + "name": "ТО-2 среднее: плюс свечи, салонный, тормозная", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 36, + "service_category_id": 8, + "code": "to.regular.to3", + "name": "ТО-3 большое: плюс ГРМ, жидкости, диагностика", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 48, + "service_category_id": 9, + "code": "to.fluids.coolant", + "name": "Антифриз с промывкой системы", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 50, + "service_category_id": 9, + "code": "to.fluids.air_susp", + "name": "Жидкость гидроподвески", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 49, + "service_category_id": 9, + "code": "to.fluids.ps", + "name": "Жидкость гидроусилителя", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 44, + "service_category_id": 9, + "code": "to.fluids.at_full", + "name": "Масло АКПП, аппаратная замена с промывкой", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 43, + "service_category_id": 9, + "code": "to.fluids.at_partial", + "name": "Масло АКПП, частичная замена", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 39, + "service_category_id": 9, + "code": "to.fluids.engine_oil", + "name": "Масло двигателя с фильтром", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 40, + "service_category_id": 9, + "code": "to.fluids.engine_oil_guard", + "name": "Масло двигателя со снятием защиты", + "description": null, + "norm_minutes": 54, + "base_price_minor": 36000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 42, + "service_category_id": 9, + "code": "to.fluids.mt", + "name": "Масло механической коробки", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 45, + "service_category_id": 9, + "code": "to.fluids.transfer", + "name": "Масло раздаточной коробки", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 46, + "service_category_id": 9, + "code": "to.fluids.diff", + "name": "Масло редуктора", + "description": null, + "norm_minutes": 42, + "base_price_minor": 28000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 41, + "service_category_id": 9, + "code": "to.fluids.flush", + "name": "Промывка двигателя перед заменой", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 47, + "service_category_id": 9, + "code": "to.fluids.brake", + "name": "Тормозная жидкость с прокачкой", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 51, + "service_category_id": 10, + "code": "to.filters.air", + "name": "Воздушный фильтр", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 57, + "service_category_id": 10, + "code": "to.filters.dpf", + "name": "Сажевый фильтр: снятие и промывка", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 52, + "service_category_id": 10, + "code": "to.filters.cabin", + "name": "Салонный фильтр", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 53, + "service_category_id": 10, + "code": "to.filters.cabin_panel", + "name": "Салонный фильтр со снятием панели", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 55, + "service_category_id": 10, + "code": "to.filters.fuel_tank", + "name": "Топливный фильтр в баке", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 54, + "service_category_id": 10, + "code": "to.filters.fuel_ext", + "name": "Топливный фильтр внешний", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 56, + "service_category_id": 10, + "code": "to.filters.at", + "name": "Фильтр АКПП с поддоном", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 63, + "service_category_id": 11, + "code": "to.ignition.wires", + "name": "Высоковольтные провода", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 62, + "service_category_id": 11, + "code": "to.ignition.coils", + "name": "Катушки зажигания (комплект)", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 61, + "service_category_id": 11, + "code": "to.ignition.glow_drill", + "name": "Свеча накаливания с высверливанием (за штуку)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 58, + "service_category_id": 11, + "code": "to.ignition.spark4", + "name": "Свечи зажигания, 4 цилиндра", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 59, + "service_category_id": 11, + "code": "to.ignition.spark8", + "name": "Свечи зажигания, 6–8 цилиндров со снятием коллектора", + "description": null, + "norm_minutes": 108, + "base_price_minor": 72000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 60, + "service_category_id": 11, + "code": "to.ignition.glow", + "name": "Свечи накаливания", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 71, + "service_category_id": 13, + "code": "engine.mech.bearings", + "name": "Замена вкладышей коленвала", + "description": null, + "norm_minutes": 960, + "base_price_minor": 640000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 70, + "service_category_id": 13, + "code": "engine.mech.rings", + "name": "Замена поршневых колец", + "description": null, + "norm_minutes": 1200, + "base_price_minor": 800000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 66, + "service_category_id": 13, + "code": "engine.mech.head_gasket", + "name": "Замена прокладки головки блока", + "description": null, + "norm_minutes": 720, + "base_price_minor": 480000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 65, + "service_category_id": 13, + "code": "engine.mech.overhaul", + "name": "Капитальный ремонт двигателя", + "description": null, + "norm_minutes": 1800, + "base_price_minor": 1200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 69, + "service_category_id": 13, + "code": "engine.mech.valve_seals", + "name": "Маслосъёмные колпачки без снятия головки", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 78, + "service_category_id": 13, + "code": "engine.mech.mounts", + "name": "Опоры двигателя", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 75, + "service_category_id": 13, + "code": "engine.mech.valve_cover", + "name": "Прокладка клапанной крышки", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 76, + "service_category_id": 13, + "code": "engine.mech.sump", + "name": "Прокладка поддона", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 77, + "service_category_id": 13, + "code": "engine.mech.valve_adjust", + "name": "Регулировка клапанов", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 68, + "service_category_id": 13, + "code": "engine.mech.head_repair", + "name": "Ремонт головки: шлифовка, клапаны, сёдла", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 73, + "service_category_id": 13, + "code": "engine.mech.seal_rear", + "name": "Сальник коленвала задний", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 72, + "service_category_id": 13, + "code": "engine.mech.seal_front", + "name": "Сальник коленвала передний", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 74, + "service_category_id": 13, + "code": "engine.mech.cam_seals", + "name": "Сальники распредвала", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 67, + "service_category_id": 13, + "code": "engine.mech.head_remove", + "name": "Снятие и установка головки блока", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 64, + "service_category_id": 13, + "code": "engine.mech.remove", + "name": "Снятие и установка двигателя", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 83, + "service_category_id": 14, + "code": "engine.timing.tensioner", + "name": "Натяжитель цепи", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 87, + "service_category_id": 14, + "code": "engine.timing.idler", + "name": "Натяжной или обводной ролик", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 79, + "service_category_id": 14, + "code": "engine.timing.belt", + "name": "Ремень ГРМ", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 80, + "service_category_id": 14, + "code": "engine.timing.belt_pump", + "name": "Ремень ГРМ с помпой и роликами", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 86, + "service_category_id": 14, + "code": "engine.timing.aux_belt", + "name": "Ремень навесного оборудования", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 84, + "service_category_id": 14, + "code": "engine.timing.guides", + "name": "Успокоители и башмаки", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 85, + "service_category_id": 14, + "code": "engine.timing.vvt", + "name": "Фазовращатели и муфты VVT", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 82, + "service_category_id": 14, + "code": "engine.timing.chain_v", + "name": "Цепь ГРМ, V6 или V8, две цепи", + "description": null, + "norm_minutes": 960, + "base_price_minor": 640000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 81, + "service_category_id": 14, + "code": "engine.timing.chain", + "name": "Цепь ГРМ, одна цепь", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 95, + "service_category_id": 15, + "code": "engine.cooling.fan", + "name": "Вентилятор или вискомуфта", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 92, + "service_category_id": 15, + "code": "engine.cooling.pump", + "name": "Водяная помпа", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 88, + "service_category_id": 15, + "code": "engine.cooling.oil_pump", + "name": "Масляный насос", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 97, + "service_category_id": 15, + "code": "engine.cooling.pressure_test", + "name": "Опрессовка системы охлаждения", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 94, + "service_category_id": 15, + "code": "engine.cooling.hoses", + "name": "Патрубки системы охлаждения", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 93, + "service_category_id": 15, + "code": "engine.cooling.pump_chain", + "name": "Помпа с приводом от цепи", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 98, + "service_category_id": 15, + "code": "engine.cooling.radiator_clean", + "name": "Промывка радиатора наружная (от насекомых и грязи)", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 90, + "service_category_id": 15, + "code": "engine.cooling.radiator", + "name": "Радиатор охлаждения", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 96, + "service_category_id": 15, + "code": "engine.cooling.tank", + "name": "Расширительный бачок", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 89, + "service_category_id": 15, + "code": "engine.cooling.oil_cooler", + "name": "Теплообменник масляный", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 91, + "service_category_id": 15, + "code": "engine.cooling.thermostat", + "name": "Термостат", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 103, + "service_category_id": 16, + "code": "engine.turbo.actuator", + "name": "Актуатор турбины или вестгейт", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 101, + "service_category_id": 16, + "code": "engine.turbo.intercooler", + "name": "Интеркулер", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 105, + "service_category_id": 16, + "code": "engine.turbo.egr", + "name": "Клапан EGR", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 106, + "service_category_id": 16, + "code": "engine.turbo.pcv", + "name": "Клапан вентиляции картера", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 102, + "service_category_id": 16, + "code": "engine.turbo.pipes", + "name": "Патрубки наддува", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 100, + "service_category_id": 16, + "code": "engine.turbo.cartridge", + "name": "Ремонт турбины: замена картриджа", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 99, + "service_category_id": 16, + "code": "engine.turbo.turbo", + "name": "Турбокомпрессор", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 104, + "service_category_id": 16, + "code": "engine.turbo.egr_clean", + "name": "Чистка системы EGR", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 109, + "service_category_id": 17, + "code": "engine.intake.swirl", + "name": "Вихревые заслонки", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 107, + "service_category_id": 17, + "code": "engine.intake.manifold", + "name": "Впускной коллектор", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 115, + "service_category_id": 17, + "code": "engine.intake.exh_manifold", + "name": "Выпускной коллектор", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 116, + "service_category_id": 17, + "code": "engine.intake.muffler", + "name": "Глушитель или резонатор", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 111, + "service_category_id": 17, + "code": "engine.intake.throttle", + "name": "Дроссельная заслонка", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 113, + "service_category_id": 17, + "code": "engine.intake.cat", + "name": "Катализатор", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 114, + "service_category_id": 17, + "code": "engine.intake.lambda", + "name": "Лямбда-зонд", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 110, + "service_category_id": 17, + "code": "engine.intake.maf", + "name": "Расходомер воздуха", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 118, + "service_category_id": 17, + "code": "engine.intake.dpf_regen", + "name": "Регенерация сажевого фильтра принудительная (без снятия)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 117, + "service_category_id": 17, + "code": "engine.intake.welding", + "name": "Сварка выхлопной системы", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 108, + "service_category_id": 17, + "code": "engine.intake.walnut", + "name": "Чистка впуска орехом (walnut blasting)", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 112, + "service_category_id": 17, + "code": "engine.intake.throttle_clean", + "name": "Чистка дроссельной заслонки с адаптацией", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 125, + "service_category_id": 19, + "code": "fuel.petrol.regulator", + "name": "Регулятор давления топлива", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 124, + "service_category_id": 19, + "code": "fuel.petrol.tank", + "name": "Снятие и промывка топливного бака", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 120, + "service_category_id": 19, + "code": "fuel.petrol.hpfp", + "name": "ТНВД непосредственного впрыска", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 119, + "service_category_id": 19, + "code": "fuel.petrol.pump", + "name": "Топливный насос в баке", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 123, + "service_category_id": 19, + "code": "fuel.petrol.ultrasonic", + "name": "Ультразвуковая чистка форсунок (комплект)", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 121, + "service_category_id": 19, + "code": "fuel.petrol.inj_direct", + "name": "Форсунки непосредственного впрыска", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 122, + "service_category_id": 19, + "code": "fuel.petrol.inj_port", + "name": "Форсунки распределённого впрыска", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 130, + "service_category_id": 20, + "code": "fuel.diesel.pressure_valve", + "name": "Клапан регулировки давления", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 131, + "service_category_id": 20, + "code": "fuel.diesel.heater", + "name": "Подогреватель топлива", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 127, + "service_category_id": 20, + "code": "fuel.diesel.cr_repair", + "name": "Ремонт форсунки Common Rail (за штуку)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 126, + "service_category_id": 20, + "code": "fuel.diesel.hpfp", + "name": "ТНВД дизельный", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 129, + "service_category_id": 20, + "code": "fuel.diesel.rail", + "name": "Топливная рампа", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 128, + "service_category_id": 20, + "code": "fuel.diesel.inj_drill", + "name": "Форсунка с высверливанием (за штуку)", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 135, + "service_category_id": 21, + "code": "fuel.lpg.filters", + "name": "Газовые фильтры", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 134, + "service_category_id": 21, + "code": "fuel.lpg.service", + "name": "Обслуживание газового оборудования", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 132, + "service_category_id": 21, + "code": "fuel.lpg.install", + "name": "Установка ГБО 4 поколения", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 133, + "service_category_id": 21, + "code": "fuel.lpg.install5", + "name": "Установка ГБО 5 поколения (прямой впрыск)", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 138, + "service_category_id": 23, + "code": "trans.manual.release", + "name": "Выжимной подшипник", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 139, + "service_category_id": 23, + "code": "trans.manual.cylinder", + "name": "Главный или рабочий цилиндр сцепления", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 143, + "service_category_id": 23, + "code": "trans.manual.linkage", + "name": "Кулиса и тросы переключения", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 141, + "service_category_id": 23, + "code": "trans.manual.repair", + "name": "Ремонт МКПП: синхронизаторы, подшипники", + "description": null, + "norm_minutes": 720, + "base_price_minor": 480000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 142, + "service_category_id": 23, + "code": "trans.manual.seals", + "name": "Сальники МКПП", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 140, + "service_category_id": 23, + "code": "trans.manual.remove", + "name": "Снятие и установка МКПП", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 136, + "service_category_id": 23, + "code": "trans.manual.clutch", + "name": "Сцепление (комплект)", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 137, + "service_category_id": 23, + "code": "trans.manual.clutch_dmf", + "name": "Сцепление с двухмассовым маховиком", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 151, + "service_category_id": 24, + "code": "trans.auto.adapt", + "name": "Адаптация АКПП после ремонта", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 146, + "service_category_id": 24, + "code": "trans.auto.converter", + "name": "Гидротрансформатор", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 150, + "service_category_id": 24, + "code": "trans.auto.overhaul", + "name": "Капитальный ремонт АКПП", + "description": null, + "norm_minutes": 1500, + "base_price_minor": 1000000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 148, + "service_category_id": 24, + "code": "trans.auto.pan_gasket", + "name": "Прокладка поддона АКПП", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 145, + "service_category_id": 24, + "code": "trans.auto.valve_body", + "name": "Ремонт гидроблока (мехатроника)", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 149, + "service_category_id": 24, + "code": "trans.auto.seals", + "name": "Сальники АКПП", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 144, + "service_category_id": 24, + "code": "trans.auto.remove", + "name": "Снятие и установка АКПП", + "description": null, + "norm_minutes": 420, + "base_price_minor": 280000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 147, + "service_category_id": 24, + "code": "trans.auto.solenoids", + "name": "Соленоиды АКПП", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 153, + "service_category_id": 25, + "code": "trans.dsg.mechatronic", + "name": "Мехатроник DSG", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 152, + "service_category_id": 25, + "code": "trans.dsg.service", + "name": "Обслуживание DSG: масло и фильтр", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 156, + "service_category_id": 25, + "code": "trans.dsg.cvt_service", + "name": "Обслуживание вариатора", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 155, + "service_category_id": 25, + "code": "trans.dsg.cvt_belt", + "name": "Ремень или цепь вариатора", + "description": null, + "norm_minutes": 840, + "base_price_minor": 560000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 154, + "service_category_id": 25, + "code": "trans.dsg.clutches", + "name": "Сцепления DSG", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 159, + "service_category_id": 26, + "code": "trans.awd.haldex", + "name": "Муфта Haldex", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 160, + "service_category_id": 26, + "code": "trans.awd.haldex_service", + "name": "Обслуживание Haldex: масло и фильтр", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 157, + "service_category_id": 26, + "code": "trans.awd.transfer", + "name": "Раздаточная коробка", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 161, + "service_category_id": 26, + "code": "trans.awd.diff", + "name": "Редуктор передний или задний", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 158, + "service_category_id": 26, + "code": "trans.awd.transfer_repair", + "name": "Ремонт раздатки: цепь, подшипники", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 162, + "service_category_id": 26, + "code": "trans.awd.diff_repair", + "name": "Ремонт редуктора", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 167, + "service_category_id": 27, + "code": "trans.shafts.propshaft", + "name": "Карданный вал", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 169, + "service_category_id": 27, + "code": "trans.shafts.ujoint", + "name": "Крестовина", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 168, + "service_category_id": 27, + "code": "trans.shafts.center_bearing", + "name": "Подвесной подшипник кардана", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 166, + "service_category_id": 27, + "code": "trans.shafts.shaft", + "name": "Привод в сборе", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 165, + "service_category_id": 27, + "code": "trans.shafts.boot", + "name": "Пыльник ШРУСа", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 164, + "service_category_id": 27, + "code": "trans.shafts.cv_inner", + "name": "ШРУС внутренний", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 163, + "service_category_id": 27, + "code": "trans.shafts.cv_outer", + "name": "ШРУС наружный", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:48.000000Z", + "updated_at": "2026-09-07T13:49:48.000000Z" + }, + { + "id": 170, + "service_category_id": 29, + "code": "chassis.front.shock", + "name": "Амортизатор передний (за штуку)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 179, + "service_category_id": 29, + "code": "chassis.front.bar_bushings", + "name": "Втулки стабилизатора", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 172, + "service_category_id": 29, + "code": "chassis.front.mount", + "name": "Опорный подшипник", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 180, + "service_category_id": 29, + "code": "chassis.front.subframe", + "name": "Подрамник", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 173, + "service_category_id": 29, + "code": "chassis.front.spring", + "name": "Пружина", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 174, + "service_category_id": 29, + "code": "chassis.front.arm_upper", + "name": "Рычаг верхний", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 175, + "service_category_id": 29, + "code": "chassis.front.arm_lower", + "name": "Рычаг нижний", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 176, + "service_category_id": 29, + "code": "chassis.front.bushings", + "name": "Сайлентблоки рычага с запрессовкой", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 171, + "service_category_id": 29, + "code": "chassis.front.strut", + "name": "Стойка в сборе", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 178, + "service_category_id": 29, + "code": "chassis.front.link", + "name": "Стойка стабилизатора", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 177, + "service_category_id": 29, + "code": "chassis.front.balljoint", + "name": "Шаровая опора", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 181, + "service_category_id": 30, + "code": "chassis.rear.shock", + "name": "Амортизатор задний (за штуку)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 185, + "service_category_id": 30, + "code": "chassis.rear.beam", + "name": "Балка задняя", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 184, + "service_category_id": 30, + "code": "chassis.rear.trailing_arm", + "name": "Продольный рычаг", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 182, + "service_category_id": 30, + "code": "chassis.rear.spring", + "name": "Пружина задняя", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 183, + "service_category_id": 30, + "code": "chassis.rear.arm", + "name": "Рычаг многорычажки (за штуку)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 186, + "service_category_id": 30, + "code": "chassis.rear.beam_bushings", + "name": "Сайлентблоки балки", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 190, + "service_category_id": 31, + "code": "chassis.hub.abs_sensor", + "name": "Датчик ABS", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 189, + "service_category_id": 31, + "code": "chassis.hub.knuckle", + "name": "Поворотный кулак", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 188, + "service_category_id": 31, + "code": "chassis.hub.hub", + "name": "Ступица в сборе", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 187, + "service_category_id": 31, + "code": "chassis.hub.bearing", + "name": "Ступичный подшипник с запрессовкой", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 195, + "service_category_id": 32, + "code": "chassis.air.adaptive_shock", + "name": "Амортизатор с электронным управлением", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 193, + "service_category_id": 32, + "code": "chassis.air.valve_block", + "name": "Блок клапанов", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 194, + "service_category_id": 32, + "code": "chassis.air.calibrate", + "name": "Диагностика и калибровка уровня", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 192, + "service_category_id": 32, + "code": "chassis.air.compressor", + "name": "Компрессор пневмоподвески", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 196, + "service_category_id": 32, + "code": "chassis.air.premium", + "name": "Обслуживание Porsche PASM или Mercedes ABC", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 191, + "service_category_id": 32, + "code": "chassis.air.bag", + "name": "Пневмобаллон (за штуку)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 202, + "service_category_id": 34, + "code": "steering.main.ps_pump", + "name": "Насос гидроусилителя", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 201, + "service_category_id": 34, + "code": "steering.main.boots", + "name": "Пыльники рейки", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 200, + "service_category_id": 34, + "code": "steering.main.rack_repair", + "name": "Ремонт рулевой рейки", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 199, + "service_category_id": 34, + "code": "steering.main.rack", + "name": "Рулевая рейка", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 205, + "service_category_id": 34, + "code": "steering.main.wheel", + "name": "Рулевое колесо", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 204, + "service_category_id": 34, + "code": "steering.main.shaft", + "name": "Рулевой кардан", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 197, + "service_category_id": 34, + "code": "steering.main.tie_end", + "name": "Рулевые наконечники", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 198, + "service_category_id": 34, + "code": "steering.main.tie_rod", + "name": "Рулевые тяги", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 206, + "service_category_id": 34, + "code": "steering.main.clockspring", + "name": "Шлейф подрулевой (SRS)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 203, + "service_category_id": 34, + "code": "steering.main.eps", + "name": "Электроусилитель руля", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 220, + "service_category_id": 36, + "code": "brakes.main.abs_unit", + "name": "Блок ABS", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 217, + "service_category_id": 36, + "code": "brakes.main.booster", + "name": "Вакуумный усилитель", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 216, + "service_category_id": 36, + "code": "brakes.main.master", + "name": "Главный тормозной цилиндр", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 224, + "service_category_id": 36, + "code": "brakes.main.wear_sensor", + "name": "Датчик износа колодок", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 209, + "service_category_id": 36, + "code": "brakes.main.discs", + "name": "Диски с колодками (ось)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 208, + "service_category_id": 36, + "code": "brakes.main.pads_rear", + "name": "Колодки задние", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 207, + "service_category_id": 36, + "code": "brakes.main.pads_front", + "name": "Колодки передние", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 223, + "service_category_id": 36, + "code": "brakes.main.epb_pads", + "name": "Колодки электрического ручника с разведением", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 213, + "service_category_id": 36, + "code": "brakes.main.guides", + "name": "Направляющие суппорта", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 219, + "service_category_id": 36, + "code": "brakes.main.bleed_abs", + "name": "Прокачка ABS сканером", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 218, + "service_category_id": 36, + "code": "brakes.main.bleed", + "name": "Прокачка тормозов", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 210, + "service_category_id": 36, + "code": "brakes.main.turning", + "name": "Проточка тормозных дисков (ось)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 222, + "service_category_id": 36, + "code": "brakes.main.handbrake_adjust", + "name": "Регулировка ручного тормоза", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 212, + "service_category_id": 36, + "code": "brakes.main.caliper_repair", + "name": "Ремонт суппорта", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 211, + "service_category_id": 36, + "code": "brakes.main.caliper", + "name": "Суппорт", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 215, + "service_category_id": 36, + "code": "brakes.main.lines", + "name": "Тормозные трубки", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 214, + "service_category_id": 36, + "code": "brakes.main.hoses", + "name": "Тормозные шланги", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 221, + "service_category_id": 36, + "code": "brakes.main.handbrake_cable", + "name": "Трос ручного тормоза", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 231, + "service_category_id": 38, + "code": "wheels.tires.balance", + "name": "Балансировка (за колесо)", + "description": null, + "norm_minutes": 12, + "base_price_minor": 8000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 237, + "service_category_id": 38, + "code": "wheels.tires.tpms", + "name": "Вентиль или датчик TPMS", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 235, + "service_category_id": 38, + "code": "wheels.tires.alloy_repair", + "name": "Правка литого диска", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 236, + "service_category_id": 38, + "code": "wheels.tires.steel_repair", + "name": "Правка стального диска", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 238, + "service_category_id": 38, + "code": "wheels.tires.tpms_program", + "name": "Программирование датчиков TPMS", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 234, + "service_category_id": 38, + "code": "wheels.tires.patch", + "name": "Ремонт прокола грибком изнутри", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 233, + "service_category_id": 38, + "code": "wheels.tires.plug", + "name": "Ремонт прокола жгутом", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 240, + "service_category_id": 38, + "code": "wheels.tires.storage", + "name": "Сезонное хранение комплекта", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 230, + "service_category_id": 38, + "code": "wheels.tires.wheel_off", + "name": "Снятие и установка колеса (за штуку)", + "description": null, + "norm_minutes": 12, + "base_price_minor": 8000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 239, + "service_category_id": 38, + "code": "wheels.tires.disposal", + "name": "Утилизация шины (за штуку)", + "description": null, + "norm_minutes": 6, + "base_price_minor": 4000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 232, + "service_category_id": 38, + "code": "wheels.tires.balance_finish", + "name": "Финишная балансировка на автомобиле", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 225, + "service_category_id": 38, + "code": "wheels.tires.r15", + "name": "Шиномонтаж R13–R15, 4 колеса", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 226, + "service_category_id": 38, + "code": "wheels.tires.r17", + "name": "Шиномонтаж R16–R17, 4 колеса", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 227, + "service_category_id": 38, + "code": "wheels.tires.r19", + "name": "Шиномонтаж R18–R19, 4 колеса", + "description": null, + "norm_minutes": 78, + "base_price_minor": 52000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 228, + "service_category_id": 38, + "code": "wheels.tires.r22", + "name": "Шиномонтаж R20–R22, 4 колеса", + "description": null, + "norm_minutes": 96, + "base_price_minor": 64000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 229, + "service_category_id": 38, + "code": "wheels.tires.runflat", + "name": "Шиномонтаж RunFlat (за колесо)", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 244, + "service_category_id": 39, + "code": "wheels.align.check", + "name": "Проверка геометрии без регулировки", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 241, + "service_category_id": 39, + "code": "wheels.align.2wd", + "name": "Развал-схождение 2WD", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 242, + "service_category_id": 39, + "code": "wheels.align.4wd", + "name": "Развал-схождение 4WD или многорычажка", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 243, + "service_category_id": 39, + "code": "wheels.align.adas", + "name": "Развал-схождение с калибровкой ADAS", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 245, + "service_category_id": 41, + "code": "electric.power.battery", + "name": "Аккумулятор", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 246, + "service_category_id": 41, + "code": "electric.power.battery_bms", + "name": "Аккумулятор с регистрацией в BMS", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 253, + "service_category_id": 41, + "code": "electric.power.fuse_box", + "name": "Блок реле и предохранителей", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 247, + "service_category_id": 41, + "code": "electric.power.alternator", + "name": "Генератор", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 251, + "service_category_id": 41, + "code": "electric.power.harness", + "name": "Проводка или жгут", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 248, + "service_category_id": 41, + "code": "electric.power.alternator_repair", + "name": "Ремонт генератора", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 252, + "service_category_id": 41, + "code": "electric.power.terminals", + "name": "Ремонт клеммной группы", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 250, + "service_category_id": 41, + "code": "electric.power.starter_repair", + "name": "Ремонт стартера", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 249, + "service_category_id": 41, + "code": "electric.power.starter", + "name": "Стартер", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 259, + "service_category_id": 42, + "code": "electric.light.taillight", + "name": "Задний фонарь", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 257, + "service_category_id": 42, + "code": "electric.light.xenon", + "name": "Ксеноновая лампа или блок розжига", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 254, + "service_category_id": 42, + "code": "electric.light.bulb", + "name": "Лампа ближнего или дальнего света", + "description": null, + "norm_minutes": 24, + "base_price_minor": 16000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 255, + "service_category_id": 42, + "code": "electric.light.bulb_remove", + "name": "Лампа со снятием фары", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 262, + "service_category_id": 42, + "code": "electric.light.polish", + "name": "Полировка фар", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 260, + "service_category_id": 42, + "code": "electric.light.aim", + "name": "Регулировка света фар", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 261, + "service_category_id": 42, + "code": "electric.light.housing", + "name": "Ремонт корпуса фары или замена стекла", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 258, + "service_category_id": 42, + "code": "electric.light.led", + "name": "Светодиодный модуль", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 256, + "service_category_id": 42, + "code": "electric.light.headlight", + "name": "Фара в сборе", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 271, + "service_category_id": 43, + "code": "electric.body.rain_sensor", + "name": "Датчик дождя или света", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 265, + "service_category_id": 43, + "code": "electric.body.door_lock", + "name": "Замок двери или актуатор", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 266, + "service_category_id": 43, + "code": "electric.body.cylinder", + "name": "Личинка замка", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 264, + "service_category_id": 43, + "code": "electric.body.window_mech", + "name": "Механизм стеклоподъёмника", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 269, + "service_category_id": 43, + "code": "electric.body.wiper_motor", + "name": "Моторчик стеклоочистителя", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 263, + "service_category_id": 43, + "code": "electric.body.window_motor", + "name": "Моторчик стеклоподъёмника", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 274, + "service_category_id": 43, + "code": "electric.body.washer_pump", + "name": "Насос омывателя", + "description": null, + "norm_minutes": 36, + "base_price_minor": 24000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 272, + "service_category_id": 43, + "code": "electric.body.cluster", + "name": "Панель приборов", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 268, + "service_category_id": 43, + "code": "electric.body.trunk", + "name": "Привод багажника", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 273, + "service_category_id": 43, + "code": "electric.body.comfort_module", + "name": "Ремонт блока комфорта", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 267, + "service_category_id": 43, + "code": "electric.body.central_lock", + "name": "Ремонт центрального замка", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 270, + "service_category_id": 43, + "code": "electric.body.wiper_linkage", + "name": "Трапеция дворников", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 275, + "service_category_id": 43, + "code": "electric.body.washer_nozzle", + "name": "Форсунки и бачок омывателя", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 276, + "service_category_id": 44, + "code": "electric.security.key_new", + "name": "Изготовление и прописка ключа", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 277, + "service_category_id": 44, + "code": "electric.security.key_add", + "name": "Прописка дополнительного ключа", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 278, + "service_category_id": 44, + "code": "electric.security.key_case", + "name": "Ремонт корпуса ключа или батарейка", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 281, + "service_category_id": 44, + "code": "electric.security.gps", + "name": "Установка GPS-трекера", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 280, + "service_category_id": 44, + "code": "electric.security.immo", + "name": "Установка иммобилайзера или метки", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 279, + "service_category_id": 44, + "code": "electric.security.alarm", + "name": "Установка сигнализации", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 291, + "service_category_id": 46, + "code": "climate.main.ozone", + "name": "Антибактериальная обработка", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 294, + "service_category_id": 46, + "code": "climate.main.climate_unit", + "name": "Блок управления климатом", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 283, + "service_category_id": 46, + "code": "climate.main.vacuum", + "name": "Диагностика с вакуумированием", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 282, + "service_category_id": 46, + "code": "climate.main.refill", + "name": "Заправка кондиционера", + "description": null, + "norm_minutes": 48, + "base_price_minor": 32000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 285, + "service_category_id": 46, + "code": "climate.main.compressor", + "name": "Компрессор кондиционера", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 293, + "service_category_id": 46, + "code": "climate.main.blower", + "name": "Мотор отопителя", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 298, + "service_category_id": 46, + "code": "climate.main.webasto", + "name": "Обслуживание автономного отопителя", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 284, + "service_category_id": 46, + "code": "climate.main.uv_leak", + "name": "Поиск утечки с ультрафиолетовым красителем", + "description": null, + "norm_minutes": 72, + "base_price_minor": 48000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 290, + "service_category_id": 46, + "code": "climate.main.flush", + "name": "Промывка системы кондиционирования", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 286, + "service_category_id": 46, + "code": "climate.main.condenser", + "name": "Радиатор кондиционера", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 292, + "service_category_id": 46, + "code": "climate.main.heater_core", + "name": "Радиатор печки", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 288, + "service_category_id": 46, + "code": "climate.main.expansion", + "name": "Расширительный клапан", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 297, + "service_category_id": 46, + "code": "climate.main.seat_vent", + "name": "Ремонт вентиляции сидений", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 296, + "service_category_id": 46, + "code": "climate.main.seat_heat", + "name": "Ремонт подогрева сидений", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 287, + "service_category_id": 46, + "code": "climate.main.drier", + "name": "Ресивер-осушитель", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 295, + "service_category_id": 46, + "code": "climate.main.servos", + "name": "Сервоприводы заслонок", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 289, + "service_category_id": 46, + "code": "climate.main.pipes", + "name": "Трубки кондиционера", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 308, + "service_category_id": 48, + "code": "body.repair.bumper", + "name": "Бампер: снятие и установка", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 305, + "service_category_id": 48, + "code": "body.repair.rail", + "name": "Замена лонжерона", + "description": null, + "norm_minutes": 720, + "base_price_minor": 480000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 304, + "service_category_id": 48, + "code": "body.repair.sill", + "name": "Замена порога", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 302, + "service_category_id": 48, + "code": "body.repair.panel_welded", + "name": "Замена сварного элемента", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 301, + "service_category_id": 48, + "code": "body.repair.panel_bolted", + "name": "Замена съёмного элемента", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 310, + "service_category_id": 48, + "code": "body.repair.door_seals", + "name": "Замена уплотнителей дверей (комплект)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 307, + "service_category_id": 48, + "code": "body.repair.geometry", + "name": "Замер геометрии кузова", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 306, + "service_category_id": 48, + "code": "body.repair.jig", + "name": "Работы на стапеле", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 311, + "service_category_id": 48, + "code": "body.repair.door_adjust", + "name": "Регулировка дверей и капота", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 309, + "service_category_id": 48, + "code": "body.repair.bumper_repair", + "name": "Ремонт бампера (трещина, крепления)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 299, + "service_category_id": 48, + "code": "body.repair.pdr", + "name": "Ремонт вмятины без покраски (за элемент)", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 300, + "service_category_id": 48, + "code": "body.repair.straighten", + "name": "Рихтовка элемента", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 303, + "service_category_id": 48, + "code": "body.repair.welding", + "name": "Сварочные работы (за час)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 318, + "service_category_id": 49, + "code": "body.paint.underbody", + "name": "Антикоррозийная обработка днища", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 314, + "service_category_id": 49, + "code": "body.paint.local", + "name": "Локальная покраска", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 319, + "service_category_id": 49, + "code": "body.paint.cavities", + "name": "Обработка скрытых полостей", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 315, + "service_category_id": 49, + "code": "body.paint.match", + "name": "Подбор краски", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 313, + "service_category_id": 49, + "code": "body.paint.blend", + "name": "Покраска с переходом", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 312, + "service_category_id": 49, + "code": "body.paint.panel", + "name": "Покраска элемента", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 317, + "service_category_id": 49, + "code": "body.paint.polish_protect", + "name": "Полировка защитная", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 316, + "service_category_id": 49, + "code": "body.paint.polish_abrasive", + "name": "Полировка кузова абразивная", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 321, + "service_category_id": 50, + "code": "body.protect.ceramic", + "name": "Нанесение керамики на весь кузов", + "description": null, + "norm_minutes": 720, + "base_price_minor": 480000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 322, + "service_category_id": 50, + "code": "body.protect.vinyl", + "name": "Оклейка винилом (элемент)", + "description": null, + "norm_minutes": 210, + "base_price_minor": 140000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 320, + "service_category_id": 50, + "code": "body.protect.ppf", + "name": "Оклейка защитной плёнкой (элемент)", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 325, + "service_category_id": 50, + "code": "body.protect.tint_remove", + "name": "Снятие старой тонировки", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 324, + "service_category_id": 50, + "code": "body.protect.tint_windshield", + "name": "Тонировка лобового атермальная", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 323, + "service_category_id": 50, + "code": "body.protect.tint", + "name": "Тонировка стёкол (комплект)", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 328, + "service_category_id": 51, + "code": "body.glass.side", + "name": "Боковое стекло", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 329, + "service_category_id": 51, + "code": "body.glass.rear", + "name": "Заднее стекло", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 326, + "service_category_id": 51, + "code": "body.glass.windshield", + "name": "Лобовое стекло", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 327, + "service_category_id": 51, + "code": "body.glass.windshield_adas", + "name": "Лобовое стекло с калибровкой ADAS", + "description": null, + "norm_minutes": 270, + "base_price_minor": 180000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 330, + "service_category_id": 51, + "code": "body.glass.chip", + "name": "Ремонт скола или трещины", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 334, + "service_category_id": 52, + "code": "body.interior.headliner", + "name": "Замена потолка", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 335, + "service_category_id": 52, + "code": "body.interior.wheel_leather", + "name": "Перетяжка руля кожей", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 332, + "service_category_id": 52, + "code": "body.interior.seat_trim", + "name": "Перетяжка сиденья", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 333, + "service_category_id": 52, + "code": "body.interior.door_card", + "name": "Ремонт обшивки двери", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 331, + "service_category_id": 52, + "code": "body.interior.seats", + "name": "Снятие и установка сидений", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 336, + "service_category_id": 52, + "code": "body.interior.dashboard", + "name": "Снятие и установка торпедо", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 339, + "service_category_id": 54, + "code": "hybrid.main.hv_rebuild", + "name": "Восстановление батареи, полный цикл", + "description": null, + "norm_minutes": 720, + "base_price_minor": 480000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 337, + "service_category_id": 54, + "code": "hybrid.main.hv_diag", + "name": "Диагностика батареи с балансом ячеек", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 345, + "service_category_id": 54, + "code": "hybrid.main.obc", + "name": "Диагностика зарядного устройства", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 347, + "service_category_id": 54, + "code": "hybrid.main.wallbox", + "name": "Диагностика и ремонт зарядной станции (Wallbox)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 338, + "service_category_id": 54, + "code": "hybrid.main.hv_modules", + "name": "Замена модулей высоковольтной батареи", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 340, + "service_category_id": 54, + "code": "hybrid.main.inverter", + "name": "Инвертор", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 344, + "service_category_id": 54, + "code": "hybrid.main.hv_cooling", + "name": "Обслуживание охлаждения батареи", + "description": null, + "norm_minutes": 120, + "base_price_minor": 80000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 341, + "service_category_id": 54, + "code": "hybrid.main.inverter_cooling", + "name": "Охлаждение инвертора", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 346, + "service_category_id": 54, + "code": "hybrid.main.insulation", + "name": "Проверка изоляции высоковольтных цепей", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 342, + "service_category_id": 54, + "code": "hybrid.main.hv_fan", + "name": "Чистка вентилятора батареи", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 343, + "service_category_id": 54, + "code": "hybrid.main.motor", + "name": "Электромотор-генератор", + "description": null, + "norm_minutes": 600, + "base_price_minor": 400000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 355, + "service_category_id": 56, + "code": "detailing.main.leather_restore", + "name": "Восстановление кожи", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 350, + "service_category_id": 56, + "code": "detailing.main.complex", + "name": "Комплексная мойка с химчисткой салона", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 349, + "service_category_id": 56, + "code": "detailing.main.engine_wash", + "name": "Мойка двигателя", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 356, + "service_category_id": 56, + "code": "detailing.main.underbody", + "name": "Мойка днища", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 348, + "service_category_id": 56, + "code": "detailing.main.wash", + "name": "Мойка кузова стандартная", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 353, + "service_category_id": 56, + "code": "detailing.main.ozone", + "name": "Озонирование салона", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 352, + "service_category_id": 56, + "code": "detailing.main.headliner", + "name": "Химчистка потолка", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 351, + "service_category_id": 56, + "code": "detailing.main.interior_full", + "name": "Химчистка салона полная", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 354, + "service_category_id": 56, + "code": "detailing.main.leather", + "name": "Чистка кожи с кондиционером", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 367, + "service_category_id": 58, + "code": "extra.main.autostart", + "name": "Установка автозапуска", + "description": null, + "norm_minutes": 300, + "base_price_minor": 200000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 369, + "service_category_id": 58, + "code": "extra.main.carplay", + "name": "Установка адаптера CarPlay\/Android Auto", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 361, + "service_category_id": 58, + "code": "extra.main.speakers", + "name": "Установка акустики (комплект)", + "description": null, + "norm_minutes": 360, + "base_price_minor": 240000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 365, + "service_category_id": 58, + "code": "extra.main.roof_rack", + "name": "Установка багажника на крышу", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 360, + "service_category_id": 58, + "code": "extra.main.dvr", + "name": "Установка видеорегистратора", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 357, + "service_category_id": 58, + "code": "extra.main.headunit", + "name": "Установка головного устройства", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 370, + "service_category_id": 58, + "code": "extra.main.door_closer", + "name": "Установка доводчиков дверей (комплект)", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 366, + "service_category_id": 58, + "code": "extra.main.skid_plate", + "name": "Установка защиты картера", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 358, + "service_category_id": 58, + "code": "extra.main.camera", + "name": "Установка камеры заднего вида", + "description": null, + "norm_minutes": 150, + "base_price_minor": 100000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 359, + "service_category_id": 58, + "code": "extra.main.parking", + "name": "Установка парктроников (комплект)", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 368, + "service_category_id": 58, + "code": "extra.main.preheater", + "name": "Установка предпускового подогревателя", + "description": null, + "norm_minutes": 480, + "base_price_minor": 320000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 364, + "service_category_id": 58, + "code": "extra.main.towbar", + "name": "Установка фаркопа", + "description": null, + "norm_minutes": 240, + "base_price_minor": 160000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 362, + "service_category_id": 58, + "code": "extra.main.sound_door", + "name": "Шумоизоляция двери (за штуку)", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 363, + "service_category_id": 58, + "code": "extra.main.sound_full", + "name": "Шумоизоляция полная", + "description": null, + "norm_minutes": 1200, + "base_price_minor": 800000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 375, + "service_category_id": 60, + "code": "service.main.roadside", + "name": "Выездная помощь", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 381, + "service_category_id": 60, + "code": "service.main.itp_prep", + "name": "Диагностика и подготовка к техосмотру (ITP)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 372, + "service_category_id": 60, + "code": "service.main.lift", + "name": "Подъём на подъёмник, осмотр", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 374, + "service_category_id": 60, + "code": "service.main.jump", + "name": "Прикуривание и запуск", + "description": null, + "norm_minutes": 30, + "base_price_minor": 20000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 373, + "service_category_id": 60, + "code": "service.main.tow", + "name": "Приём автомобиля на буксире", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 379, + "service_category_id": 60, + "code": "service.main.fuel_flush", + "name": "Промывка топливной системы", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 378, + "service_category_id": 60, + "code": "service.main.agreed", + "name": "Работы по согласованию", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 380, + "service_category_id": 60, + "code": "service.main.decarbon", + "name": "Раскоксовка двигателя", + "description": null, + "norm_minutes": 180, + "base_price_minor": 120000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 376, + "service_category_id": 60, + "code": "service.main.mech_hour", + "name": "Слесарные работы вне каталога (за час)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 371, + "service_category_id": 60, + "code": "service.main.skid_plate", + "name": "Снятие и установка защиты двигателя", + "description": null, + "norm_minutes": 18, + "base_price_minor": 12000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 382, + "service_category_id": 60, + "code": "service.main.itp_fix", + "name": "Устранение неисправностей по результатам ITP (за час)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 377, + "service_category_id": 60, + "code": "service.main.electric_hour", + "name": "Электрика вне каталога (за час)", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 383, + "service_category_id": 62, + "code": "safety.main.srs_reset", + "name": "Диагностика и сброс SRS после срабатывания", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 384, + "service_category_id": 62, + "code": "safety.main.airbag", + "name": "Замена подушки безопасности (за штуку)", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 385, + "service_category_id": 62, + "code": "safety.main.pretensioner", + "name": "Замена преднатяжителя ремня безопасности", + "description": null, + "norm_minutes": 90, + "base_price_minor": 60000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + }, + { + "id": 386, + "service_category_id": 62, + "code": "safety.main.seatbelt", + "name": "Замена ремня безопасности", + "description": null, + "norm_minutes": 60, + "base_price_minor": 40000, + "is_active": true, + "created_at": "2026-09-07T13:49:49.000000Z", + "updated_at": "2026-09-07T13:49:49.000000Z" + } + ] +} \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 5244302..50cce4b 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1942,6 +1942,7 @@ "Status": "Status", "Status dosar": "File status", "Status implicit": "Default status", + "Status actualizat": "Status updated", "Status:": "Status:", "Stoc": "Stock", "Stoc adăugat": "Stoc adăugat", diff --git a/lang/ru.json b/lang/ru.json index 9e19f08..8138de8 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -1942,6 +1942,7 @@ "Status": "Статус", "Status dosar": "Статус досье", "Status implicit": "Статус по умолчанию", + "Status actualizat": "Статус обновлён", "Status:": "Статус:", "Stoc": "Склад", "Stoc adăugat": "Stoc adăugat", diff --git a/resources/views/filament/tenant/pages/work-order-dashboard.blade.php b/resources/views/filament/tenant/pages/work-order-dashboard.blade.php index f3787a1..cb18c56 100644 --- a/resources/views/filament/tenant/pages/work-order-dashboard.blade.php +++ b/resources/views/filament/tenant/pages/work-order-dashboard.blade.php @@ -380,10 +380,27 @@ {{-- ── TOP BAR ── --}}
{{ __('Fișă') }} {{ $wo->number }} - - {{ __(\App\Models\Tenant\WorkOrder::STATUSES[$wo->status] ?? $wo->status) }} - ▾ - +
+ + {{ __(\App\Models\Tenant\WorkOrder::STATUSES[$wo->status] ?? $wo->status) }} + ▾ + +
+ @foreach (\App\Models\Tenant\WorkOrder::STATUSES as $sKey => $sLabel) + + @endforeach +
+