diff --git a/backend/controllers/hardwarecontroller.go b/backend/controllers/hardwarecontroller.go index 6ff6f63..0ca5882 100644 --- a/backend/controllers/hardwarecontroller.go +++ b/backend/controllers/hardwarecontroller.go @@ -47,6 +47,35 @@ func VerifyHardwareCode(c *gin.Context) { tokenInput := req.Token sekarang := time.Now() + + // ===================================================================== + // 🌟 FITUR BARU: MASTER TOKEN UNTUK CS DAN ADMIN (BYPASS DATABASE) + // ===================================================================== + + // 1. Token Khusus Cleaning Service (Waktu: 60 Menit) + if tokenInput == "CS2026" { + fmt.Printf("[VERIFY] Master Token Cleaning Service digunakan pada %v\n", sekarang.Format("15:04:05")) + c.JSON(http.StatusOK, gin.H{ + "status": "success", + "message": "Token CS Valid", + "duration_minutes": 60, + }) + return // Berhenti di sini, Golang tidak akan mengecek database + } + + // 2. Token Khusus Admin / Teknisi (Waktu: 999 Menit / ~16.5 Jam) + if tokenInput == "ADM999" { + fmt.Printf("[VERIFY] Master Token Admin digunakan pada %v\n", sekarang.Format("15:04:05")) + c.JSON(http.StatusOK, gin.H{ + "status": "success", + "message": "Token Admin Valid", + "duration_minutes": 999, + }) + return // Berhenti di sini, Golang tidak akan mengecek database + } + // ===================================================================== + + // Jika bukan Master Token, jalankan pengecekan ke Database seperti biasa var jamSelesai time.Time isTokenValid := false @@ -153,7 +182,7 @@ func ControlHardware(c *gin.Context) { haToken := os.Getenv("HA_TOKEN") var entityID string -switch req.Device { + switch req.Device { case "ac": switch req.Action { case "on":