...
This commit is contained in:
57
specs/models_old/projects/base.v
Normal file
57
specs/models_old/projects/base.v
Normal file
@@ -0,0 +1,57 @@
|
||||
module projects
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Priority levels for project items
|
||||
pub enum Priority {
|
||||
critical
|
||||
high
|
||||
medium
|
||||
low
|
||||
none
|
||||
}
|
||||
|
||||
// Status values for project lifecycle
|
||||
pub enum Status {
|
||||
todo
|
||||
in_progress
|
||||
review
|
||||
done
|
||||
archived
|
||||
}
|
||||
|
||||
// Types of items in the project hierarchy
|
||||
pub enum ItemType {
|
||||
epic
|
||||
story
|
||||
task
|
||||
bug
|
||||
improvement
|
||||
feature
|
||||
}
|
||||
|
||||
// Project represents a high-level container for organizing work
|
||||
// A Project holds information about its members and contains lists of associated epics, sprints, and boards
|
||||
pub struct Project {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index] // Project name
|
||||
description string // Detailed project description
|
||||
owner_id u64 @[index] // User ID of the project owner
|
||||
member_ids []u64 @[index] // List of user IDs who are members
|
||||
board_ids []u64 // List of associated board IDs
|
||||
sprint_ids []u64 @[index] // List of sprint IDs in this project
|
||||
epic_ids []u64 @[index] // List of epic IDs in this project
|
||||
tags []string @[index] // Project tags for categorization
|
||||
status Status @[index] // Current project status
|
||||
priority Priority @[index] // Project priority level
|
||||
item_type ItemType @[index] // Type of project item
|
||||
}
|
||||
|
||||
// Label represents a tag with name and color for categorization
|
||||
pub struct Label {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index] // Label name
|
||||
color string @[index] // Hex color code for the label
|
||||
}
|
18
specs/models_old/projects/epic.v
Normal file
18
specs/models_old/projects/epic.v
Normal file
@@ -0,0 +1,18 @@
|
||||
module projects
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// Epic represents a large body of work or major feature
|
||||
// An Epic is broken down into smaller tasks and can be associated with a project
|
||||
pub struct Epic {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index] // Epic name
|
||||
description string // Detailed epic description
|
||||
status Status @[index] // Current epic status
|
||||
project_id u64 @[index] // Link to parent project
|
||||
start_date u64 // Epic start timestamp (Unix)
|
||||
due_date u64 // Epic due timestamp (Unix)
|
||||
tags []string @[index] // Epic tags for categorization
|
||||
child_task_ids []u64 @[index] // List of task IDs belonging to this epic
|
||||
}
|
26
specs/models_old/projects/sprint.v
Normal file
26
specs/models_old/projects/sprint.v
Normal file
@@ -0,0 +1,26 @@
|
||||
module projects
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// SprintStatus defines the possible states of a sprint
|
||||
pub enum SprintStatus {
|
||||
planning
|
||||
active
|
||||
completed
|
||||
paused
|
||||
}
|
||||
|
||||
// Sprint represents a time-boxed iteration for completing work
|
||||
// Typically used in agile methodologies (e.g., two-week sprints)
|
||||
pub struct Sprint {
|
||||
core.Base
|
||||
pub mut:
|
||||
name string @[index] // Sprint name
|
||||
description string // Sprint description
|
||||
status SprintStatus @[index] // Current sprint status
|
||||
goal string // Sprint goal/objective
|
||||
project_id u64 @[index] // Link to parent project
|
||||
start_date u64 // Sprint start timestamp (Unix)
|
||||
end_date u64 // Sprint end timestamp (Unix)
|
||||
task_ids []u64 @[index] // List of task IDs in this sprint
|
||||
}
|
42
specs/models_old/projects/task.v
Normal file
42
specs/models_old/projects/task.v
Normal file
@@ -0,0 +1,42 @@
|
||||
module projects
|
||||
|
||||
import freeflowuniverse.herolib.hero.models.core
|
||||
|
||||
// TaskStatus defines the possible states of a task
|
||||
pub enum TaskStatus {
|
||||
todo
|
||||
in_progress
|
||||
in_review
|
||||
done
|
||||
blocked
|
||||
backlog
|
||||
}
|
||||
|
||||
// TaskPriority defines the priority levels for tasks
|
||||
pub enum TaskPriority {
|
||||
low
|
||||
medium
|
||||
high
|
||||
urgent
|
||||
}
|
||||
|
||||
// Task represents the most granular unit of work
|
||||
// Tasks can be linked to projects, epics, and sprints
|
||||
pub struct Task {
|
||||
core.Base
|
||||
pub mut:
|
||||
title string @[index] // Task title
|
||||
description string // Task description
|
||||
status TaskStatus @[index] // Current task status
|
||||
priority TaskPriority @[index] // Task priority level
|
||||
assignee_id u64 @[index] // User ID of task assignee
|
||||
reporter_id u64 @[index] // User ID of task reporter
|
||||
parent_task_id u64 // For subtasks - parent task ID
|
||||
epic_id u64 @[index] // Link to parent epic
|
||||
sprint_id u64 @[index] // Link to parent sprint
|
||||
project_id u64 @[index] // Link to parent project
|
||||
due_date u64 // Task due timestamp (Unix)
|
||||
estimated_time_hours f32 // Estimated hours to complete
|
||||
logged_time_hours f32 // Actual hours logged
|
||||
tags []string @[index] // Task tags for categorization
|
||||
}
|
Reference in New Issue
Block a user