This commit is contained in:
2025-11-14 00:34:28 +01:00
parent 340d1b69f9
commit 8acfbf1215
5 changed files with 163 additions and 25 deletions

View File

@@ -4,16 +4,23 @@ import (
"context"
"fmt"
"go_oxspeak_server/config"
"go_oxspeak_server/database"
"go_oxspeak_server/models"
"go_oxspeak_server/network/http"
"go_oxspeak_server/network/udp"
"os"
"os/signal"
"syscall"
"gorm.io/gorm"
)
type App struct {
cfg *config.Config
// DB
db *gorm.DB
// Serveurs
udpServer *udp.Server
httpServer *http.Server
@@ -54,7 +61,25 @@ func (app *App) Run() error {
// Context pour gérer l'arrêt gracieux
defer app.cancel()
// Lancer les app ici
dbConfig := database.DBConfig{
Driver: app.cfg.Database.Type,
DSN: app.cfg.GetDSN(),
}
// 1) Initialiser la DB
if err := database.Initialize(dbConfig); err != nil {
return fmt.Errorf("failed to initialize database: %w", err)
}
// (optionnel) garder une référence locale si tu veux utiliser app.db ailleurs
app.db = database.DB
// 2) Lancer les migrations en utilisant le registry des modèles
if err := database.AutoMigrate(models.All()...); err != nil {
return fmt.Errorf("failed to auto-migrate database: %w", err)
}
// 3) Lancer les workers / serveurs
go app.runWorkers()
fmt.Println("App started, press CTRL+C to stop...")
@@ -69,6 +94,10 @@ func (app *App) Run() error {
}
}
func (app *App) runDBMigrations() {
database.AutoMigrate()
}
func (app *App) runWorkers() {
// lancer le serveur udp
go func() {