package types

import (
	"time"

	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

type Route struct {
	Path   string
	Method string
	Exec   func(cfg *StereoConfig) gin.HandlerFunc
}

type StereoConfig struct {
	Router    *gin.Engine
	ImagePath string
}

type User struct {
	gorm.Model
    ID               uint
	Username         string
	RegistrationDate time.Time
    Blacklisted      bool
    Email            string
}

func RegisterRoutes(groupName string, routes []Route, cfg *StereoConfig) {
	group := cfg.Router.Group(groupName)

	for _, route := range routes {
		group.Handle(route.Method, route.Path, route.Exec(cfg))
	}
}