package ctxval

import (
	"github.com/gofiber/fiber/v2"
	"github.com/google/uuid"
)

func GetUserID(c *fiber.Ctx) uuid.UUID {
	val := c.Locals("user_id")
	if val == nil {
		return uuid.Nil
	}
	id, _ := uuid.Parse(val.(string))
	return id
}

func GetCompanyID(c *fiber.Ctx) uuid.UUID {
	val := c.Locals("company_id")
	if val == nil {
		return uuid.Nil
	}
	id, _ := uuid.Parse(val.(string))
	return id
}

func GetRoleID(c *fiber.Ctx) uuid.UUID {
	val := c.Locals("role_id")
	if val == nil {
		return uuid.Nil
	}
	id, _ := uuid.Parse(val.(string))
	return id
}

// IsGlobalRole returns true if the user has no company_id assigned (Super Admin)
func IsGlobalRole(c *fiber.Ctx) bool {
	val := c.Locals("company_id")
	return val == nil || val == ""
}
