UPDATE: Project Module
All checks were successful
Build and Release / release (push) Successful in 1m15s

This commit is contained in:
2026-04-25 14:05:15 +07:00
parent 44a63f29c6
commit ac90236022
71 changed files with 5110 additions and 257 deletions

View File

@@ -0,0 +1,30 @@
package request
import "time"
type SearchProjectDto struct {
PaginationDto
Sort string `json:"sort" query:"sort" validate:"omitempty,oneof=created_at updated_at title"`
Search string `json:"search" query:"search" validate:"omitempty,max=200"`
UserIDs []string `json:"user_ids" query:"user_ids" validate:"omitempty,dive,uuid"`
Statuses []string `json:"statuses" query:"statuses" validate:"omitempty,dive,oneof=PRIVATE PUBLIC ARCHIVE"`
CreatedFrom *time.Time `json:"created_from" query:"created_from"`
CreatedTo *time.Time `json:"created_to" query:"created_to"`
}
type GetProjectsByUserDto struct {
CursorID string `json:"cursor_id" query:"cursor_id" validate:"omitempty,uuid"`
Limit int32 `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"`
}
type CreateProjectDto struct {
Title string `json:"title" validate:"required,max=255"`
Description *string `json:"description" validate:"omitempty"`
Status *string `json:"status" validate:"omitempty,oneof=PRIVATE PUBLIC ARCHIVE"`
}
type UpdateProjectDto struct {
Title *string `json:"title" validate:"omitempty,max=255"`
Description *string `json:"description" validate:"omitempty"`
Status *string `json:"status" validate:"omitempty,oneof=PRIVATE PUBLIC ARCHIVE"`
}

View File

@@ -15,7 +15,7 @@ type CommonResponse struct {
type JWTClaims struct {
UId string `json:"uid"`
Roles []constants.Role `json:"roles"`
Roles []constants.RoleType `json:"roles"`
TokenVersion int32 `json:"token_version"`
jwt.RegisteredClaims
}

View File

@@ -0,0 +1,20 @@
package response
import "time"
type ProjectResponse struct {
ID string `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
LatestRevisionID *string `json:"latest_revision_id,omitempty"`
VersionCount int32 `json:"version_count"`
ProjectStatus string `json:"project_status"`
LockedBy *string `json:"locked_by,omitempty"`
IsDeleted bool `json:"is_deleted"`
UserID string `json:"user_id"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
User *UserSimpleResponse `json:"user,omitempty"`
CommitIds []string `json:"commit_ids"`
SubmissionIds []string `json:"submission_ids"`
}