first commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Role string
|
||||
|
||||
const (
|
||||
RoleOwner Role = "owner"
|
||||
RoleAdmin Role = "admin"
|
||||
RoleMember Role = "member"
|
||||
)
|
||||
|
||||
type TaskStatus string
|
||||
|
||||
const (
|
||||
StatusTodo TaskStatus = "todo"
|
||||
StatusInProgress TaskStatus = "in_progress"
|
||||
StatusDone TaskStatus = "done"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID int64
|
||||
Email string
|
||||
PasswordHash string
|
||||
Name string
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
type Team struct {
|
||||
ID int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
CreatedBy int64 `json:"created_by"`
|
||||
Role Role `json:"role,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type Task struct {
|
||||
ID int64 `json:"id"`
|
||||
TeamID int64 `json:"team_id"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Status TaskStatus `json:"status"`
|
||||
AssigneeID *int64 `json:"assignee_id,omitempty"`
|
||||
CreatedBy int64 `json:"created_by"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type TaskHistory struct {
|
||||
ID int64 `json:"id"`
|
||||
TaskID int64 `json:"task_id"`
|
||||
ChangedBy int64 `json:"changed_by"`
|
||||
FieldName string `json:"field_name"`
|
||||
OldValue *string `json:"old_value,omitempty"`
|
||||
NewValue *string `json:"new_value,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type TaskFilter struct {
|
||||
TeamID int64
|
||||
Status TaskStatus
|
||||
AssigneeID *int64
|
||||
Page int
|
||||
PageSize int
|
||||
}
|
||||
|
||||
type TeamSummary struct {
|
||||
TeamID int64 `json:"team_id"`
|
||||
TeamName string `json:"team_name"`
|
||||
MembersCount int64 `json:"members_count"`
|
||||
DoneLast7Days int64 `json:"done_last_7_days"`
|
||||
}
|
||||
|
||||
type TopCreator struct {
|
||||
TeamID int64 `json:"team_id"`
|
||||
TeamName string `json:"team_name"`
|
||||
UserID int64 `json:"user_id"`
|
||||
UserName string `json:"user_name"`
|
||||
TasksCreated int64 `json:"tasks_created"`
|
||||
Rank int64 `json:"rank"`
|
||||
}
|
||||
Reference in New Issue
Block a user