add table person-relative, add fk personrelative into person
This commit is contained in:
No files matched your search
@@ -0,0 +1,20 @@
|
|||||||
|
-- Create "PersonRelative" table
|
||||||
|
CREATE TABLE "public"."PersonRelative" (
|
||||||
|
"Id" bigserial NOT NULL,
|
||||||
|
"CreatedAt" timestamptz NULL,
|
||||||
|
"UpdatedAt" timestamptz NULL,
|
||||||
|
"DeletedAt" timestamptz NULL,
|
||||||
|
"Person_Id" bigint NULL,
|
||||||
|
"Relationship_Code" character varying(100) NOT NULL,
|
||||||
|
"Name" character varying(100) NULL,
|
||||||
|
"Address" character varying(100) NULL,
|
||||||
|
"Village_Code" character varying(10) NULL,
|
||||||
|
"Gender_Code" character varying(10) NULL,
|
||||||
|
"PhoneNumber" character varying(30) NULL,
|
||||||
|
"Education_Code" character varying(10) NULL,
|
||||||
|
"Occupation_Code" character varying(10) NULL,
|
||||||
|
"Occupation_Name" character varying(50) NULL,
|
||||||
|
PRIMARY KEY ("Id"),
|
||||||
|
CONSTRAINT "fk_PersonRelative_Village" FOREIGN KEY ("Village_Code") REFERENCES "public"."Village" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
|
||||||
|
CONSTRAINT "fk_Person_Relatives" FOREIGN KEY ("Person_Id") REFERENCES "public"."Person" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
|
||||||
|
);
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
h1:1//2fu4kC38Dh7Uay7V1mN3umZje2BP/P7dxjdyRc4c=
|
h1:xLrXCY32L4rM4g9bNhReT/a49v6gwYzJSNnzwSmFFlc=
|
||||||
20250829081952.sql h1:YMsYq3uPsx70EjWSGfYnVRR5GV0q1fRGIszYZAWzXNo=
|
20250829081952.sql h1:YMsYq3uPsx70EjWSGfYnVRR5GV0q1fRGIszYZAWzXNo=
|
||||||
20250901073356.sql h1:jjd5TLs+Pyi0u3SrOM+aNTbHxSJboXgcOz/L4bkYx+c=
|
20250901073356.sql h1:jjd5TLs+Pyi0u3SrOM+aNTbHxSJboXgcOz/L4bkYx+c=
|
||||||
20250901080035.sql h1:LWa3X0NWjalVcxNbk5HaHj1Oqu60/AQabi0jBmCeQBI=
|
20250901080035.sql h1:LWa3X0NWjalVcxNbk5HaHj1Oqu60/AQabi0jBmCeQBI=
|
||||||
20250901105703.sql h1:2h2B/wOFM0826sBXQutTtq24C+5duLqi4zEFOdbPsCI=
|
20250901105703.sql h1:2h2B/wOFM0826sBXQutTtq24C+5duLqi4zEFOdbPsCI=
|
||||||
20250902052320.sql h1:bnTbx2vkZ7jscOdgjL8G1cuKzZ7rMMsR+KawkX8w74g=
|
20250902052320.sql h1:+tWdeS4NorPj5WdKHMirBfP4EeS01wyyfdT03DBMmcI=
|
||||||
|
20250902063217.sql h1:ZDyL6lk12uFmboUCMfRTh5sfQ4wsC3bWSI+vAUFUiAA=
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package personrelative
|
||||||
|
|
||||||
|
import (
|
||||||
|
ecore "simrs-vx/internal/domain/base-entities/core"
|
||||||
|
erp "simrs-vx/internal/domain/references/person"
|
||||||
|
)
|
||||||
|
|
||||||
|
type CreateDto struct {
|
||||||
|
Person_Id uint `json:"person_id"`
|
||||||
|
Type_Code erp.ContactTypeCode `json:"type_code"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ReadListDto struct {
|
||||||
|
Page int `json:"page"`
|
||||||
|
PageSize int `json:"page_size"`
|
||||||
|
NoPagination int `json:"no_pagination"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ReadDetailDto struct {
|
||||||
|
Id uint `json:"id"`
|
||||||
|
Person_Id uint `json:"person_id"`
|
||||||
|
Type_Code erp.ContactTypeCode `json:"type_code"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type UpdateDto struct {
|
||||||
|
Id uint `json:"id"`
|
||||||
|
CreateDto
|
||||||
|
}
|
||||||
|
|
||||||
|
type DeleteDto struct {
|
||||||
|
Id uint `json:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MetaDto struct {
|
||||||
|
PageNumber int `json:"page_number"`
|
||||||
|
PageSize int `json:"page_size"`
|
||||||
|
Count int `json:"count"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResponseDto struct {
|
||||||
|
ecore.Main
|
||||||
|
Person_Id uint `json:"person_id"`
|
||||||
|
Type_Code erp.ContactTypeCode `json:"type_code"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *PersonRelative) ToResponse() ResponseDto {
|
||||||
|
resp := ResponseDto{}
|
||||||
|
resp.Main = d.Main
|
||||||
|
return resp
|
||||||
|
}
|
||||||
|
|
||||||
|
func ToResponseList(data []PersonRelative) []ResponseDto {
|
||||||
|
resp := make([]ResponseDto, len(data))
|
||||||
|
for i, u := range data {
|
||||||
|
resp[i] = u.ToResponse()
|
||||||
|
}
|
||||||
|
return resp
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package personrelative
|
||||||
|
|
||||||
|
import (
|
||||||
|
ecore "simrs-vx/internal/domain/base-entities/core"
|
||||||
|
ev "simrs-vx/internal/domain/main-entities/village"
|
||||||
|
erp "simrs-vx/internal/domain/references/person"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PersonRelative struct {
|
||||||
|
ecore.Main // adjust this according to the needs
|
||||||
|
Person_Id uint `json:"person_id"`
|
||||||
|
Relationship_Code erp.RelationshipCode `json:"relationship_code" gorm:"not null;size:100"`
|
||||||
|
Name *string `json:"name" gorm:"size:100"`
|
||||||
|
Address *string `json:"address" gorm:"size:100"`
|
||||||
|
Village_Code *string `json:"village_code" gorm:"size:10"`
|
||||||
|
Village *ev.Village `json:"village,omitempty" gorm:"foreignKey:Village_Code;references:Code"`
|
||||||
|
Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"`
|
||||||
|
PhoneNumber *string `json:"phoneNumber" gorm:"size:30"`
|
||||||
|
Education_Code *erp.EducationCode `json:"education_code" gorm:"size:10"`
|
||||||
|
Occupation_Code *erp.OcupationCode `json:"occupation_code" gorm:"size:10"`
|
||||||
|
Occupation_Name *string `json:"occupation_name" gorm:"size:50"`
|
||||||
|
}
|
||||||
@@ -6,30 +6,32 @@ import (
|
|||||||
el "simrs-vx/internal/domain/main-entities/language"
|
el "simrs-vx/internal/domain/main-entities/language"
|
||||||
epa "simrs-vx/internal/domain/main-entities/person-address"
|
epa "simrs-vx/internal/domain/main-entities/person-address"
|
||||||
epc "simrs-vx/internal/domain/main-entities/person-contact"
|
epc "simrs-vx/internal/domain/main-entities/person-contact"
|
||||||
|
epr "simrs-vx/internal/domain/main-entities/person-relative"
|
||||||
erp "simrs-vx/internal/domain/references/person"
|
erp "simrs-vx/internal/domain/references/person"
|
||||||
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Person struct {
|
type Person struct {
|
||||||
ecore.Main // adjust this according to the needs
|
ecore.Main // adjust this according to the needs
|
||||||
Name string `json:"name" gorm:"not null;size:150"`
|
Name string `json:"name" gorm:"not null;size:150"`
|
||||||
FrontTitle *string `json:"frontTitle" gorm:"size:50"`
|
FrontTitle *string `json:"frontTitle" gorm:"size:50"`
|
||||||
EndTitle *string `json:"endTitle" gorm:"size:50"`
|
EndTitle *string `json:"endTitle" gorm:"size:50"`
|
||||||
BirthDate *time.Time `json:"birthDate,omitempty"`
|
BirthDate *time.Time `json:"birthDate,omitempty"`
|
||||||
BirthRegency_Code *string `json:"birthRegency_code" gorm:"size:4"`
|
BirthRegency_Code *string `json:"birthRegency_code" gorm:"size:4"`
|
||||||
Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"`
|
Gender_Code *erp.GenderCode `json:"gender_code" gorm:"size:10"`
|
||||||
ResidentIdentityNumber *string `json:"residentIdentityNumber" gorm:"size:16"`
|
ResidentIdentityNumber *string `json:"residentIdentityNumber" gorm:"size:16"`
|
||||||
PassportNumber *string `json:"passportNumber" gorm:"size:20"`
|
PassportNumber *string `json:"passportNumber" gorm:"size:20"`
|
||||||
DrivingLicenseNumber *string `json:"drivingLicenseNumber" gorm:"size:20"`
|
DrivingLicenseNumber *string `json:"drivingLicenseNumber" gorm:"size:20"`
|
||||||
Religion_Code *erp.ReligionCode `json:"religion_code" gorm:"size:10"`
|
Religion_Code *erp.ReligionCode `json:"religion_code" gorm:"size:10"`
|
||||||
Education_Code *erp.EducationCode `json:"education_code" gorm:"size:10"`
|
Education_Code *erp.EducationCode `json:"education_code" gorm:"size:10"`
|
||||||
Ocupation_Code *erp.OcupationCode `json:"occupation_code" gorm:"size:15"`
|
Ocupation_Code *erp.OcupationCode `json:"occupation_code" gorm:"size:15"`
|
||||||
Ocupation_Name *string `json:"occupation_name" gorm:"size:50"`
|
Ocupation_Name *string `json:"occupation_name" gorm:"size:50"`
|
||||||
Ethnic_Code *string `json:"ethnic_code" gorm:"size:20"`
|
Ethnic_Code *string `json:"ethnic_code" gorm:"size:20"`
|
||||||
Ethnic *ee.Ethnic `json:"ethnic,omitempty" gorm:"foreignKey:Ethnic_Code;references:Code"`
|
Ethnic *ee.Ethnic `json:"ethnic,omitempty" gorm:"foreignKey:Ethnic_Code;references:Code"`
|
||||||
Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"`
|
Addresses *[]epa.PersonAddress `json:"addresses" gorm:"foreignKey:Person_Id"`
|
||||||
Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"`
|
Contacts *[]epc.PersonContact `json:"contacts" gorm:"foreignKey:Person_Id"`
|
||||||
Language_Code *string `json:"language_code" gorm:"size:10"`
|
Relatives *[]epr.PersonRelative `json:"relatives" gorm:"foreignKey:Person_Id"`
|
||||||
Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"`
|
Language_Code *string `json:"language_code" gorm:"size:10"`
|
||||||
|
Language *el.Language `json:"language,omitempty" gorm:"foreignKey:Language_Code;references:Code"`
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,7 @@ type (
|
|||||||
AgeGroupForMedicineCode string
|
AgeGroupForMedicineCode string
|
||||||
RelativeCode string
|
RelativeCode string
|
||||||
ContactTypeCode string
|
ContactTypeCode string
|
||||||
|
RelationshipCode string
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -18,9 +19,7 @@ const (
|
|||||||
GCFemale GenderCode = "female"
|
GCFemale GenderCode = "female"
|
||||||
GCNotStated GenderCode = "not-stated"
|
GCNotStated GenderCode = "not-stated"
|
||||||
GCUnknown GenderCode = "unknown"
|
GCUnknown GenderCode = "unknown"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
BTCAPositive BloodTypeCode = "A+"
|
BTCAPositive BloodTypeCode = "A+"
|
||||||
BTCANegative BloodTypeCode = "A-"
|
BTCANegative BloodTypeCode = "A-"
|
||||||
BTCBPositive BloodTypeCode = "B+"
|
BTCBPositive BloodTypeCode = "B+"
|
||||||
@@ -29,25 +28,19 @@ const (
|
|||||||
BTCABNegative BloodTypeCode = "AB-"
|
BTCABNegative BloodTypeCode = "AB-"
|
||||||
BTCOPositive BloodTypeCode = "O+"
|
BTCOPositive BloodTypeCode = "O+"
|
||||||
BTCONegative BloodTypeCode = "O-"
|
BTCONegative BloodTypeCode = "O-"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
MSCBelumKawin MaritalStatusCode = "S"
|
MSCBelumKawin MaritalStatusCode = "S"
|
||||||
MSCKawin MaritalStatusCode = "M"
|
MSCKawin MaritalStatusCode = "M"
|
||||||
MSCCeraiHidup MaritalStatusCode = "D"
|
MSCCeraiHidup MaritalStatusCode = "D"
|
||||||
MSCCeraiMati MaritalStatusCode = "W"
|
MSCCeraiMati MaritalStatusCode = "W"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
RCIslam ReligionCode = "islam"
|
RCIslam ReligionCode = "islam"
|
||||||
RCProtestan ReligionCode = "protestan"
|
RCProtestan ReligionCode = "protestan"
|
||||||
RCKatolik ReligionCode = "katolik"
|
RCKatolik ReligionCode = "katolik"
|
||||||
RCHindu ReligionCode = "hindu"
|
RCHindu ReligionCode = "hindu"
|
||||||
RCBudha ReligionCode = "budha"
|
RCBudha ReligionCode = "budha"
|
||||||
RCKonghucu ReligionCode = "konghucu"
|
RCKonghucu ReligionCode = "konghucu"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
ECTS EducationCode = "TS"
|
ECTS EducationCode = "TS"
|
||||||
ECTK EducationCode = "TK"
|
ECTK EducationCode = "TK"
|
||||||
ECSD EducationCode = "SD"
|
ECSD EducationCode = "SD"
|
||||||
@@ -60,9 +53,7 @@ const (
|
|||||||
ECS1 EducationCode = "S1"
|
ECS1 EducationCode = "S1"
|
||||||
ECS2 EducationCode = "S2"
|
ECS2 EducationCode = "S2"
|
||||||
ECS3 EducationCode = "S3"
|
ECS3 EducationCode = "S3"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
OCTidakBekerja OcupationCode = "tidak-bekerja"
|
OCTidakBekerja OcupationCode = "tidak-bekerja"
|
||||||
OCPns OcupationCode = "pns"
|
OCPns OcupationCode = "pns"
|
||||||
OCTniPolisi OcupationCode = "polisi"
|
OCTniPolisi OcupationCode = "polisi"
|
||||||
@@ -71,9 +62,7 @@ const (
|
|||||||
OCWiraswasta OcupationCode = "wiraswasta"
|
OCWiraswasta OcupationCode = "wiraswasta"
|
||||||
OCKarySwasta OcupationCode = "kary-swasta"
|
OCKarySwasta OcupationCode = "kary-swasta"
|
||||||
OCLainlain OcupationCode = "lainnya"
|
OCLainlain OcupationCode = "lainnya"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
AGCEUnknown AgeGroupCode = "unkown"
|
AGCEUnknown AgeGroupCode = "unkown"
|
||||||
AGCLTE5 AgeGroupCode = "LT5"
|
AGCLTE5 AgeGroupCode = "LT5"
|
||||||
AGCEU19 AgeGroupCode = "UE19"
|
AGCEU19 AgeGroupCode = "UE19"
|
||||||
@@ -82,17 +71,13 @@ const (
|
|||||||
AGCEU49 AgeGroupCode = "UE49"
|
AGCEU49 AgeGroupCode = "UE49"
|
||||||
AGCEU59 AgeGroupCode = "UE50"
|
AGCEU59 AgeGroupCode = "UE50"
|
||||||
AGCGE60 AgeGroupCode = "E60"
|
AGCGE60 AgeGroupCode = "E60"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
AGMCNew AgeGroupForMedicineCode = "new-born"
|
AGMCNew AgeGroupForMedicineCode = "new-born"
|
||||||
AGMCInfant AgeGroupForMedicineCode = "infant"
|
AGMCInfant AgeGroupForMedicineCode = "infant"
|
||||||
AGMCToddler AgeGroupForMedicineCode = "toddler"
|
AGMCToddler AgeGroupForMedicineCode = "toddler"
|
||||||
AGMCKid AgeGroupForMedicineCode = "kid"
|
AGMCKid AgeGroupForMedicineCode = "kid"
|
||||||
AGMCAdult AgeGroupForMedicineCode = "adult"
|
AGMCAdult AgeGroupForMedicineCode = "adult"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
RCMSuami RelativeCode = "suami"
|
RCMSuami RelativeCode = "suami"
|
||||||
RCMIstri RelativeCode = "istri"
|
RCMIstri RelativeCode = "istri"
|
||||||
RCMAnak RelativeCode = "anak"
|
RCMAnak RelativeCode = "anak"
|
||||||
@@ -107,13 +92,23 @@ const (
|
|||||||
RCMBibi RelativeCode = "bibi"
|
RCMBibi RelativeCode = "bibi"
|
||||||
RCMPamanKakek RelativeCode = "kakek"
|
RCMPamanKakek RelativeCode = "kakek"
|
||||||
RCMPamanNenek RelativeCode = "nenek"
|
RCMPamanNenek RelativeCode = "nenek"
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
CTPhone ContactTypeCode = "phone"
|
CTPhone ContactTypeCode = "phone"
|
||||||
CTMPhone ContactTypeCode = "m-phone"
|
CTMPhone ContactTypeCode = "m-phone"
|
||||||
CTEmail ContactTypeCode = "email"
|
CTEmail ContactTypeCode = "email"
|
||||||
CTFax ContactTypeCode = "fax"
|
CTFax ContactTypeCode = "fax"
|
||||||
|
|
||||||
|
RCMother RelationshipCode = "mother" // Ibu
|
||||||
|
RCFather RelationshipCode = "father" // Ayah
|
||||||
|
RCUncle RelationshipCode = "uncle" // Paman
|
||||||
|
RCAunt RelationshipCode = "aunt" // Bibi
|
||||||
|
RCSibling RelationshipCode = "sibling" // Saudara
|
||||||
|
RCGdMother RelationshipCode = "gd-mother" // Nenek
|
||||||
|
RCGdFather RelationshipCode = "gd-father" // Kakek
|
||||||
|
RCChild RelationshipCode = "child" // Anak
|
||||||
|
RCNephew RelationshipCode = "nephew" // Keponakan
|
||||||
|
RCGdChild RelationshipCode = "gd-child" // Cucu
|
||||||
|
RCOther RelationshipCode = "other" // Lainnya
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetGenderCodes() map[GenderCode]string {
|
func GetGenderCodes() map[GenderCode]string {
|
||||||
@@ -239,6 +234,22 @@ func GetContactTypeCodes() map[ContactTypeCode]string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetRelationshipCodes() map[RelationshipCode]string {
|
||||||
|
return map[RelationshipCode]string{
|
||||||
|
RCMother: "Ibu",
|
||||||
|
RCFather: "Ayah",
|
||||||
|
RCUncle: "Paman",
|
||||||
|
RCAunt: "Bibi",
|
||||||
|
RCSibling: "Saudara",
|
||||||
|
RCGdMother: "Nenek",
|
||||||
|
RCGdFather: "Kakek",
|
||||||
|
RCChild: "Anak",
|
||||||
|
RCNephew: "Keponakan",
|
||||||
|
RCGdChild: "Cucu",
|
||||||
|
RCOther: "Lainnya",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (obj GenderCode) String() string {
|
func (obj GenderCode) String() string {
|
||||||
return GetGenderCodes()[obj]
|
return GetGenderCodes()[obj]
|
||||||
}
|
}
|
||||||
@@ -273,3 +284,7 @@ func (obj RelativeCode) String() string {
|
|||||||
func (obj ContactTypeCode) String() string {
|
func (obj ContactTypeCode) String() string {
|
||||||
return GetContactTypeCodes()[obj]
|
return GetContactTypeCodes()[obj]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (obj RelationshipCode) String() string {
|
||||||
|
return GetRelationshipCodes()[obj]
|
||||||
|
}
|
||||||
@@ -36,6 +36,7 @@ import (
|
|||||||
person "simrs-vx/internal/domain/main-entities/person"
|
person "simrs-vx/internal/domain/main-entities/person"
|
||||||
personaddress "simrs-vx/internal/domain/main-entities/person-address"
|
personaddress "simrs-vx/internal/domain/main-entities/person-address"
|
||||||
personcontact "simrs-vx/internal/domain/main-entities/person-contact"
|
personcontact "simrs-vx/internal/domain/main-entities/person-contact"
|
||||||
|
personrelative "simrs-vx/internal/domain/main-entities/person-relative"
|
||||||
pharmacist "simrs-vx/internal/domain/main-entities/pharmacist"
|
pharmacist "simrs-vx/internal/domain/main-entities/pharmacist"
|
||||||
pharmacycompany "simrs-vx/internal/domain/main-entities/pharmacy-company"
|
pharmacycompany "simrs-vx/internal/domain/main-entities/pharmacy-company"
|
||||||
practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule"
|
practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule"
|
||||||
@@ -121,6 +122,7 @@ func GetEntities() []any {
|
|||||||
&device.Device{},
|
&device.Device{},
|
||||||
&doctorfee.DoctorFee{},
|
&doctorfee.DoctorFee{},
|
||||||
&language.Language{},
|
&language.Language{},
|
||||||
|
&personrelative.PersonRelative{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user