package handlers import ( "net/http" "whatsapp-bot/db" "whatsapp-bot/services" "github.com/gin-gonic/gin" ) func ShowDashboard(c *gin.Context) { rows, err := db.Conn.Query("SELECT customer_phone, appointment_date, status FROM appointments") if err != nil { c.String(http.StatusInternalServerError, "DB Error") return } defer rows.Close() type Appt struct{ CustomerPhone, Date, Status string } var appts []Appt for rows.Next() { var a Appt rows.Scan(&a.CustomerPhone, &a.Date, &a.Status) appts = append(appts, a) } c.HTML(http.StatusOK, "dashboard.html", gin.H{ "Appointments": appts, }) } // Test OpenRouter via the Dashboard func TestAIHandler(c *gin.Context) { var body struct { Prompt string `json:"prompt"` } if err := c.BindJSON(&body); err != nil { c.JSON(400, gin.H{"response": "Invalid request, dummy."}) return } // Calling the service we wrote earlier response, err := services.GetAIResponse(body.Prompt) if err != nil { c.JSON(500, gin.H{"response": "AI Error: " + err.Error()}) return } c.JSON(200, gin.H{"response": response}) } // Manage/Delete Appointment func DeleteAppointmentHandler(c *gin.Context) { id := c.Param("id") _, err := db.Conn.Exec("DELETE FROM appointments WHERE id = ?", id) if err != nil { c.Status(http.StatusInternalServerError) return } c.Status(http.StatusOK) }