package services import ( "api/globals" "api/models" "time" "github.com/golang-jwt/jwt/v4" ) var jwtSecret = []byte("your_secret_key") // Replace with your actual secret func GetUserByEmail(email string) models.SystemUser { var user models.SystemUser globals.DB.Where("email = ?", email).Find(&user) return user } func GetCustomerByCNPJ(cnpj string) models.Customer { var user models.Customer globals.DB.Where("cnpj = ?", cnpj).Find(&user) return user } func GenerateJWT(channel models.Channel) (string, error) { claims := jwt.MapClaims{ "channel_id": channel.ID, "channel_name": channel.Name, "exp": time.Now().Add(time.Minute * 60).Unix(), } token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) return token.SignedString(jwtSecret) }