- ProjectTask에 description/priority/labels 추가
- TaskComment 모델 + 엔드포인트(GET/POST /tasks/{id}/comments, DELETE /comments/{id})
- 댓글 작성자=요청자, 삭제는 작성자 또는 관리자
- PATCH /tasks: labels/dependsOn JSON 슬라이스 map 패치 처리
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
dcf8b415db
commit
f46f135dbf
@@ -28,7 +28,7 @@ func All() []interface{} {
|
||||
&Attendance{}, &LeaveRequest{}, &OvertimeRequest{}, &WorkPolicy{}, &LeaveBalance{},
|
||||
// slice 3 — projects
|
||||
&Company{}, &Product{}, &Version{}, &Project{}, &ProjectMember{},
|
||||
&ClientContact{}, &ProjectTask{}, &Contract{}, &ContractFile{}, &PaymentSplit{},
|
||||
&ClientContact{}, &ProjectTask{}, &TaskComment{}, &Contract{}, &ContractFile{}, &PaymentSplit{},
|
||||
// slice 4 — incentive
|
||||
&IncentiveConfig{}, &PaymentStage{}, &UserIncentive{}, &QuarterlySettlement{},
|
||||
// slice 5 — accounting
|
||||
|
||||
@@ -97,8 +97,11 @@ type ProjectTask struct {
|
||||
Base
|
||||
ProjectID string `gorm:"index" json:"projectId"`
|
||||
Title string `json:"title"`
|
||||
Lane string `json:"lane"` // todo | doing | review | done
|
||||
Start string `json:"start"` // YYYY-MM-DD
|
||||
Description string `json:"description"` // 상세 설명 (JIRA형 카드 본문)
|
||||
Lane string `json:"lane"` // todo | doing | review | done
|
||||
Priority string `json:"priority"` // low | medium | high | urgent
|
||||
Labels datatypes.JSONSlice[string] `json:"labels"` // 라벨/태그
|
||||
Start string `json:"start"` // YYYY-MM-DD
|
||||
End string `json:"end"`
|
||||
Assignee string `json:"assignee"`
|
||||
OrderIdx int `json:"orderIdx"`
|
||||
@@ -111,6 +114,17 @@ type ProjectTask struct {
|
||||
|
||||
func (m *ProjectTask) BeforeCreate(*gorm.DB) error { m.ensureID(); return nil }
|
||||
|
||||
// TaskComment is a JIRA-style comment thread on a task (작성자·본문·시각).
|
||||
type TaskComment struct {
|
||||
Base
|
||||
TaskID string `gorm:"index" json:"taskId"`
|
||||
AuthorEmail string `json:"authorEmail"`
|
||||
Body string `json:"body"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
|
||||
func (m *TaskComment) BeforeCreate(*gorm.DB) error { m.ensureID(); return nil }
|
||||
|
||||
// Contract holds the [admin-only] commercial terms of a project. BE is the
|
||||
// break-even floor (손해가 안 나는 최소 금액). Exposed ONLY to admins.
|
||||
type Contract struct {
|
||||
|
||||
Reference in New Issue
Block a user