From 8dba52cc176d0292ddeff5d5734efc7ba3f03778 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Thu, 4 Dec 2025 03:52:51 +0700 Subject: [PATCH] feat/order-things: adjust table structure --- cmd/main-migration/migrations/20251203205052.sql | 4 ++++ cmd/main-migration/migrations/atlas.sum | 3 ++- .../procedure-room-order-item/base/entity.go | 12 ++++++++++++ .../procedure-room-order-item/entity.go | 11 +++++------ .../main-entities/procedure-room-order/dto.go | 12 ++++++------ .../main-entities/procedure-room-order/entity.go | 15 ++++++++------- .../domain/main-entities/procedure-room/dto.go | 2 +- 7 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 cmd/main-migration/migrations/20251203205052.sql create mode 100644 internal/domain/main-entities/procedure-room-order-item/base/entity.go diff --git a/cmd/main-migration/migrations/20251203205052.sql b/cmd/main-migration/migrations/20251203205052.sql new file mode 100644 index 00000000..831497a2 --- /dev/null +++ b/cmd/main-migration/migrations/20251203205052.sql @@ -0,0 +1,4 @@ +-- Modify "ProcedureRoomOrder" table +ALTER TABLE "public"."ProcedureRoomOrder" DROP COLUMN "Infra_Code"; +-- Modify "ProcedureRoomOrderItem" table +ALTER TABLE "public"."ProcedureRoomOrderItem" ADD CONSTRAINT "fk_ProcedureRoomOrderItem_ProcedureRoomOrder" FOREIGN KEY ("ProcedureRoomOrder_Id") REFERENCES "public"."ProcedureRoomOrder" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 341a35d3..3ec1b876 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:DgMML95zGYI7JMvZaIb/gySCvncMu62CANOIXNX0A6w= +h1:qjr3k9/ymXjw1nopw49c6+fWtu0n+H8sQgsioqUC9Fo= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -144,3 +144,4 @@ h1:DgMML95zGYI7JMvZaIb/gySCvncMu62CANOIXNX0A6w= 20251202160848.sql h1:Kd2/TziKSMezrt4XgbjQcYvY/Lo9rX0qw7/Lz0/oyKk= 20251202180207.sql h1:IHmSMIO3ia+YV5GULixbdlV1joaUAWtnjQHPd8+HKiM= 20251202231005.sql h1:lua0KKoeBptSfs/6ehZE6Azo6YUlNkOJwGFyb1HQWkY= +20251203205052.sql h1:az/hGpk7u4YKT7gU+UuEw9guqB9AqdckPF1cYavQ3CA= diff --git a/internal/domain/main-entities/procedure-room-order-item/base/entity.go b/internal/domain/main-entities/procedure-room-order-item/base/entity.go new file mode 100644 index 00000000..cd54e456 --- /dev/null +++ b/internal/domain/main-entities/procedure-room-order-item/base/entity.go @@ -0,0 +1,12 @@ +package procedureroomorder + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" +) + +type ProcedureRoomOrderItem struct { + ecore.BigMain + ProcedureRoomOrder_Id uint64 `json:"procedureRoomOrder_id"` + ProcedureRoom_Code string `json:"procedureRoom_code" gorm:"size:20"` + Note string `json:"note" gorm:"size:255"` +} diff --git a/internal/domain/main-entities/procedure-room-order-item/entity.go b/internal/domain/main-entities/procedure-room-order-item/entity.go index 4a737048..13b4978b 100644 --- a/internal/domain/main-entities/procedure-room-order-item/entity.go +++ b/internal/domain/main-entities/procedure-room-order-item/entity.go @@ -1,14 +1,13 @@ package procedureroomorder import ( - ecore "simrs-vx/internal/domain/base-entities/core" epr "simrs-vx/internal/domain/main-entities/procedure-room" + epro "simrs-vx/internal/domain/main-entities/procedure-room-order" + eb "simrs-vx/internal/domain/main-entities/procedure-room-order-item/base" ) type ProcedureRoomOrderItem struct { - ecore.BigMain - ProcedureRoomOrder_Id uint64 `json:"procedureRoomOrder_id"` - ProcedureRoom_Code string `json:"procedureRoom_code" gorm:"size:20"` - ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty" gorm:"foreignKey:ProcedureRoom_Code;references:Code"` - Note string `json:"note" gorm:"size:255"` + eb.ProcedureRoomOrderItem + ProcedureRoomOrder *epro.ProcedureRoomOrder `json:"procedureRoomOrder,omitempty" gorm:"foreignKey:ProcedureRoomOrder_Id;references:Id"` + ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty" gorm:"foreignKey:ProcedureRoom_Code;references:Code"` } diff --git a/internal/domain/main-entities/procedure-room-order/dto.go b/internal/domain/main-entities/procedure-room-order/dto.go index 5810e756..4482081c 100644 --- a/internal/domain/main-entities/procedure-room-order/dto.go +++ b/internal/domain/main-entities/procedure-room-order/dto.go @@ -9,9 +9,9 @@ import ( ) type CreateDto struct { - Encounter_Id uint64 `json:"encounter_id" validate:"required"` - Infra_Code string `json:"infra_code" validate:"required"` - MaterialPackage_Code string `json:"materialPackage_code" validate:"required"` + Encounter_Id uint64 `json:"encounter_id" validate:"required"` + // Infra_Code string `json:"infra_code" validate:"required"` + MaterialPackage_Code *string `json:"materialPackage_code"` } type ReadListDto struct { @@ -48,7 +48,7 @@ type ResponseDto struct { Encounter_Id uint64 `json:"encounter_id"` Encounter *ec.Encounter `json:"encounter,omitempty"` Infra_Code string `json:"procedure"` - MaterialPackage_Code string `json:"materialPackage_code"` + MaterialPackage_Code *string `json:"materialPackage_code"` Status_Code erc.DataStatusCode `json:"status_code"` ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty"` MaterialPackage *emp.MaterialPackage `json:"materialPackage,omitempty"` @@ -56,8 +56,8 @@ type ResponseDto struct { func (d ProcedureRoomOrder) ToResponse() ResponseDto { resp := ResponseDto{ - Encounter_Id: d.Encounter_Id, - Infra_Code: d.Infra_Code, + Encounter_Id: d.Encounter_Id, + // Infra_Code: d.Infra_Code, MaterialPackage_Code: d.MaterialPackage_Code, Status_Code: d.Status_Code, } diff --git a/internal/domain/main-entities/procedure-room-order/entity.go b/internal/domain/main-entities/procedure-room-order/entity.go index 1ef7c178..5d2c8ba7 100644 --- a/internal/domain/main-entities/procedure-room-order/entity.go +++ b/internal/domain/main-entities/procedure-room-order/entity.go @@ -5,15 +5,16 @@ import ( ecore "simrs-vx/internal/domain/base-entities/core" emp "simrs-vx/internal/domain/main-entities/material-package" - epr "simrs-vx/internal/domain/main-entities/procedure-room" + eproi "simrs-vx/internal/domain/main-entities/procedure-room-order-item/base" ) type ProcedureRoomOrder struct { ecore.BigMain - Encounter_Id uint64 `json:"encounter_id"` - Infra_Code string `json:"infra_code" gorm:"size:20"` - ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty" gorm:"foreignKey:Infra_Code;references:Code"` - MaterialPackage_Code string `json:"materialPackage_code" gorm:"size:20"` - MaterialPackage *emp.MaterialPackage `json:"materialPackage,omitempty" gorm:"foreignKey:MaterialPackage_Code;references:Code"` - Status_Code erc.DataStatusCode `json:"status_code" gorm:"size:20"` + Encounter_Id uint64 `json:"encounter_id"` + // Infra_Code string `json:"infra_code" gorm:"size:20"` + // ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty" gorm:"foreignKey:Infra_Code;references:Code"` + MaterialPackage_Code *string `json:"materialPackage_code" gorm:"size:20"` + MaterialPackage *emp.MaterialPackage `json:"materialPackage,omitempty" gorm:"foreignKey:MaterialPackage_Code;references:Code"` + Status_Code erc.DataStatusCode `json:"status_code" gorm:"size:20"` + Items []eproi.ProcedureRoomOrderItem `json:"items,omitempty" gorm:"foreignKey:ProcedureRoomOrder_Id;references:Id"` } diff --git a/internal/domain/main-entities/procedure-room/dto.go b/internal/domain/main-entities/procedure-room/dto.go index 373e6cd9..b3812db2 100644 --- a/internal/domain/main-entities/procedure-room/dto.go +++ b/internal/domain/main-entities/procedure-room/dto.go @@ -25,7 +25,7 @@ type ReadListDto struct { type FilterDto struct { Infra_Code *string `json:"infra-code"` - Type_Code string `json:"type_code"` + Type_Code string `json:"type-code"` Unit_Code *string `json:"unit-code"` Specialist_Code *string `json:"specialist-code"` Subspecialist_Code *string `json:"subspecialist-code"`