From e72b78701aef2adb5293b1435ee891ebc6144628 Mon Sep 17 00:00:00 2001 From: Sahar Mokarrami Date: Sat, 21 Mar 2026 23:35:39 +0330 Subject: [PATCH] feat: add purchase domain structure --- purchaseapp/app.go | 1 + purchaseapp/config.go | 4 +++ purchaseapp/delivery/http/health_check.go | 10 ++++++ purchaseapp/delivery/http/invoice/handler.go | 8 +++++ purchaseapp/delivery/http/invoice/route.go | 7 +++++ purchaseapp/delivery/http/order/handler.go | 7 +++++ purchaseapp/delivery/http/order/route.go | 7 +++++ purchaseapp/delivery/http/server.go | 33 ++++++++++++++++++++ purchaseapp/entity/invoice.go | 4 +++ purchaseapp/entity/order.go | 4 +++ purchaseapp/repository/mysql/db.go | 1 + purchaseapp/service/invoice/param.go | 1 + purchaseapp/service/invoice/service.go | 4 +++ purchaseapp/service/invoice/validator.go | 1 + purchaseapp/service/order/param.go | 1 + purchaseapp/service/order/service.go | 4 +++ purchaseapp/service/order/validator.go | 1 + 17 files changed, 98 insertions(+) create mode 100644 purchaseapp/app.go create mode 100644 purchaseapp/config.go create mode 100644 purchaseapp/delivery/http/health_check.go create mode 100644 purchaseapp/delivery/http/invoice/handler.go create mode 100644 purchaseapp/delivery/http/invoice/route.go create mode 100644 purchaseapp/delivery/http/order/handler.go create mode 100644 purchaseapp/delivery/http/order/route.go create mode 100644 purchaseapp/delivery/http/server.go create mode 100644 purchaseapp/entity/invoice.go create mode 100644 purchaseapp/entity/order.go create mode 100644 purchaseapp/repository/mysql/db.go create mode 100644 purchaseapp/service/invoice/param.go create mode 100644 purchaseapp/service/invoice/service.go create mode 100644 purchaseapp/service/invoice/validator.go create mode 100644 purchaseapp/service/order/param.go create mode 100644 purchaseapp/service/order/service.go create mode 100644 purchaseapp/service/order/validator.go diff --git a/purchaseapp/app.go b/purchaseapp/app.go new file mode 100644 index 00000000..8f3c7051 --- /dev/null +++ b/purchaseapp/app.go @@ -0,0 +1 @@ +package purchaseapp diff --git a/purchaseapp/config.go b/purchaseapp/config.go new file mode 100644 index 00000000..3957f32e --- /dev/null +++ b/purchaseapp/config.go @@ -0,0 +1,4 @@ +package purchaseapp + +type Config struct { +} diff --git a/purchaseapp/delivery/http/health_check.go b/purchaseapp/delivery/http/health_check.go new file mode 100644 index 00000000..7039b827 --- /dev/null +++ b/purchaseapp/delivery/http/health_check.go @@ -0,0 +1,10 @@ +package http + +import ( + "github.com/labstack/echo/v4" + "net/http" +) + +func (s Server) healthCheck(c echo.Context) error { + return c.JSON(http.StatusOK, "everything is good!") +} diff --git a/purchaseapp/delivery/http/invoice/handler.go b/purchaseapp/delivery/http/invoice/handler.go new file mode 100644 index 00000000..d5de3ca8 --- /dev/null +++ b/purchaseapp/delivery/http/invoice/handler.go @@ -0,0 +1,8 @@ +package invoice + +type Handler struct { +} + +func New() *Handler { + return &Handler{} +} diff --git a/purchaseapp/delivery/http/invoice/route.go b/purchaseapp/delivery/http/invoice/route.go new file mode 100644 index 00000000..7584f63a --- /dev/null +++ b/purchaseapp/delivery/http/invoice/route.go @@ -0,0 +1,7 @@ +package invoice + +import "github.com/labstack/echo/v4" + +func (h Handler) SetRoutes(e *echo.Echo) { + +} diff --git a/purchaseapp/delivery/http/order/handler.go b/purchaseapp/delivery/http/order/handler.go new file mode 100644 index 00000000..a515fef5 --- /dev/null +++ b/purchaseapp/delivery/http/order/handler.go @@ -0,0 +1,7 @@ +package order + +type Handler struct{} + +func New() *Handler { + return &Handler{} +} diff --git a/purchaseapp/delivery/http/order/route.go b/purchaseapp/delivery/http/order/route.go new file mode 100644 index 00000000..62b20d3c --- /dev/null +++ b/purchaseapp/delivery/http/order/route.go @@ -0,0 +1,7 @@ +package order + +import "github.com/labstack/echo/v4" + +func (h Handler) SetRoutes(e *echo.Echo) { + +} diff --git a/purchaseapp/delivery/http/server.go b/purchaseapp/delivery/http/server.go new file mode 100644 index 00000000..fd23a2f6 --- /dev/null +++ b/purchaseapp/delivery/http/server.go @@ -0,0 +1,33 @@ +package http + +import ( + httpserver "git.gocasts.ir/ebhomengo/niki/delivery/http_server" + "git.gocasts.ir/ebhomengo/niki/purchaseapp/delivery/http/invoice" + "git.gocasts.ir/ebhomengo/niki/purchaseapp/delivery/http/order" +) + +type Server struct { + HTTPServer *httpserver.Server + OrderHandler *order.Handler + InvoiceHandler *invoice.Handler +} + +func New(httpserver *httpserver.Server) *Server { + return &Server{ + HTTPServer: httpserver, + OrderHandler: order.New(), + InvoiceHandler: invoice.New(), + } +} + +func (s *Server) Serve() { + s.RegisterRoutes() +} + +func (s *Server) Stop() {} + +func (s *Server) RegisterRoutes() { + s.HTTPServer.Router.GET("/purchase/health-check", s.healthCheck) + s.OrderHandler.SetRoutes(s.HTTPServer.Router) + s.InvoiceHandler.SetRoutes(s.HTTPServer.Router) +} diff --git a/purchaseapp/entity/invoice.go b/purchaseapp/entity/invoice.go new file mode 100644 index 00000000..ee532a52 --- /dev/null +++ b/purchaseapp/entity/invoice.go @@ -0,0 +1,4 @@ +package entity + +type Invoice struct { +} diff --git a/purchaseapp/entity/order.go b/purchaseapp/entity/order.go new file mode 100644 index 00000000..332403f8 --- /dev/null +++ b/purchaseapp/entity/order.go @@ -0,0 +1,4 @@ +package entity + +type Order struct { +} diff --git a/purchaseapp/repository/mysql/db.go b/purchaseapp/repository/mysql/db.go new file mode 100644 index 00000000..b0843023 --- /dev/null +++ b/purchaseapp/repository/mysql/db.go @@ -0,0 +1 @@ +package mysql diff --git a/purchaseapp/service/invoice/param.go b/purchaseapp/service/invoice/param.go new file mode 100644 index 00000000..958a6107 --- /dev/null +++ b/purchaseapp/service/invoice/param.go @@ -0,0 +1 @@ +package invoice diff --git a/purchaseapp/service/invoice/service.go b/purchaseapp/service/invoice/service.go new file mode 100644 index 00000000..63c4a3f5 --- /dev/null +++ b/purchaseapp/service/invoice/service.go @@ -0,0 +1,4 @@ +package invoice + +type Service struct { +} diff --git a/purchaseapp/service/invoice/validator.go b/purchaseapp/service/invoice/validator.go new file mode 100644 index 00000000..958a6107 --- /dev/null +++ b/purchaseapp/service/invoice/validator.go @@ -0,0 +1 @@ +package invoice diff --git a/purchaseapp/service/order/param.go b/purchaseapp/service/order/param.go new file mode 100644 index 00000000..175f0c10 --- /dev/null +++ b/purchaseapp/service/order/param.go @@ -0,0 +1 @@ +package order diff --git a/purchaseapp/service/order/service.go b/purchaseapp/service/order/service.go new file mode 100644 index 00000000..4ddf977f --- /dev/null +++ b/purchaseapp/service/order/service.go @@ -0,0 +1,4 @@ +package order + +type Service struct { +} diff --git a/purchaseapp/service/order/validator.go b/purchaseapp/service/order/validator.go new file mode 100644 index 00000000..175f0c10 --- /dev/null +++ b/purchaseapp/service/order/validator.go @@ -0,0 +1 @@ +package order