feat: validate user availability

This commit is contained in:
Mann Patel
2025-09-09 10:42:24 -06:00
parent 287068becf
commit 144436bbf3
13 changed files with 544 additions and 704 deletions

View File

@@ -21,7 +21,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
// 1. Count volunteers assigned to this admin
err := models.DB.QueryRow(`
SELECT COUNT(av.volunteer_id)
SELECT COUNT(av.volunteer_id)
FROM admin_volunteers av
WHERE av.admin_id = $1 AND av.is_active = TRUE;
`, currentAdminID).Scan(&volunteerCount)
@@ -32,7 +32,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
// 2. Total donations from polls
err = models.DB.QueryRow(`
SELECT COALESCE(SUM(amount_donated), 0)
SELECT COALESCE(SUM(amount_donated), 0)
FROM poll_response;
`).Scan(&totalDonations)
if err != nil {
@@ -42,7 +42,7 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
// 3. Count validated addresses
err = models.DB.QueryRow(`
SELECT COUNT(*)
SELECT COUNT(*)
FROM address_database
WHERE visited_validated = TRUE;
`).Scan(&validatedCount)
@@ -53,8 +53,8 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
// 4. Calculate percentage of houses left to visit
err = models.DB.QueryRow(`
SELECT
CASE
SELECT
CASE
WHEN COUNT(*) = 0 THEN 0
ELSE ROUND(
(COUNT(*) FILTER (WHERE visited_validated = FALSE)::numeric / COUNT(*)::numeric) * 100, 2
@@ -79,4 +79,4 @@ func AdminDashboardHandler(w http.ResponseWriter, r *http.Request) {
"Role": role,
"ActiveSection": "dashboard",
})
}
}