feat: feature requests board with voting

- [FEATURES] tab next to PINNED in channel header
- Create, vote/unvote, filter by status (open/planned/done/rejected)
- Sort by vote count (most voted first)
- Status selector for moderation
- DB: feature_requests + feature_request_votes tables
- Backend: full CRUD + vote endpoints under /servers/{id}/feature-requests
This commit is contained in:
2026-07-02 13:11:52 -04:00
parent 3002626ac4
commit 5ca5e018ca
7 changed files with 525 additions and 1 deletions
+6
View File
@@ -232,6 +232,12 @@ func main() {
pollHandler.RegisterRoutes(r)
})
// Feature requests
frHandler := message.NewFeatureRequestHandler(database.DB)
r.Route("/servers/{serverID}/feature-requests", func(r chi.Router) {
frHandler.RegisterRoutes(r)
})
// Per-channel notification settings
r.Route("/channels/{channelID}/notifications", func(r chi.Router) {
notification.NewHandler(database.DB, logger).RegisterRoutes(r)