Files
History_Api/pkg/models/role.go
2026-03-25 22:29:43 +07:00

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
}