55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package models
|
|
|
|
import (
|
|
"history-api/pkg/dtos/response"
|
|
"history-api/pkg/convert"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
type RoleSimple struct {
|
|
ID pgtype.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
func (r *RoleSimple) ToResponse() *response.RoleSimpleResponse {
|
|
return &response.RoleSimpleResponse{
|
|
ID: convert.UUIDToString(r.ID),
|
|
Name: r.Name,
|
|
}
|
|
}
|
|
|
|
func RolesToResponse(rs []*RoleSimple) []*response.RoleSimpleResponse {
|
|
out := make([]*response.RoleSimpleResponse, len(rs))
|
|
for i := range rs {
|
|
out[i] = rs[i].ToResponse()
|
|
}
|
|
return out
|
|
}
|
|
|
|
type RoleEntity struct {
|
|
ID pgtype.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
IsDeleted pgtype.Bool `json:"is_deleted"`
|
|
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
|
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
|
}
|
|
|
|
func (r *RoleEntity) ToResponse() *response.RoleResponse {
|
|
return &response.RoleResponse{
|
|
ID: convert.UUIDToString(r.ID),
|
|
Name: r.Name,
|
|
IsDeleted: convert.BoolVal(r.IsDeleted),
|
|
CreatedAt: convert.TimeToPtr(r.CreatedAt),
|
|
UpdatedAt: convert.TimeToPtr(r.UpdatedAt),
|
|
}
|
|
}
|
|
|
|
func RolesEntityToResponse(rs []*RoleEntity) []*response.RoleResponse {
|
|
out := make([]*response.RoleResponse, len(rs))
|
|
for i := range rs {
|
|
out[i] = rs[i].ToResponse()
|
|
}
|
|
return out
|
|
}
|