koh d6aabd65d1
Cập nhật cấu hình MySQL và Wire provider
- Điều chỉnh cấu hình MySQL trong docker-compose.prod.yml để sử dụng root user
- Loại bỏ cấu hình người dùng MySQL không cần thiết
- Cập nhật hàm ProvideDB trong wire.go để trả về global database instance
- Làm sạch và tối ưu hóa cấu hình kết nối cơ sở dữ liệu
2025-03-03 17:17:53 +07:00

50 lines
1.6 KiB
Go

// Package wire chứa các định nghĩa cho dependency injection sử dụng Google Wire
package wire
import (
"github.com/dungnt11/senflow_app/global"
"github.com/dungnt11/senflow_app/internal/controllers"
"github.com/dungnt11/senflow_app/internal/repositories"
"github.com/dungnt11/senflow_app/internal/services"
"github.com/google/wire"
"gorm.io/gorm"
)
// RepositorySet là tập hợp các provider cho repositories
var RepositorySet = wire.NewSet(
repositories.NewUserRepository,
wire.Bind(new(repositories.IUserRepository), new(*repositories.UserRepository)),
repositories.NewProductRepository,
wire.Bind(new(repositories.IProductRepository), new(*repositories.ProductRepository)),
)
// ServiceSet là tập hợp các provider cho services
var ServiceSet = wire.NewSet(
services.NewUserService,
wire.Bind(new(services.IUserService), new(*services.UserService)),
services.NewProductService,
wire.Bind(new(services.IProductService), new(*services.ProductService)),
)
// ControllerSet là tập hợp các provider cho controllers
var ControllerSet = wire.NewSet(
controllers.NewUserController,
wire.Bind(new(controllers.IUserController), new(*controllers.UserController)),
controllers.NewProductController,
wire.Bind(new(controllers.IProductController), new(*controllers.ProductController)),
controllers.NewControllers,
)
// ProvideDB cung cấp instance của *gorm.DB
func ProvideDB() *gorm.DB {
return global.Mdb
}
// AppSet là tập hợp tất cả các provider
var AppSet = wire.NewSet(
RepositorySet,
ServiceSet,
ControllerSet,
ProvideDB,
)