jaecoo-be/main.go

107 lines
3.0 KiB
Go
Raw Normal View History

2025-11-15 15:46:24 +00:00
package main
import (
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/database"
"jaecoo-be/app/middleware"
"jaecoo-be/app/module/activity_logs"
"jaecoo-be/app/module/approval_histories"
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/module/article_approvals"
"jaecoo-be/app/module/article_categories"
"jaecoo-be/app/module/article_category_details"
"jaecoo-be/app/module/article_comments"
"jaecoo-be/app/module/article_files"
"jaecoo-be/app/module/articles"
2025-11-15 17:43:23 +00:00
"jaecoo-be/app/module/banners"
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/module/cities"
2026-01-08 07:04:21 +00:00
"jaecoo-be/app/module/client_approval_settings"
"jaecoo-be/app/module/clients"
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/module/custom_static_pages"
"jaecoo-be/app/module/districts"
"jaecoo-be/app/module/feedbacks"
2025-11-15 17:43:23 +00:00
"jaecoo-be/app/module/galleries"
"jaecoo-be/app/module/gallery_files"
"jaecoo-be/app/module/product_specifications"
"jaecoo-be/app/module/products"
"jaecoo-be/app/module/promotions"
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/module/provinces"
2025-11-15 17:43:23 +00:00
"jaecoo-be/app/module/sales_agents"
2025-11-15 15:59:30 +00:00
"jaecoo-be/app/module/user_levels"
"jaecoo-be/app/module/user_role_accesses"
"jaecoo-be/app/module/user_role_level_details"
"jaecoo-be/app/module/user_roles"
"jaecoo-be/app/module/users"
"jaecoo-be/app/router"
"jaecoo-be/config/config"
"jaecoo-be/config/logger"
"jaecoo-be/config/webserver"
2025-11-15 15:46:24 +00:00
"time"
fxzerolog "github.com/efectn/fx-zerolog"
"go.uber.org/fx"
)
func main() {
fx.New(
/* provide patterns */
// config
fx.Provide(config.NewConfig),
// logging
fx.Provide(logger.NewLogger),
// fiber
fx.Provide(webserver.NewFiber),
// database
fx.Provide(database.NewDatabase),
// middleware
fx.Provide(middleware.NewMiddleware),
// data storage
fx.Provide(config.NewMinio),
// user management
fx.Provide(config.NewKeycloakConfig),
// router
fx.Provide(router.NewRouter),
// smtp config
fx.Provide(config.NewSmtpConfig),
// provide modules
activity_logs.NewActivityLogsModule,
approval_histories.NewApprovalHistoriesModule,
2025-11-15 15:46:24 +00:00
article_categories.NewArticleCategoriesModule,
article_category_details.NewArticleCategoryDetailsModule,
article_files.NewArticleFilesModule,
article_approvals.NewArticleApprovalsModule,
articles.NewArticlesModule,
article_comments.NewArticleCommentsModule,
2025-11-15 17:43:23 +00:00
banners.NewBannersModule,
2025-11-15 15:46:24 +00:00
cities.NewCitiesModule,
2026-01-08 07:04:21 +00:00
client_approval_settings.NewClientApprovalSettingsModule,
clients.NewClientsModule,
2025-11-15 15:46:24 +00:00
custom_static_pages.NewCustomStaticPagesModule,
districts.NewDistrictsModule,
feedbacks.NewFeedbacksModule,
2025-11-15 17:43:23 +00:00
galleries.NewGalleriesModule,
gallery_files.NewGalleryFilesModule,
product_specifications.NewProductSpecificationsModule,
products.NewProductsModule,
promotions.NewPromotionsModule,
2025-11-15 15:46:24 +00:00
provinces.NewProvincesModule,
2025-11-15 17:43:23 +00:00
sales_agents.NewSalesAgentsModule,
2025-11-15 15:46:24 +00:00
user_levels.NewUserLevelsModule,
user_roles.NewUserRolesModule,
user_role_accesses.NewUserRoleAccessesModule,
users.NewUsersModule,
user_role_level_details.NewUserRoleLevelDetailsModule,
// start aplication
fx.Invoke(webserver.Start),
// start scheduling
fx.Invoke(webserver.RunScheduling),
// define logger
fx.WithLogger(fxzerolog.Init()),
fx.StartTimeout(600*time.Second),
).Run()
}