feat/sso-auth: added models

This commit is contained in:
2025-11-06 16:02:44 +07:00
parent 559ea8b18e
commit a73d7745e3
4 changed files with 166 additions and 0 deletions
@@ -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
}
@@ -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"`
}
@@ -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
}
@@ -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"`
}