refactor for separation of concern for better readabiliy and maintainability

This commit is contained in:
Robin Olsen
2026-03-03 11:41:07 +01:00
parent e8d9f9d1b6
commit 763f079063
11 changed files with 530 additions and 471 deletions

View File

@@ -0,0 +1,64 @@
package models
type IssueBuilder struct {
ID string
Title string
Description string
Status Status
IssueType IssueType
Priority int
}
func NewIssueBuilder() *IssueBuilder {
return &IssueBuilder{}
}
func NewBaseIssue() *IssueBuilder {
return NewIssueBuilder().
WithTitle("Basic Issue").
WithDescription("Basic Description").
WithStatus(StatusOpen).
WithIssueType(TypeTask)
}
func (b *IssueBuilder) WithID(id string) *IssueBuilder {
b.ID = id
return b
}
func (b *IssueBuilder) WithTitle(title string) *IssueBuilder {
b.Title = title
return b
}
func (b *IssueBuilder) WithDescription(description string) *IssueBuilder {
b.Description = description
return b
}
func (b *IssueBuilder) WithStatus(status Status) *IssueBuilder {
b.Status = status
return b
}
func (b *IssueBuilder) WithIssueType(issueType IssueType) *IssueBuilder {
b.IssueType = issueType
return b
}
func (b *IssueBuilder) WithPriority(priority int) *IssueBuilder {
b.Priority = priority
return b
}
func (b IssueBuilder) Build() *Issue {
return &Issue{
ID: b.ID,
Title: b.Title,
Description: b.Description,
Status: b.Status,
IssueType: b.IssueType,
Priority: b.Priority,
}
}