## Status

- [x] domain-entities: ComponentType.ts, AttributeType.ts, Variant.ts
- [x] domain-repositories: ComponentTypeRepository.ts, AttributeTypeRepository.ts, VariantRepository.ts
- [x] application-usecases: componentType/ (5 use cases), variant/ (6 use cases including GetVariantsByStructure)
- [x] infrastructure-api-repositories: ComponentTypeApiRepository.ts, AttributeTypeApiRepository.ts, VariantApiRepository.ts
- [x] infrastructure-mappers: ComponentTypeMapper.ts, AttributeTypeMapper.ts, VariantMapper.ts
- [x] infrastructure-response-types: ComponentTypeResponse.ts, AttributeTypeResponse.ts, VariantResponse.ts
- [x] infrastructure-messages: ComponentTypeMessage.ts, VariantMessage.ts (+ ErrorService update — additive only)
- [x] di-types: types.ts updated (+13 symbols)
- [x] di-container: container.ts updated (+16 imports, +14 bindings)
- [x] presentation-componenttype: hooks (6) + list page (ComponentTypeListPage.tsx) + form dialog (ComponentTypeFormDialog.tsx)
- [x] presentation-variant: hooks (8) + list (VariantListPage) + stepper/form (VariantFormPage) + detail (VariantDetailPage)
- [x] presentation-orderitem: variantId added to OrderItemFormData + variant field in OrderForm.tsx
- [x] router: allRoutes.tsx updated (+5 routes: /component-types, /variants, /variants/new, /variants/:id, /variants/:id/edit)

## Files changed

### web-kingston/packages/main-app/src/clean-architecture/

**domain/entities** (created)
- `domain/entities/ComponentType.ts`
- `domain/entities/AttributeType.ts`
- `domain/entities/Variant.ts`

**domain/repositories** (created)
- `domain/repositories/ComponentTypeRepository.ts`
- `domain/repositories/AttributeTypeRepository.ts`
- `domain/repositories/VariantRepository.ts`

**application/useCases** (created)
- `application/useCases/componentType/GetComponentTypesUseCase.ts`
- `application/useCases/componentType/CreateComponentTypeUseCase.ts`
- `application/useCases/componentType/UpdateComponentTypeUseCase.ts`
- `application/useCases/componentType/DeleteComponentTypeUseCase.ts`
- `application/useCases/componentType/GetAttributeTypesUseCase.ts`
- `application/useCases/variant/GetVariantsUseCase.ts`
- `application/useCases/variant/GetVariantUseCase.ts`
- `application/useCases/variant/GetVariantsByStructureUseCase.ts`
- `application/useCases/variant/CreateVariantUseCase.ts`
- `application/useCases/variant/UpdateVariantUseCase.ts`
- `application/useCases/variant/DeleteVariantUseCase.ts`

**infrastructure/api** (created)
- `infrastructure/api/types/ComponentTypeResponse.ts`
- `infrastructure/api/types/AttributeTypeResponse.ts`
- `infrastructure/api/types/VariantResponse.ts`
- `infrastructure/api/mapper/ComponentTypeMapper.ts`
- `infrastructure/api/mapper/AttributeTypeMapper.ts`
- `infrastructure/api/mapper/VariantMapper.ts`
- `infrastructure/api/ComponentTypeApiRepository.ts`
- `infrastructure/api/AttributeTypeApiRepository.ts`
- `infrastructure/api/VariantApiRepository.ts`
- `infrastructure/api/message/ComponentTypeMessage.ts`
- `infrastructure/api/message/VariantMessage.ts`

**infrastructure/services** (modified — additive)
- `infrastructure/services/ErrorService.ts` — added componentType + variant domain entries

**di** (modified — additive)
- `di/types.ts` — +13 new symbols
- `di/container.ts` — +16 imports, +14 bindings

**presentation/modules/componentType** (created)
- `presentation/modules/componentType/ComponentTypeFormDialog.tsx`
- `presentation/modules/componentType/hooks/useGetComponentTypes.ts`
- `presentation/modules/componentType/hooks/useGetAttributeTypes.ts`
- `presentation/modules/componentType/hooks/useCreateComponentType.ts`
- `presentation/modules/componentType/hooks/useUpdateComponentType.ts`
- `presentation/modules/componentType/hooks/useDeleteComponentType.ts`
- `presentation/modules/componentType/hooks/useGetComponentTypeColumns.tsx`
- `presentation/modules/componentType/hooks/index.ts`

**presentation/modules/variant** (created)
- `presentation/modules/variant/hooks/useGetVariants.ts`
- `presentation/modules/variant/hooks/useGetVariant.ts`
- `presentation/modules/variant/hooks/useGetVariantsByStructure.ts`
- `presentation/modules/variant/hooks/useCreateVariant.ts`
- `presentation/modules/variant/hooks/useUpdateVariant.ts`
- `presentation/modules/variant/hooks/useDeleteVariant.ts`
- `presentation/modules/variant/hooks/useGetVariantColumns.tsx`
- `presentation/modules/variant/hooks/index.ts`

**presentation/components/pages** (created)
- `presentation/components/pages/componentType/ComponentTypeListPage.tsx`
- `presentation/components/pages/variant/VariantListPage.tsx`
- `presentation/components/pages/variant/VariantDetailPage.tsx`
- `presentation/components/pages/variant/VariantFormPage.tsx`

**presentation/forms + modules** (modified — additive)
- `presentation/forms/order/OrderFormValues.ts` — added `variantId?: OptionSelect<ID> | null` to OrderItemFormData
- `presentation/modules/order/components/OrderForm/OrderForm.tsx` — added variant selector field per order item

**routes** (modified — additive)
- `routes/allRoutes.tsx` — +4 imports, +5 new routes

## gitnexus_detect_changes result

- Risk level: **LOW**
- Changed symbols: 7 (all expected)
- Affected processes: **0** (no existing execution flows broken)
