2023-10-08 15:59:42 +07:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"log"
|
|
|
|
|
|
2025-03-04 20:36:17 +07:00
|
|
|
"enaklo-pos-be/config"
|
|
|
|
|
_ "enaklo-pos-be/docs"
|
|
|
|
|
"enaklo-pos-be/internal/app"
|
|
|
|
|
"enaklo-pos-be/internal/common/db"
|
|
|
|
|
"enaklo-pos-be/internal/common/logger"
|
|
|
|
|
"enaklo-pos-be/internal/repository"
|
|
|
|
|
"enaklo-pos-be/internal/routes"
|
|
|
|
|
"enaklo-pos-be/internal/services"
|
2023-10-08 15:59:42 +07:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
loggerSingleton := logger.NewMainLoggerSingleton()
|
|
|
|
|
loggerSingleton.Info("Starting server")
|
|
|
|
|
|
|
|
|
|
cfg := config.LoadConfig()
|
|
|
|
|
|
|
|
|
|
dbConn, err := db.NewPostgres(cfg.Database)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-10 23:52:09 +07:00
|
|
|
server := app.NewServer(cfg)
|
2023-10-08 15:59:42 +07:00
|
|
|
|
|
|
|
|
repo := repository.NewRepoManagerImpl(dbConn, cfg)
|
|
|
|
|
service := services.NewServiceManagerImpl(cfg, repo)
|
|
|
|
|
|
|
|
|
|
routes.RegisterPublicRoutes(server, service, repo)
|
|
|
|
|
routes.RegisterPrivateRoutes(server, service, repo)
|
2024-08-03 20:01:25 +07:00
|
|
|
routes.RegisterCustomerRoutes(server, service, repo)
|
2023-10-08 15:59:42 +07:00
|
|
|
|
|
|
|
|
server.StartScheduler()
|
|
|
|
|
|
|
|
|
|
log.Fatal(server.Listen(fmt.Sprint(":", cfg.Server.Port)))
|
|
|
|
|
}
|