package handler

// import (
// 	"log"
// 	"rijig/dto"
// 	"rijig/internal/services"
// 	"rijig/utils"

// 	"github.com/gofiber/fiber/v2"
// )

// type AuthHandler struct {
// 	authService services.AuthService
// }

// func NewAuthHandler(authService services.AuthService) *AuthHandler {
// 	return &AuthHandler{authService}
// }

// func (h *AuthHandler) RegisterOrLoginHandler(c *fiber.Ctx) error {
// 	var req dto.RegisterRequest

// 	if err := c.BodyParser(&req); err != nil {
// 		return utils.ErrorResponse(c, "Invalid request body")
// 	}

// 	if req.Phone == "" || req.RoleID == "" {
// 		return utils.ErrorResponse(c, "Phone number and role ID are required")
// 	}

// 	if err := h.authService.RegisterOrLogin(&req); err != nil {
// 		return utils.ErrorResponse(c, err.Error())
// 	}

// 	return utils.SuccessResponse(c, nil, "OTP sent successfully")
// }

// func (h *AuthHandler) VerifyOTPHandler(c *fiber.Ctx) error {
// 	var req dto.VerifyOTPRequest

// 	if err := c.BodyParser(&req); err != nil {
// 		return utils.ErrorResponse(c, "Invalid request body")
// 	}

// 	if req.OTP == "" {
// 		return utils.ErrorResponse(c, "OTP is required")
// 	}

// 	response, err := h.authService.VerifyOTP(&req)
// 	if err != nil {
// 		return utils.ErrorResponse(c, err.Error())
// 	}

// 	return utils.SuccessResponse(c, response, "Registration/Login successful")
// }

// func (h *AuthHandler) LogoutHandler(c *fiber.Ctx) error {

// 	userID, ok := c.Locals("userID").(string)
// 	if !ok || userID == "" {
// 		return utils.ErrorResponse(c, "User is not logged in or invalid session")
// 	}

// 	phoneKey := "user_phone:" + userID
// 	phone, err := utils.GetStringData(phoneKey)
// 	if err != nil || phone == "" {

// 		log.Printf("Error retrieving phone from Redis for user %s: %v", userID, err)
// 		return utils.ErrorResponse(c, "Phone number is missing or invalid session data")
// 	}

// 	err = h.authService.Logout(userID, phone)
// 	if err != nil {

// 		log.Printf("Error during logout process for user %s: %v", userID, err)
// 		return utils.ErrorResponse(c, err.Error())
// 	}

// 	return utils.SuccessResponse(c, nil, "Logged out successfully")
// }
