## Overview Implement an asset tags management endpoint and a global asset search endpoint inside `backend/contrib/`. ## Location All work must be inside `backend/contrib/src/assets/`. ## Acceptance Criteria - [ ] `PATCH /assets/:id/tags` accepts `{ tags: string[] }`, replaces the asset tags array, returns updated asset - [ ] `GET /assets/search` accepts `?q=` query string, performs full-text search across name, assetId, serialNumber, manufacturer, model, description, tags - [ ] Search results ranked by relevance (exact assetId match ranked first) - [ ] Both endpoints protected by `JwtAuthGuard`
Overview
Implement an asset tags management endpoint and a global asset search endpoint inside
backend/contrib/.Location
All work must be inside
backend/contrib/src/assets/.Acceptance Criteria
PATCH /assets/:id/tagsaccepts{ tags: string[] }, replaces the asset tags array, returns updated assetGET /assets/searchaccepts?q=query string, performs full-text search across name, assetId, serialNumber, manufacturer, model, description, tagsJwtAuthGuard