first commit
All checks were successful
CI / backend (push) Successful in 13m19s
CI / frontend (push) Successful in 11m3s
CI / docker (push) Successful in 1m58s

This commit is contained in:
Cauê Faleiros
2026-06-03 16:31:42 -03:00
commit 8c7e5fbbe4
92 changed files with 18226 additions and 0 deletions

55
backend/cmd/api/main.go Normal file
View File

@@ -0,0 +1,55 @@
package main
import (
"context"
"log/slog"
"os"
"time"
"mira/backend/internal/auth"
"mira/backend/internal/calendar"
"mira/backend/internal/clients"
"mira/backend/internal/config"
"mira/backend/internal/database"
"mira/backend/internal/httpserver"
"mira/backend/internal/users"
)
func main() {
cfg := config.Load()
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
Level: cfg.LogLevel,
}))
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
db, err := database.Connect(ctx, cfg.DatabaseURL)
if err != nil {
logger.Error("database connection failed", "error", err)
os.Exit(1)
}
defer db.Close()
if err := db.Migrate(ctx, logger, "migrations"); err != nil {
logger.Error("database migration failed", "error", err)
os.Exit(1)
}
userStore := users.NewStore(db.Pool)
clientStore := clients.NewStore(db.Pool)
calendarStore := calendar.NewStore(db.Pool)
if err := auth.BootstrapSuperAdmin(ctx, cfg, userStore, logger); err != nil {
logger.Error("super admin bootstrap failed", "error", err)
os.Exit(1)
}
server := httpserver.New(cfg, logger, db, userStore, clientStore, calendarStore)
logger.Info("starting api", "addr", cfg.HTTPAddr, "env", cfg.AppEnv)
if err := server.Run(cfg.HTTPAddr); err != nil {
logger.Error("api stopped", "error", err)
os.Exit(1)
}
}