You've already forked agentic-coding-workflow
71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
// dto.go defines the HTTP request/response shapes for the change-request module.
|
|
package changerequest
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// ===== request DTO =====
|
|
|
|
type createReq struct {
|
|
SourceBranch string `json:"source_branch"`
|
|
TargetBranch string `json:"target_branch"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
RequirementID *uuid.UUID `json:"requirement_id"`
|
|
IssueID *uuid.UUID `json:"issue_id"`
|
|
}
|
|
|
|
type reviewReq struct {
|
|
Verdict string `json:"verdict"`
|
|
Note string `json:"note"`
|
|
}
|
|
|
|
type mergeReq struct {
|
|
Method string `json:"method"`
|
|
}
|
|
|
|
// ===== response DTO =====
|
|
|
|
type changeRequestResp struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
WorkspaceID uuid.UUID `json:"workspace_id"`
|
|
RequirementID *uuid.UUID `json:"requirement_id"`
|
|
IssueID *uuid.UUID `json:"issue_id"`
|
|
Number int `json:"number"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
SourceBranch string `json:"source_branch"`
|
|
TargetBranch string `json:"target_branch"`
|
|
State string `json:"state"`
|
|
ReviewVerdict string `json:"review_verdict"`
|
|
CIState string `json:"ci_state"`
|
|
Provider string `json:"provider"`
|
|
ExternalID *int64 `json:"external_id"`
|
|
ExternalURL string `json:"external_url"`
|
|
MergeCommitSHA string `json:"merge_commit_sha"`
|
|
ReviewedBy *uuid.UUID `json:"reviewed_by"`
|
|
ReviewedAt *time.Time `json:"reviewed_at"`
|
|
CreatedBy uuid.UUID `json:"created_by"`
|
|
MergedAt *time.Time `json:"merged_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func toResp(cr *ChangeRequest) changeRequestResp {
|
|
return changeRequestResp{
|
|
ID: cr.ID, ProjectID: cr.ProjectID, WorkspaceID: cr.WorkspaceID,
|
|
RequirementID: cr.RequirementID, IssueID: cr.IssueID, Number: cr.Number,
|
|
Title: cr.Title, Description: cr.Description,
|
|
SourceBranch: cr.SourceBranch, TargetBranch: cr.TargetBranch,
|
|
State: string(cr.State), ReviewVerdict: string(cr.ReviewVerdict),
|
|
CIState: string(cr.CIState), Provider: cr.Provider,
|
|
ExternalID: cr.ExternalID, ExternalURL: cr.ExternalURL, MergeCommitSHA: cr.MergeCommitSHA,
|
|
ReviewedBy: cr.ReviewedBy, ReviewedAt: cr.ReviewedAt, CreatedBy: cr.CreatedBy,
|
|
MergedAt: cr.MergedAt, CreatedAt: cr.CreatedAt, UpdatedAt: cr.UpdatedAt,
|
|
}
|
|
}
|