package main

import (
	"embed"
	"log"

	"git.dumerain.org/alban/calcul-astreintes/app"

	"github.com/wailsapp/wails/v2"
	"github.com/wailsapp/wails/v2/pkg/options"
	"github.com/wailsapp/wails/v2/pkg/options/assetserver"
)

/*
Wails embarque des fichiers statiques (le build du frontend) dans le binaire Go.
⚠️ Go exige que le pattern //go:embed matche au moins 1 fichier.
C'est pourquoi on garde un fichier placeholder: frontend/dist/.keep
*/
//go:embed frontend/dist/*
var assets embed.FS

func main() {
	// Instance de l'application Wails (backend Go)
	application := app.NewApp()

	// Lancement de la fenêtre desktop + serveur d'assets
	err := wails.Run(&options.App{
		Title:  "Paychek - Give me my fuc** money",
		Width:  980,
		Height: 720,
		MinWidth:  880,
		MinHeight: 640,

		AssetServer: &assetserver.Options{
			Assets: assets,
		},

		BackgroundColour: &options.RGBA{R: 245, G: 245, B: 245, A: 1},

		OnStartup: application.Startup,

		// Méthodes exportées au frontend via "wailsjs"
		Bind: []interface{}{
			application,
		},
	})
	if err != nil {
		log.Fatal(err)
	}
}
