From fbd8d30ec6be9afdbd43384d1e4e319bc6addb93 Mon Sep 17 00:00:00 2001 From: vanilia Date: Fri, 14 Nov 2025 14:11:55 +0700 Subject: [PATCH 1/2] add sync unit --- cmd/main-migration/migrations/atlas.sum | 4 +-- .../migrations/20251114071129.sql | 36 +++++++++++++++++++ .../migrations/atlas.sum | 3 +- .../domain/simgos-entities/unit/entity.go | 11 ++++++ internal/domain/sync-entities/unit/entity.go | 29 +++++++++++++++ .../migration/simgossync-entities.go | 4 +++ 6 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 cmd/simgos-sync-migration/migrations/20251114071129.sql create mode 100644 internal/domain/simgos-entities/unit/entity.go create mode 100644 internal/domain/sync-entities/unit/entity.go diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 1c172e0c..5e8b0d0f 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:RvRW5FTVb8Zdn/J5rSwIrXB7cbCmWJBNaVsxqArNl4E= +h1:hrZ5BrQCFCoyZbD1KKYCyR53xT2LTdRCIONnoNRierc= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -116,4 +116,4 @@ h1:RvRW5FTVb8Zdn/J5rSwIrXB7cbCmWJBNaVsxqArNl4E= 20251111082257.sql h1:ZsdLY1ROouos0l3oS0lkeSiuKLEUGbVvBhpcM2AVhkw= 20251111111017.sql h1:qrJ93dNtQwcuAvpsP/lAK/H63C4cinXrsVaPmWsTqkU= 20251113101344.sql h1:xaOZvAUP1fFfnO+syEFOzJUIg5lTfBe5AWHPbBWuCLA= -20251113120533.sql h1:MOk7YBwVLRCoqgPrC/mQAarp5WRl4aTk6NAzIoQPMNc= +20251113120533.sql h1:f3/U1Ve2yF2zSMhkt+xtwF8wUYfUKYwgbNeGfE37EW4= diff --git a/cmd/simgos-sync-migration/migrations/20251114071129.sql b/cmd/simgos-sync-migration/migrations/20251114071129.sql new file mode 100644 index 00000000..4499a544 --- /dev/null +++ b/cmd/simgos-sync-migration/migrations/20251114071129.sql @@ -0,0 +1,36 @@ +-- Create "UnitLink" table +CREATE TABLE "public"."UnitLink" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Simx_Id" bigint NULL, + "Simgos_Id" bigint NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "uni_UnitLink_Simgos_Id" UNIQUE ("Simgos_Id"), + CONSTRAINT "uni_UnitLink_Simx_Id" UNIQUE ("Simx_Id") +); +-- Create "UnitSimgosLog" table +CREATE TABLE "public"."UnitSimgosLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "UnitSimxLog" table +CREATE TABLE "public"."UnitSimxLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); diff --git a/cmd/simgos-sync-migration/migrations/atlas.sum b/cmd/simgos-sync-migration/migrations/atlas.sum index f1405dd2..e8418ec2 100644 --- a/cmd/simgos-sync-migration/migrations/atlas.sum +++ b/cmd/simgos-sync-migration/migrations/atlas.sum @@ -1,2 +1,3 @@ -h1:8jMmMBxSEls9jaOUrpQQV0wUPlORRwJWd5g9742Z2fQ= +h1:xxkaO6rL13nwrZd1vrsoGJrrwCtXPgGRmwGEjWJ1V/c= 20251113035508.sql h1:rjDlu6yDdy5xv6nrCOr7NialrLSLT23pzduYNq29Hf0= +20251114071129.sql h1:O4nfv4l9vcXpE2Kyu7vjnubD8kDZ7JltRaF2auOdMpc= diff --git a/internal/domain/simgos-entities/unit/entity.go b/internal/domain/simgos-entities/unit/entity.go new file mode 100644 index 00000000..20fa0000 --- /dev/null +++ b/internal/domain/simgos-entities/unit/entity.go @@ -0,0 +1,11 @@ +package unit + +type MPloy struct { + Kode uint `json:"kode" gorm:"primaryKey;autoIncrement;column:kode"` + Nama string `json:"nama" gorm:"column:nama"` + Jenispoly uint `json:"jenispoly" gorm:"column:jenispoly"` +} + +func (MPloy) TableName() string { + return "m_poly" +} diff --git a/internal/domain/sync-entities/unit/entity.go b/internal/domain/sync-entities/unit/entity.go new file mode 100644 index 00000000..d7491ea8 --- /dev/null +++ b/internal/domain/sync-entities/unit/entity.go @@ -0,0 +1,29 @@ +package unit + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + erc "simrs-vx/internal/domain/references/common" + "time" +) + +type UnitLink struct { + ecore.Main + Simx_Id uint `json:"simx_id" gorm:"unique"` + Simgos_Id uint `json:"simgos_id" gorm:"unique"` +} + +type UnitSimxLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} + +type UnitSimgosLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} diff --git a/internal/interface/migration/simgossync-entities.go b/internal/interface/migration/simgossync-entities.go index 3b67265f..d48cf699 100644 --- a/internal/interface/migration/simgossync-entities.go +++ b/internal/interface/migration/simgossync-entities.go @@ -3,6 +3,7 @@ package migration import ( /************** Source ***************/ installation "simrs-vx/internal/domain/sync-entities/installation" + unit "simrs-vx/internal/domain/sync-entities/unit" ) func getSimgosSyncEntities() []any { @@ -10,5 +11,8 @@ func getSimgosSyncEntities() []any { &installation.InstallationLink{}, &installation.InstallationSimxLog{}, &installation.InstallationSimgosLog{}, + &unit.UnitLink{}, + &unit.UnitSimxLog{}, + &unit.UnitSimgosLog{}, } } From 49c82c957e9183c0761a2f64bcbb18b81b4125ec Mon Sep 17 00:00:00 2001 From: vanilia Date: Mon, 17 Nov 2025 11:17:43 +0700 Subject: [PATCH 2/2] add entity sync for division, specialist and subspecialist --- .../migrations/20251117041601.sql | 108 ++++++++++++++++++ .../migrations/atlas.sum | 5 +- .../domain/sync-entities/division/entity.go | 29 +++++ .../domain/sync-entities/specialist/entity.go | 29 +++++ .../sync-entities/subspecialist/entity.go | 29 +++++ internal/interface/migration/migration.go | 2 +- .../migration/simgossync-entities.go | 14 ++- 7 files changed, 212 insertions(+), 4 deletions(-) create mode 100644 cmd/simgos-sync-migration/migrations/20251117041601.sql create mode 100644 internal/domain/sync-entities/division/entity.go create mode 100644 internal/domain/sync-entities/specialist/entity.go create mode 100644 internal/domain/sync-entities/subspecialist/entity.go diff --git a/cmd/simgos-sync-migration/migrations/20251117041601.sql b/cmd/simgos-sync-migration/migrations/20251117041601.sql new file mode 100644 index 00000000..7c33b155 --- /dev/null +++ b/cmd/simgos-sync-migration/migrations/20251117041601.sql @@ -0,0 +1,108 @@ +-- Create "DivisionLink" table +CREATE TABLE "public"."DivisionLink" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Simx_Id" bigint NULL, + "Simgos_Id" bigint NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "uni_DivisionLink_Simgos_Id" UNIQUE ("Simgos_Id"), + CONSTRAINT "uni_DivisionLink_Simx_Id" UNIQUE ("Simx_Id") +); +-- Create "DivisionSimgosLog" table +CREATE TABLE "public"."DivisionSimgosLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "DivisionSimxLog" table +CREATE TABLE "public"."DivisionSimxLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "SpecialistLink" table +CREATE TABLE "public"."SpecialistLink" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Simx_Id" bigint NULL, + "Simgos_Id" bigint NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "uni_SpecialistLink_Simgos_Id" UNIQUE ("Simgos_Id"), + CONSTRAINT "uni_SpecialistLink_Simx_Id" UNIQUE ("Simx_Id") +); +-- Create "SpecialistSimgosLog" table +CREATE TABLE "public"."SpecialistSimgosLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "SpecialistSimxLog" table +CREATE TABLE "public"."SpecialistSimxLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "SubspecialistLink" table +CREATE TABLE "public"."SubspecialistLink" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Simx_Id" bigint NULL, + "Simgos_Id" bigint NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "uni_SubspecialistLink_Simgos_Id" UNIQUE ("Simgos_Id"), + CONSTRAINT "uni_SubspecialistLink_Simx_Id" UNIQUE ("Simx_Id") +); +-- Create "SubspecialistSimgosLog" table +CREATE TABLE "public"."SubspecialistSimgosLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); +-- Create "SubspecialistSimxLog" table +CREATE TABLE "public"."SubspecialistSimxLog" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Value" text NULL, + "Date" timestamptz NULL, + "Status" text NULL, + "ErrMessage" text NULL, + PRIMARY KEY ("Id") +); diff --git a/cmd/simgos-sync-migration/migrations/atlas.sum b/cmd/simgos-sync-migration/migrations/atlas.sum index e8418ec2..30f8c5dc 100644 --- a/cmd/simgos-sync-migration/migrations/atlas.sum +++ b/cmd/simgos-sync-migration/migrations/atlas.sum @@ -1,3 +1,4 @@ -h1:xxkaO6rL13nwrZd1vrsoGJrrwCtXPgGRmwGEjWJ1V/c= +h1:SN+f41iFH0m63kHeZHYricAjil5GJ9EC0LBOSdFDnmY= 20251113035508.sql h1:rjDlu6yDdy5xv6nrCOr7NialrLSLT23pzduYNq29Hf0= -20251114071129.sql h1:O4nfv4l9vcXpE2Kyu7vjnubD8kDZ7JltRaF2auOdMpc= +20251114071129.sql h1:Z0GQ5bJo3C+tplaWzxT8n3J9HLkEaVsRVp5nn7bmYow= +20251117041601.sql h1:mIxZ2luKQREXUBY36PwLNDFI/Wf1T6Z2DDoGOueXFwI= diff --git a/internal/domain/sync-entities/division/entity.go b/internal/domain/sync-entities/division/entity.go new file mode 100644 index 00000000..9841c208 --- /dev/null +++ b/internal/domain/sync-entities/division/entity.go @@ -0,0 +1,29 @@ +package division + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + erc "simrs-vx/internal/domain/references/common" + "time" +) + +type DivisionLink struct { + ecore.Main + Simx_Id uint `json:"simx_id" gorm:"unique"` + Simgos_Id uint `json:"simgos_id" gorm:"unique"` +} + +type DivisionSimxLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} + +type DivisionSimgosLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} diff --git a/internal/domain/sync-entities/specialist/entity.go b/internal/domain/sync-entities/specialist/entity.go new file mode 100644 index 00000000..0eb8683c --- /dev/null +++ b/internal/domain/sync-entities/specialist/entity.go @@ -0,0 +1,29 @@ +package specialist + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + erc "simrs-vx/internal/domain/references/common" + "time" +) + +type SpecialistLink struct { + ecore.Main + Simx_Id uint `json:"simx_id" gorm:"unique"` + Simgos_Id uint `json:"simgos_id" gorm:"unique"` +} + +type SpecialistSimxLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} + +type SpecialistSimgosLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} diff --git a/internal/domain/sync-entities/subspecialist/entity.go b/internal/domain/sync-entities/subspecialist/entity.go new file mode 100644 index 00000000..76e16614 --- /dev/null +++ b/internal/domain/sync-entities/subspecialist/entity.go @@ -0,0 +1,29 @@ +package subspecialist + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + erc "simrs-vx/internal/domain/references/common" + "time" +) + +type SubspecialistLink struct { + ecore.Main + Simx_Id uint `json:"simx_id" gorm:"unique"` + Simgos_Id uint `json:"simgos_id" gorm:"unique"` +} + +type SubspecialistSimxLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} + +type SubspecialistSimgosLog struct { + ecore.Main + Value *string `json:"value"` + Date *time.Time `json:"date"` + Status erc.ProcessStatusCode `json:"status"` + ErrMessage *string `json:"errMessage"` +} diff --git a/internal/interface/migration/migration.go b/internal/interface/migration/migration.go index 31ec1840..15341164 100644 --- a/internal/interface/migration/migration.go +++ b/internal/interface/migration/migration.go @@ -32,7 +32,7 @@ func getEntities(input string) []any { case "satusehat": return getSatuSehatEntities() case "simgossync": - return getSimgosSyncEntities() + return getSyncEntities() } return nil } diff --git a/internal/interface/migration/simgossync-entities.go b/internal/interface/migration/simgossync-entities.go index d48cf699..efc4cce9 100644 --- a/internal/interface/migration/simgossync-entities.go +++ b/internal/interface/migration/simgossync-entities.go @@ -2,11 +2,14 @@ package migration import ( /************** Source ***************/ + division "simrs-vx/internal/domain/sync-entities/division" installation "simrs-vx/internal/domain/sync-entities/installation" + specialist "simrs-vx/internal/domain/sync-entities/specialist" + subspecialist "simrs-vx/internal/domain/sync-entities/subspecialist" unit "simrs-vx/internal/domain/sync-entities/unit" ) -func getSimgosSyncEntities() []any { +func getSyncEntities() []any { return []any{ &installation.InstallationLink{}, &installation.InstallationSimxLog{}, @@ -14,5 +17,14 @@ func getSimgosSyncEntities() []any { &unit.UnitLink{}, &unit.UnitSimxLog{}, &unit.UnitSimgosLog{}, + &division.DivisionLink{}, + &division.DivisionSimxLog{}, + &division.DivisionSimgosLog{}, + &specialist.SpecialistLink{}, + &specialist.SpecialistSimxLog{}, + &specialist.SpecialistSimgosLog{}, + &subspecialist.SubspecialistLink{}, + &subspecialist.SubspecialistSimxLog{}, + &subspecialist.SubspecialistSimgosLog{}, } }