package main import ( "fmt" "github.com/gin-gonic/gin" "github.com/sundynix/pets-be/internal/admin" "github.com/sundynix/pets-be/internal/config" "github.com/sundynix/pets-be/internal/database" "github.com/sundynix/pets-be/internal/httpapi" "github.com/sundynix/pets-be/internal/storage" "log" ) func main() { cfg, err := config.Load() if err != nil { log.Fatal(err) } db, err := database.Open(cfg.Postgres, cfg.Server.Mode == "release") if err != nil { log.Fatal(err) } if err := database.Migrate(db); err != nil { log.Fatal(err) } st, err := storage.New(cfg.MinIO) if err != nil { log.Fatal(err) } api := httpapi.New(db, st, cfg) if err := api.SeedAdmin(); err != nil { log.Fatal(err) } gin.SetMode(cfg.Server.Mode) r := gin.New() api.Register(r) admin.Register(r) addr := fmt.Sprintf(":%d", cfg.Server.Port) log.Printf("肉垫计划 listening on %s", addr) log.Fatal(r.Run(addr)) }