From 490ccb93a12fc55105b6362c4a1ab6386b855925 Mon Sep 17 00:00:00 2001 From: mahsa-fox Date: Mon, 16 Mar 2026 15:22:43 +0330 Subject: [PATCH 1/4] issue232-add-payment-domain --- paymentapp/app.go | 1 + paymentapp/config.go | 1 + paymentapp/delivery/http/handler.go | 15 +++++++++++++++ paymentapp/delivery/http/route.go | 5 +++++ paymentapp/delivery/http/server.go | 22 ++++++++++++++++++++++ paymentapp/service/entity.go | 1 + paymentapp/service/param.go | 1 + paymentapp/service/service.go | 1 + paymentapp/service/validator.go | 1 + 9 files changed, 48 insertions(+) create mode 100644 paymentapp/app.go create mode 100644 paymentapp/config.go create mode 100644 paymentapp/delivery/http/handler.go create mode 100644 paymentapp/delivery/http/route.go create mode 100644 paymentapp/delivery/http/server.go create mode 100644 paymentapp/service/entity.go create mode 100644 paymentapp/service/param.go create mode 100644 paymentapp/service/service.go create mode 100644 paymentapp/service/validator.go diff --git a/paymentapp/app.go b/paymentapp/app.go new file mode 100644 index 00000000..bf1761cb --- /dev/null +++ b/paymentapp/app.go @@ -0,0 +1 @@ +package paymentapp \ No newline at end of file diff --git a/paymentapp/config.go b/paymentapp/config.go new file mode 100644 index 00000000..bf1761cb --- /dev/null +++ b/paymentapp/config.go @@ -0,0 +1 @@ +package paymentapp \ No newline at end of file diff --git a/paymentapp/delivery/http/handler.go b/paymentapp/delivery/http/handler.go new file mode 100644 index 00000000..59589fb1 --- /dev/null +++ b/paymentapp/delivery/http/handler.go @@ -0,0 +1,15 @@ +package http + +type Handler struct { + +} + +func NewHandler(userService UserService) *Handler { + return &Handler{ + + } +} + +func (h *Handler) HealthCheck(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("OK")) +} diff --git a/paymentapp/delivery/http/route.go b/paymentapp/delivery/http/route.go new file mode 100644 index 00000000..2beb2023 --- /dev/null +++ b/paymentapp/delivery/http/route.go @@ -0,0 +1,5 @@ +package http + +func (s *Server) registerRoutes() { + s.httpServer.GET("/health", s.handler.HealthCheck) +} diff --git a/paymentapp/delivery/http/server.go b/paymentapp/delivery/http/server.go new file mode 100644 index 00000000..ff40bc86 --- /dev/null +++ b/paymentapp/delivery/http/server.go @@ -0,0 +1,22 @@ +package http + +type Server struct { + httpServer *httpserver.Server + handler *Handler +} + +func NewServer(httpServer *httpserver.Server, handler *Handler) *Server { + return &Server{ + httpServer: httpServer, + handler: handler, + } +} + +func (s *Server) Serve() error { + s.registerRoutes() + return s.httpServer.Start() +} + +func (s *Server) Stop() error { + return s.httpServer.Stop() +} diff --git a/paymentapp/service/entity.go b/paymentapp/service/entity.go new file mode 100644 index 00000000..2e5a6c34 --- /dev/null +++ b/paymentapp/service/entity.go @@ -0,0 +1 @@ +package service \ No newline at end of file diff --git a/paymentapp/service/param.go b/paymentapp/service/param.go new file mode 100644 index 00000000..2e5a6c34 --- /dev/null +++ b/paymentapp/service/param.go @@ -0,0 +1 @@ +package service \ No newline at end of file diff --git a/paymentapp/service/service.go b/paymentapp/service/service.go new file mode 100644 index 00000000..2e5a6c34 --- /dev/null +++ b/paymentapp/service/service.go @@ -0,0 +1 @@ +package service \ No newline at end of file diff --git a/paymentapp/service/validator.go b/paymentapp/service/validator.go new file mode 100644 index 00000000..2e5a6c34 --- /dev/null +++ b/paymentapp/service/validator.go @@ -0,0 +1 @@ +package service \ No newline at end of file From e244f78364c18c91a9e736652796497ecf46ac15 Mon Sep 17 00:00:00 2001 From: Mohammad Amin Date: Sat, 21 Mar 2026 20:24:41 +0330 Subject: [PATCH 2/4] Add patient domain structure --- patientapp/app.go | 1 + patientapp/delivery/http/analytic/.gitkeep | 0 patientapp/repository/database/.gitkeep | 0 patientapp/service/analytic/.gitkeep | 0 4 files changed, 1 insertion(+) create mode 100644 patientapp/app.go create mode 100644 patientapp/delivery/http/analytic/.gitkeep create mode 100644 patientapp/repository/database/.gitkeep create mode 100644 patientapp/service/analytic/.gitkeep diff --git a/patientapp/app.go b/patientapp/app.go new file mode 100644 index 00000000..29d637af --- /dev/null +++ b/patientapp/app.go @@ -0,0 +1 @@ +package patientapp diff --git a/patientapp/delivery/http/analytic/.gitkeep b/patientapp/delivery/http/analytic/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/patientapp/repository/database/.gitkeep b/patientapp/repository/database/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/patientapp/service/analytic/.gitkeep b/patientapp/service/analytic/.gitkeep new file mode 100644 index 00000000..e69de29b From e72b78701aef2adb5293b1435ee891ebc6144628 Mon Sep 17 00:00:00 2001 From: Sahar Mokarrami Date: Sat, 21 Mar 2026 23:35:39 +0330 Subject: [PATCH 3/4] 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 From 97a8ad78a6dccb720ab27e9926e236f0ee3bf38f Mon Sep 17 00:00:00 2001 From: amir-ys Date: Tue, 24 Mar 2026 14:28:29 +0330 Subject: [PATCH 4/4] feat: add product domain structure --- productapp/app.go | 8 ++++++++ productapp/config.go | 4 ++++ productapp/delivery/http/handler.go | 17 +++++++++++++++++ productapp/delivery/http/route.go | 1 + productapp/delivery/http/server.go | 23 +++++++++++++++++++++++ productapp/repository/database/db.go | 13 +++++++++++++ productapp/service/entity.go | 1 + productapp/service/param.go | 1 + productapp/service/service.go | 1 + productapp/service/validator.go | 1 + 10 files changed, 70 insertions(+) create mode 100644 productapp/app.go create mode 100644 productapp/config.go create mode 100644 productapp/delivery/http/handler.go create mode 100644 productapp/delivery/http/route.go create mode 100644 productapp/delivery/http/server.go create mode 100644 productapp/repository/database/db.go create mode 100644 productapp/service/entity.go create mode 100644 productapp/service/param.go create mode 100644 productapp/service/service.go create mode 100644 productapp/service/validator.go diff --git a/productapp/app.go b/productapp/app.go new file mode 100644 index 00000000..fc658cbf --- /dev/null +++ b/productapp/app.go @@ -0,0 +1,8 @@ +package productapp + +import "net/http" + +type Application struct { + Config Config + HTTPServer *http.Server +} diff --git a/productapp/config.go b/productapp/config.go new file mode 100644 index 00000000..64c7837d --- /dev/null +++ b/productapp/config.go @@ -0,0 +1,4 @@ +package productapp + +type Config struct { +} diff --git a/productapp/delivery/http/handler.go b/productapp/delivery/http/handler.go new file mode 100644 index 00000000..e9549c3c --- /dev/null +++ b/productapp/delivery/http/handler.go @@ -0,0 +1,17 @@ +package http + +import ( + "net/http" + + "github.com/labstack/echo/v4" +) + +type Handler struct{} + +func NewHandler() *Handler { + return &Handler{} +} + +func (h Handler) HealthCheck(c echo.Context) error { + return c.JSON(http.StatusOK, map[string]string{"status": "ok"}) +} diff --git a/productapp/delivery/http/route.go b/productapp/delivery/http/route.go new file mode 100644 index 00000000..d02cfda6 --- /dev/null +++ b/productapp/delivery/http/route.go @@ -0,0 +1 @@ +package http diff --git a/productapp/delivery/http/server.go b/productapp/delivery/http/server.go new file mode 100644 index 00000000..c5adfb44 --- /dev/null +++ b/productapp/delivery/http/server.go @@ -0,0 +1,23 @@ +package http + +import httpserver "git.gocasts.ir/ebhomengo/niki/delivery/http_server" + +type Server struct { + HTTPServer *httpserver.Server + Handler *Handler +} + +func NewServer(httpserver *httpserver.Server) *Server { + return &Server{ + HTTPServer: httpserver, + Handler: NewHandler(), + } +} + +func (s *Server) Serve() { + +} + +func (s *Server) Stop() {} + +func (s *Server) RegisterRoutes() {} diff --git a/productapp/repository/database/db.go b/productapp/repository/database/db.go new file mode 100644 index 00000000..5d07c611 --- /dev/null +++ b/productapp/repository/database/db.go @@ -0,0 +1,13 @@ +package database + +import "git.gocasts.ir/ebhomengo/niki/repository/mysql" + +type DB struct { + conn *mysql.DB +} + +func New(conn *mysql.DB) *DB { + return &DB{ + conn: conn, + } +} diff --git a/productapp/service/entity.go b/productapp/service/entity.go new file mode 100644 index 00000000..6d43c336 --- /dev/null +++ b/productapp/service/entity.go @@ -0,0 +1 @@ +package service diff --git a/productapp/service/param.go b/productapp/service/param.go new file mode 100644 index 00000000..6d43c336 --- /dev/null +++ b/productapp/service/param.go @@ -0,0 +1 @@ +package service diff --git a/productapp/service/service.go b/productapp/service/service.go new file mode 100644 index 00000000..6d43c336 --- /dev/null +++ b/productapp/service/service.go @@ -0,0 +1 @@ +package service diff --git a/productapp/service/validator.go b/productapp/service/validator.go new file mode 100644 index 00000000..6d43c336 --- /dev/null +++ b/productapp/service/validator.go @@ -0,0 +1 @@ +package service