feat(BE-116): add project chick in database schema

This commit is contained in:
aguhh18
2025-10-18 16:30:13 +07:00
parent a45c20d2ff
commit 68a670a2bd
13 changed files with 568 additions and 9 deletions
@@ -0,0 +1,84 @@
package dto
import (
"time"
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
userDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/users/dto"
)
// === DTO Structs ===
type ChickinBaseDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
}
type ChickinSimpleDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
}
type ChickinListDTO struct {
ChickinBaseDTO
CreatedUser *userDTO.UserBaseDTO `json:"created_user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type ChickinDetailDTO struct {
ChickinListDTO
}
// === Mapper Functions ===
func ToChickinBaseDTO(e entity.ProjectChickin) ChickinBaseDTO {
return ChickinBaseDTO{
Id: e.Id,
}
}
func ToChickinSimpleDTO(e entity.ProjectChickin) ChickinSimpleDTO {
return ChickinSimpleDTO{
Id: e.Id,
}
}
func ToChickinListDTO(e entity.ProjectChickin) ChickinListDTO {
var createdUser *userDTO.UserBaseDTO
if e.CreatedUser.Id != 0 {
mapped := userDTO.ToUserBaseDTO(e.CreatedUser)
createdUser = &mapped
}
return ChickinListDTO{
ChickinBaseDTO: ToChickinBaseDTO(e),
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
CreatedUser: createdUser,
}
}
func ToChickinListDTOs(e []entity.ProjectChickin) []ChickinListDTO {
result := make([]ChickinListDTO, len(e))
for i, r := range e {
result[i] = ToChickinListDTO(r)
}
return result
}
func ToChickinSimpleDTOs(e []entity.ProjectChickin) []ChickinSimpleDTO {
result := make([]ChickinSimpleDTO, len(e))
for i, r := range e {
result[i] = ToChickinSimpleDTO(r)
}
return result
}
func ToChickinDetailDTO(e entity.ProjectChickin) ChickinDetailDTO {
return ChickinDetailDTO{
ChickinListDTO: ToChickinListDTO(e),
}
}