## Overview Implement the create asset endpoint inside `backend/contrib/`. This is one of the most important endpoints in the system. ## Location All work must be inside `backend/contrib/src/assets/`. ## Acceptance Criteria - [ ] `POST /assets` endpoint implemented, protected by `JwtAuthGuard` - [ ] `CreateAssetDto` with fields: `name*`, `categoryId*`, `departmentId*`, `description?`, `serialNumber?`, `purchaseDate?`, `purchasePrice?`, `currentValue?`, `warrantyExpiration?`, `status?`, `condition?`, `location?`, `assignedToId?`, `manufacturer?`, `model?`, `tags?`, `notes?` - [ ] `assetId` auto-generated in format `AST-1001`, `AST-1002` etc. (padded, sequential) - [ ] `AssetHistory` entry created with action `CREATED` after successful save - [ ] Returns the created asset with all relations loaded - [ ] `createdBy` set to the currently authenticated user
Overview
Implement the create asset endpoint inside
backend/contrib/. This is one of the most important endpoints in the system.Location
All work must be inside
backend/contrib/src/assets/.Acceptance Criteria
POST /assetsendpoint implemented, protected byJwtAuthGuardCreateAssetDtowith fields:name*,categoryId*,departmentId*,description?,serialNumber?,purchaseDate?,purchasePrice?,currentValue?,warrantyExpiration?,status?,condition?,location?,assignedToId?,manufacturer?,model?,tags?,notes?assetIdauto-generated in formatAST-1001,AST-1002etc. (padded, sequential)AssetHistoryentry created with actionCREATEDafter successful savecreatedByset to the currently authenticated user