This commit is contained in:
2025-08-21 17:26:40 +02:00
parent 58ed59cd12
commit 095a4d0c69
96 changed files with 1070 additions and 10 deletions

View 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
}

View 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
}

View 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
}

View 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
}