package database import ( "BE-MiniERP/config" auth_models "BE-MiniERP/modules/auth/models" inventory_models "BE-MiniERP/modules/inventory/models" sales_models "BE-MiniERP/modules/sales/models" "fmt" "log" "gorm.io/driver/postgres" "gorm.io/gorm" ) var DB *gorm.DB func Connect() { cfg := config.GetConfig() dsn := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%s sslmode=%s", cfg.DBHost, cfg.DBUser, cfg.DBPassword, cfg.DBName, cfg.DBPort, cfg.DBSSLMode, ) var err error DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { log.Fatal("Failed to connect to DB:", err) } // Auto migrate models err = DB.AutoMigrate( &auth_models.User{}, &inventory_models.Product{}, &inventory_models.ProductCategory{}, &inventory_models.Collection{}, &inventory_models.Colour{}, &inventory_models.Size{}, &inventory_models.ProductComponent{}, &inventory_models.ProductionOrder{}, &inventory_models.Warehouse{}, &inventory_models.StockMovement{}, &sales_models.Customer{}, &sales_models.SalesOrder{}, &sales_models.SalesOrderItem{}, &sales_models.Invoice{}, &sales_models.InvoiceLine{}, &sales_models.Payment{}, ) if err != nil { log.Fatal("Failed to auto migrate:", err) } }