package main

import (
	"crypto/tls"
	"embed"
	"git.keks.cloud/kekskurse/go-sample-webpage/pkg/sample"
	"git.keks.cloud/kekskurse/go-sample-webpage/pkg/user"
	"git.keks.cloud/kekskurse/go-sample-webpage/pkg/webpage"
	"github.com/go-chi/chi/v5"
	"github.com/go-chi/jwtauth/v5"
	gomail "gopkg.in/mail.v2"
)

// content holds our static web server content.
//go:embed static/* templates/*
var webserver embed.FS

//go:embed database/migrations/*.sql
var migrationFS embed.FS

func main() {
	config := webpage.WebPageConfig{
		Templates: webserver,
		Static:    webserver,
		Migrations: migrationFS,
		Bootstrap: func(router chi.Router) {
			tokenAuth := jwtauth.New("HS256", []byte("secret"), nil)
			uc := user.GetUserMemmoryClient()

			d := gomail.NewDialer("localhost", 1025, "from@gmail.com", "email_password")
			d.TLSConfig = &tls.Config{InsecureSkipVerify: true}

			sample.Register(router)
			user.Register(router, tokenAuth, uc, d)
		},
	}

	webpage.RunWebApp(config)
}
