Problem
Physical locations cannot be managed via the API. Assets cannot be tracked by building, floor, or room without this module.
Proposed Solution
Create backend/src/opsce/locations/locations.controller.ts and backend/src/opsce/locations/locations.service.ts.
Acceptance Criteria
Problem
Physical locations cannot be managed via the API. Assets cannot be tracked by building, floor, or room without this module.
Proposed Solution
Create
backend/src/opsce/locations/locations.controller.tsandbackend/src/opsce/locations/locations.service.ts.Acceptance Criteria
POST /api/locationscreates a location with optionalparentId(ADMIN only)GET /api/locationsreturns all locations as a flat list with atypefilter query paramGET /api/locations/:idreturns location with its children and asset countPATCH /api/locations/:idupdates location fields (ADMIN only)DELETE /api/locations/:idreturns409if any active assets are assigned to itCreateLocationDtovalidatesname,type(enum), and optionaladdress