2.7 KiB
2.7 KiB
Task: Backend feedback foundation
Goal
Add the backend foundation for product feedback reports.
Feature Spec
docs/FEATURES/product-feedback.md
Scope
- Add a new
Developeridentity role and seed it with the existing role setup. - Add a new FastEndpoints module under
backend/src/Socialize.Api/Modules/Feedback. - Add feedback report data entities and EF Core model configuration.
- Add feedback enum/value support for:
- type:
Bug,Suggestion,Request - status:
New,Planned,Resolved,Won't Do,Cancelled
- type:
- Add
DbSetentries and module configuration toAppDbContext. - Capture reporter id, reporter display fields, submitted route, browser metadata, viewport size, app version if available, and optional workspace/client/campaign/content context.
- Add API endpoints for:
- submit feedback
- list current user's feedback
- get current user's feedback detail
- list all feedback for
Developer - get feedback detail for
Developer - update feedback type/status/tags for
Developer - cancel own feedback with optional reason
- list previously used tags for
Developer
- Enforce access rules:
- authenticated users can submit feedback
- reporters can view only their own feedback
- developers can view all feedback
- only developers can update type/status/tags
- reporters can only move their own non-final report to
Cancelled
- Keep assignment, priority, severity, duplicate linking, and deletion out of scope.
Likely Files
backend/src/Socialize.Api/Modules/Identity/Contracts/KnownRoles.csbackend/src/Socialize.Api/Modules/Identity/DependencyInjection.csbackend/src/Socialize.Api/Data/AppDbContext.csbackend/src/Socialize.Api/Modules/Feedback/**backend/tests/Socialize.Tests/**
Notes
- Use FastEndpoints handlers and keep request/response records near their handlers unless local module patterns suggest otherwise.
- Use FluentValidation for non-trivial inputs.
- Treat feedback as global SaaS operator data, not workspace-owned workflow data.
- Tags are free-form but should be normalized enough to support search/filter suggestions later.
Validation
dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
Done When
Developerrole exists and is seeded.- Feedback reports can be submitted by authenticated users.
- Reporters can list and view only their own feedback.
- Developers can list and view all feedback.
- Developers can update type, status, and tags.
- Reporters can cancel their own feedback with an optional reason.
- Backend validation rejects invalid type/status transitions and missing descriptions.
- Backend tests cover access rules and core transitions.