Merge pull request #61 from dikstub-rssa/fix/anything-moko

Fix/anything moko
This commit is contained in:
Dwi Atmoko Purbo Sakti
2025-10-10 10:48:09 +07:00
committed by GitHub
8 changed files with 57 additions and 35 deletions
@@ -0,0 +1,6 @@
-- Modify "Person" table
ALTER TABLE "public"."Person" ADD CONSTRAINT "fk_Person_BirthRegency" FOREIGN KEY ("BirthRegency_Code") REFERENCES "public"."Regency" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION;
-- Rename a column from "PostalCode" to "PostalCode_Code"
ALTER TABLE "public"."PersonAddress" RENAME COLUMN "PostalCode" TO "PostalCode_Code";
-- Modify "PersonAddress" table
ALTER TABLE "public"."PersonAddress" ADD CONSTRAINT "fk_PersonAddress_PostalCode" FOREIGN KEY ("PostalCode_Code") REFERENCES "public"."PostalCode" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION;
+4 -3
View File
@@ -1,4 +1,4 @@
h1:TrdoKKXrICvDA283WGDf33WtWHglk1twvjDpYrNwc8o=
h1:tvJWAAI1ENRhCwoYTUekIO7b9RxtkQllUFwCYQ/S17w=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -32,5 +32,6 @@ h1:TrdoKKXrICvDA283WGDf33WtWHglk1twvjDpYrNwc8o=
20251008031554.sql h1:AqrVfIhSzY3PCy8ZlP5W91wn2iznfIuj5qQfubp6/94=
20251008052346.sql h1:nxnXmooIJ6r1mmzwnw+6efxLfc/k9h2aE6RMptPRons=
20251008073620.sql h1:6YsJp1W4SmQJ1lxpqF27BBlDC1zqhw7Yhc7pLzQTY6M=
20251009042854.sql h1:vK7bDqUDTxjHMSh1wrQiKITeqbB/7aqkWaPut8nGA68=
20251009052657.sql h1:I0rBPBg1o6zuRaxqWqCh82rI+NN7Gr6C//8ItUaLmtY=
20251009042854.sql h1:nkBV+R6j0fg7/JY6wH3eb5Vv0asJLnXmb6lINfT/GLQ=
20251009052657.sql h1:EPvdsib5rzCGPryd10HShGKvFPwM/R5S2lIVwtYxpms=
20251010031743.sql h1:XGl/0//kV22jCXS+k+qZASm/zN6uapZjOCPBAGg7+yo=
@@ -2,15 +2,16 @@ package personaddress
import (
ecore "simrs-vx/internal/domain/base-entities/core"
epc "simrs-vx/internal/domain/main-entities/postal-code"
)
type CreateDto struct {
Person_Id uint `json:"person_id"`
Address string `json:"address" validate:"maxLength=150"`
Rt string `json:"rt" validate:"maxLength=2"`
Rw string `json:"rw" validate:"maxLength=2"`
Village_Code string `json:"village_code" validate:"maxLength=10"`
PostalCode string `json:"postalCode" validate:"maxLength=6"`
Person_Id uint `json:"person_id"`
Address string `json:"address" validate:"maxLength=150"`
Rt string `json:"rt" validate:"maxLength=2"`
Rw string `json:"rw" validate:"maxLength=2"`
Village_Code string `json:"village_code" validate:"maxLength=10"`
PostalCode_Code string `json:"postalCode_code" validate:"maxLength=6"`
}
type ReadListDto struct {
@@ -39,22 +40,24 @@ type MetaDto struct {
type ResponseDto struct {
ecore.Main
Person_Id uint `json:"person_id"`
Address string `json:"address"`
Rt string `json:"rt"`
Rw string `json:"rw"`
Village_Code string `json:"village_code"`
PostalCode string `json:"postalCode"`
Person_Id uint `json:"person_id"`
Address string `json:"address"`
Rt string `json:"rt"`
Rw string `json:"rw"`
Village_Code string `json:"village_code"`
PostalCode_Code string `json:"postalCode_code"`
PostalCode *epc.PostalCode `json:"postalCode,omitempty"`
}
func (d PersonAddress) ToResponse() ResponseDto {
resp := ResponseDto{
Person_Id: d.Person_Id,
Address: d.Address,
Rt: d.Rt,
Rw: d.Rw,
Village_Code: d.Village_Code,
PostalCode: d.PostalCode,
Person_Id: d.Person_Id,
Address: d.Address,
Rt: d.Rt,
Rw: d.Rw,
Village_Code: d.Village_Code,
PostalCode_Code: d.PostalCode_Code,
PostalCode: d.PostalCode,
}
resp.Main = d.Main
return resp
@@ -2,14 +2,16 @@ package personaddress
import (
ecore "simrs-vx/internal/domain/base-entities/core"
epc "simrs-vx/internal/domain/main-entities/postal-code"
)
type PersonAddress struct {
ecore.Main // adjust this according to the needs
Person_Id uint `json:"person_id"`
Address string `json:"address" gorm:"size:150"`
Rt string `json:"rt" gorm:"size:2"`
Rw string `json:"rw" gorm:"size:2"`
PostalCode string `json:"postalCode" gorm:"size:6"`
Village_Code string `json:"village_code" gorm:"size:10"`
ecore.Main // adjust this according to the needs
Person_Id uint `json:"person_id"`
Address string `json:"address" gorm:"size:150"`
Rt string `json:"rt" gorm:"size:2"`
Rw string `json:"rw" gorm:"size:2"`
PostalCode_Code string `json:"postalCode_code" gorm:"size:6"`
PostalCode *epc.PostalCode `json:"postalCode,omitempty" gorm:"foreignKey:PostalCode_Code;references:Code"`
Village_Code string `json:"village_code" gorm:"size:10"`
}
@@ -8,6 +8,7 @@ import (
epa "simrs-vx/internal/domain/main-entities/person-address"
epc "simrs-vx/internal/domain/main-entities/person-contact"
epr "simrs-vx/internal/domain/main-entities/person-relative"
er "simrs-vx/internal/domain/main-entities/regency"
erp "simrs-vx/internal/domain/references/person"
)
@@ -91,6 +92,7 @@ type ResponseDto struct {
EndTitle *string `json:"endTitle"`
BirthDate *time.Time `json:"birthDate,omitempty"`
BirthRegency_Code *string `json:"birthRegency_code"`
BirthRegency *er.Regency `json:"birthRegency,omitempty"`
Gender_Code *erp.GenderCode `json:"gender_code"`
ResidentIdentityNumber *string `json:"residentIdentityNumber"`
PassportNumber *string `json:"passportNumber"`
@@ -121,6 +123,7 @@ func (d *Person) ToResponse() ResponseDto {
EndTitle: d.EndTitle,
BirthDate: d.BirthDate,
BirthRegency_Code: d.BirthRegency_Code,
BirthRegency: d.BirthRegency,
Gender_Code: d.Gender_Code,
ResidentIdentityNumber: d.ResidentIdentityNumber,
PassportNumber: d.PassportNumber,
@@ -7,6 +7,8 @@ import (
epa "simrs-vx/internal/domain/main-entities/person-address"
epc "simrs-vx/internal/domain/main-entities/person-contact"
epr "simrs-vx/internal/domain/main-entities/person-relative"
er "simrs-vx/internal/domain/main-entities/regency"
erp "simrs-vx/internal/domain/references/person"
"time"
@@ -19,6 +21,7 @@ type Person struct {
EndTitle *string `json:"endTitle" gorm:"size:50"`
BirthDate *time.Time `json:"birthDate,omitempty"`
BirthRegency_Code *string `json:"birthRegency_code" gorm:"size:4"`
BirthRegency *er.Regency `json:"birthRegency,omitempty" gorm:"foreignKey:BirthRegency_Code;references:Code"`
Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"`
ResidentIdentityNumber *string `json:"residentIdentityNumber" gorm:"unique;size:16"`
PassportNumber *string `json:"passportNumber" gorm:"unique;size:20"`
@@ -30,9 +33,6 @@ type Person struct {
Nationality *string `json:"nationality": gorm:"size:50"`
Ethnic_Code *string `json:"ethnic_code" gorm:"size:20"`
Ethnic *ee.Ethnic `json:"ethnic,omitempty" gorm:"foreignKey:Ethnic_Code;references:Code"`
Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"`
Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"`
Relatives *[]epr.PersonRelative `json:"relatives" gorm:"foreignKey:Person_Id"`
Language_Code *string `json:"language_code" gorm:"size:10"`
Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"`
CommunicationIssueStatus bool `json:"communicationIssueStatus"`
@@ -41,6 +41,9 @@ type Person struct {
PassportFileUrl *string `json:"passportFileUrl" gorm:"size:1024"`
DrivingLicenseFileUrl *string `json:"drivingLicenseFileUrl" gorm:"size:1024"`
FamilyIdentityFileUrl *string `json:"familyIdentityFileUrl" gorm:"size:1024"`
Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"`
Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"`
Relatives *[]epr.PersonRelative `json:"relatives" gorm:"foreignKey:Person_Id"`
}
func (d Person) IsSameResidentIdentityNumber(input *string) bool {
@@ -96,9 +96,13 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
}
tx = tx.Preload(clause.Associations)
tx = tx.Preload("Person.Addresses")
tx = tx.Preload("Person.Contacts")
tx = tx.Preload("Person.Relatives")
tx = tx.Preload("Person.BirthRegency.Province").
Preload("Person.Ethnic").
Preload("Person.Language").
Preload("Person.Contacts").
Preload("Person.Relatives.Village.District.Regency.Province").
Preload("Person.Addresses").
Preload("Person.Addresses.PostalCode.Village.District.Regency.Province")
if err := tx.First(&data, input.Id).Error; err != nil {
if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil {
@@ -22,5 +22,5 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.PersonAddress) {
data.Rt = inputSrc.Rt
data.Rw = inputSrc.Rw
data.Village_Code = inputSrc.Village_Code
data.PostalCode = inputSrc.PostalCode
data.PostalCode_Code = inputSrc.PostalCode_Code
}