package user import ( ecore "simrs-vx/internal/domain/base-entities/core" erc "simrs-vx/internal/domain/references/common" "time" ) type CreateDto struct { Name string `json:"name"` Password string `json:"password"` Status_Code erc.StatusCode `json:"status_code"` } type ReadListDto struct { Name string `json:"name"` Status_Code erc.StatusCode `json:"status_code"` Page int `json:"page"` PageSize int `json:"page_size"` NoPagination int `json:"no_pagination"` } type ReadDetailDto struct { Id uint `json:"id"` Name string `json:"name"` } 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 LoginDto struct { Name string `json:"name" validate:"required"` Password string `json:"password" validate:"required"` Duration uint32 `json:"duration"` // in minutes } type ResponseDto struct { ecore.Main Name string `json:"name"` Status_Code erc.StatusCode `json:"status_code"` FailedLoginCount uint8 `json:"failedLoginCount"` LastSuccessLogin *time.Time `json:"lastSuccessLogin,omitempty"` LastAllowdLogin *time.Time `json:"lastAllowdLogin,omitempty"` } func (u *User) ToResponse() ResponseDto { resp := ResponseDto{ Name: u.Name, Status_Code: u.Status_Code, FailedLoginCount: u.FailedLoginCount, LastSuccessLogin: u.LastSuccessLogin, LastAllowdLogin: u.LastAllowdLogin, } resp.Main = u.Main return resp } func ToResponseList(users []User) []ResponseDto { resp := make([]ResponseDto, len(users)) for i, u := range users { resp[i] = u.ToResponse() } return resp }