-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
user-storyUser story - individual deliverableUser story - individual deliverable
Description
As a homeowner, I want to place and visualize stairs on floor plans so that I can document vertical circulation and navigate between floor levels.
Parent Epic: #752 (EPIC-16: Floor Plans & Utility Tracking)
Priority: Should Have
Phase: 5 — Multi-Floor & Special Structures
Acceptance Criteria
- 1.
GET /api/floor-plans/stairswith query paramfloorIdreturns all stairs that touch a given floor - 2.
POST /api/floor-plans/stairscreates a stair with type (straight/l_shaped/u_shaped/spiral), from_floor_id, to_floor_id, position (polygon coordinates), step_count, and optional label - 3.
PATCH /api/floor-plans/stairs/:idupdates stair properties - 4.
DELETE /api/floor-plans/stairs/:iddeletes a stair - 5. Stairs are rendered on the floor plan canvas as hatched rectangles/polygons at their stored position
- 6. Each stair shows a directional arrow indicating up/down and the step count as a text label
- 7. The stair type affects the rendering shape: straight (rectangle), l_shaped (L polygon), u_shaped (U polygon), spiral (circle with spiral lines)
- 8. Clicking a stair on the floor plan navigates to the connected floor's plan view
- 9. A stair appears on both its from_floor and to_floor plan views
- 10. Create/edit dialog includes type selector, from/to floor dropdowns (limited to floors in the same building), step count, and position adjustment
- 11. Validation: from_floor_id and to_floor_id must be different floors in the same building; step_count must be a positive integer
Notes
- Dependencies: FP-6 (FP-6: Floor Plan Canvas (Read-Only) #758) — floor plan canvas; FP-4 (FP-4: Floors CRUD & Building Detail #756) — floors CRUD
- Stairwell walls are regular walls drawn around the stair opening — they have full layer and utility support
- The stair polygon defines the floor opening/void, not the walls around it
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
user-storyUser story - individual deliverableUser story - individual deliverable
Projects
Status
Backlog