To gitea and beyond, let's go(-yco)

This commit is contained in:
2025-11-10 19:12:09 +01:00
parent 8f6133392d
commit 71a031342b
245 changed files with 83994 additions and 0 deletions

76
internal/dto/user.go Normal file
View File

@@ -0,0 +1,76 @@
package dto
import (
"time"
"goyco/internal/database"
)
type UserDTO struct {
ID uint `json:"id"`
Username string `json:"username"`
Email string `json:"email,omitempty"`
EmailVerified bool `json:"email_verified,omitempty"`
EmailVerifiedAt *time.Time `json:"email_verified_at,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type UserListDTO struct {
Users []UserDTO `json:"users"`
Count int `json:"count"`
Limit int `json:"limit"`
Offset int `json:"offset"`
}
func ToUserDTO(user *database.User) UserDTO {
if user == nil {
return UserDTO{}
}
return UserDTO{
ID: user.ID,
Username: user.Username,
Email: user.Email,
EmailVerified: user.EmailVerified,
EmailVerifiedAt: user.EmailVerifiedAt,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
}
}
func ToUserDTOs(users []database.User) []UserDTO {
dtos := make([]UserDTO, len(users))
for i := range users {
dtos[i] = ToUserDTO(&users[i])
}
return dtos
}
type SanitizedUserDTO struct {
ID uint `json:"id"`
Username string `json:"username"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func ToSanitizedUserDTO(user *database.User) SanitizedUserDTO {
if user == nil {
return SanitizedUserDTO{}
}
return SanitizedUserDTO{
ID: user.ID,
Username: user.Username,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
}
}
func ToSanitizedUserDTOs(users []database.User) []SanitizedUserDTO {
dtos := make([]SanitizedUserDTO, len(users))
for i := range users {
dtos[i] = ToSanitizedUserDTO(&users[i])
}
return dtos
}