diff --git a/internal/domain/main-entities/auth-partner/dto.go b/internal/domain/main-entities/auth-partner/dto.go new file mode 100644 index 00000000..651ca4b7 --- /dev/null +++ b/internal/domain/main-entities/auth-partner/dto.go @@ -0,0 +1,67 @@ +package authpartner + +import ( + // internal - domain - main-entities + ecore "simrs-vx/internal/domain/base-entities/core" +) + +type CreateDto struct { + Code string `json:"code"` + Name string `json:"name"` + SecretKey string `json:"secretKey"` +} + +type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Pagination ecore.Pagination +} + +type FilterDto struct { + Code *string `json:"code"` + Name *string `json:"name"` +} + +type ReadDetailDto struct { + Id uint16 `json:"id"` +} + +type UpdateDto struct { + Id uint16 `json:"id"` + CreateDto +} + +type DeleteDto struct { + Id uint16 `json:"id"` +} + +type MetaDto struct { + PageNumber int `json:"page_number"` + PageSize int `json:"page_size"` + Count int `json:"count"` +} + +type ResponseDto struct { + ecore.Main + Code string `json:"code"` + Name string `json:"name"` + SecretKey string `json:"secretKey"` +} + +func (d AuthPartner) ToResponse() ResponseDto { + resp := ResponseDto{ + Code: d.Code, + Name: d.Name, + SecretKey: d.SecretKey, + } + resp.Main = d.Main + return resp +} + +func ToResponseList(data []AuthPartner) []ResponseDto { + resp := make([]ResponseDto, len(data)) + for i, u := range data { + resp[i] = u.ToResponse() + } + return resp +} diff --git a/internal/domain/main-entities/auth-partner/entity.go b/internal/domain/main-entities/auth-partner/entity.go new file mode 100644 index 00000000..3a8cf4e6 --- /dev/null +++ b/internal/domain/main-entities/auth-partner/entity.go @@ -0,0 +1,12 @@ +package authpartner + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" +) + +type AuthPartner struct { + ecore.Main // adjust this according to the needs + Code string `json:"code" gorm:"size:50"` + Name string `json:"name" gorm:"size:100"` + SecretKey string `json:"secretKey" gorm:"size:255"` +} diff --git a/internal/domain/main-entities/ext-user/dto.go b/internal/domain/main-entities/ext-user/dto.go new file mode 100644 index 00000000..4b434c55 --- /dev/null +++ b/internal/domain/main-entities/ext-user/dto.go @@ -0,0 +1,71 @@ +package extuser + +import ( + // internal - domain - main-entities + ecore "simrs-vx/internal/domain/base-entities/core" + eap "simrs-vx/internal/domain/main-entities/auth-partner" +) + +type CreateDto struct { + Name string `json:"name"` + AuthPartner_Code string `json:"authPartner_code"` + User_Name string `json:"user_name"` +} + +type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Pagination ecore.Pagination +} + +type FilterDto struct { + Name *string `json:"name"` + AuthPartner_Code *string `json:"authPartner_code"` + User_Name *string `json:"user_name"` +} + +type ReadDetailDto struct { + Id uint `json:"id"` +} + +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 + Name string `json:"name"` + AuthPartner_Code string `json:"authPartner_code"` + AuthPartner *eap.AuthPartner `json:"authPartner,omitempty"` + User_Name string `json:"user_name"` +} + +func (d ExtUser) ToResponse() ResponseDto { + resp := ResponseDto{ + Name: d.Name, + AuthPartner_Code: d.AuthPartner_Code, + AuthPartner: d.AuthPartner, + User_Name: d.User_Name, + } + resp.Main = d.Main + return resp +} + +func ToResponseList(data []ExtUser) []ResponseDto { + resp := make([]ResponseDto, len(data)) + for i, u := range data { + resp[i] = u.ToResponse() + } + return resp +} \ No newline at end of file diff --git a/internal/domain/main-entities/ext-user/entity.go b/internal/domain/main-entities/ext-user/entity.go new file mode 100644 index 00000000..ae293667 --- /dev/null +++ b/internal/domain/main-entities/ext-user/entity.go @@ -0,0 +1,16 @@ +package extuser + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + eap "simrs-vx/internal/domain/main-entities/auth-partner" + eau "simrs-vx/internal/domain/main-entities/user" +) + +type ExtUser struct { + ecore.Main // adjust this according to the needs + Name string `json:"name" gorm:"size:100"` + AuthPartner_Code string `json:"authPartner_code" gorm:"size:30"` + AuthPartner *eap.AuthPartner `json:"authPartner,omitempty" gorm:"foreignKey:AuthPartner_Code;references:Code"` + User_Name string `json:"user_name" gorm:"size:50"` + User *eau.User `json:"user,omitempty" gorm:"foreignKey:User_Name;references:Name"` +}