Update git remote URL from git.threefold.info to git.ourworld.tf

This commit is contained in:
2025-08-04 10:44:17 +02:00
parent 0cf66642a2
commit aa7e79d26c
85 changed files with 1865 additions and 392 deletions

View File

@@ -1,8 +1,8 @@
module projects
import base
import freeflowuniverse.herolib.hero.models.core
// Priority represents the priority level of a project item
// Priority levels for project items
pub enum Priority {
critical
high
@@ -11,7 +11,7 @@ pub enum Priority {
none
}
// Status represents the current status of a project item
// Status values for project lifecycle
pub enum Status {
todo
in_progress
@@ -20,7 +20,7 @@ pub enum Status {
archived
}
// ItemType represents the type of a project item
// Types of items in the project hierarchy
pub enum ItemType {
epic
story
@@ -30,24 +30,28 @@ pub enum ItemType {
feature
}
// Project represents a project in the system
// 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 {
base.Base
core.Base
pub mut:
name string
description string
owner_id u32 // ID of the user who owns this project
member_ids []u32 // IDs of the users who are members of this project
board_ids []u32 // IDs of the kanban boards in this project
sprint_ids []u32 // IDs of the sprints in this project
epic_ids []u32 // IDs of the epics in this project
tags []string
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 label that can be applied to project items
// Label represents a tag with name and color for categorization
pub struct Label {
base.Base
core.Base
pub mut:
name string
color string // Hex color code
}
name string @[index] // Label name
color string @[index] // Hex color code for the label
}

View File

@@ -1,37 +1,18 @@
module projects
import base
import freeflowuniverse.herolib.hero.models.core
// Epic represents a large body of work that can be broken down into stories
// 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 {
base.Base
core.Base
pub mut:
title string
description string
project_id u32 // ID of the project this epic belongs to
owner_id u32 // ID of the user who owns this epic
assignee_id u32 // ID of the user assigned to this epic
status Status
priority Priority
story_ids []u32 // IDs of the stories in this epic
issue_ids []u32 // IDs of the issues in this epic
label_ids []u32 // IDs of the labels applied to this epic
start_date string // Start date in ISO format
due_date string // Due date in ISO format
progress f32 // Progress as a percentage (0-100)
dependencies []u32 // IDs of epics that this epic depends on
blockers []string // List of blockers preventing progress
tags []string
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
}
// EpicProgress represents the progress of an epic
pub struct EpicProgress {
base.Base
pub mut:
epic_id u32
total_stories u32 // Total number of stories in the epic
completed_stories u32 // Number of completed stories
total_points f32 // Total number of story points
completed_points f32 // Number of completed story points
progress f32 // Progress as a percentage (0-100)
}

View File

@@ -1,60 +0,0 @@
module projects
import base
// IssueType represents the type of an issue
pub enum IssueType {
bug
feature_request
improvement
task
question
documentation
}
// IssueSeverity represents the severity of an issue
pub enum IssueSeverity {
blocker
critical
major
minor
trivial
}
// Issue represents a problem, task, or feature request in the project
pub struct Issue {
base.Base
pub mut:
title string
description string
project_id u32 // ID of the project this issue belongs to
reporter_id u32 // ID of the user who reported this issue
assignee_id u32 // ID of the user assigned to this issue
status Status
priority Priority
issue_type IssueType
severity IssueSeverity
epic_id u32 // ID of the epic this issue belongs to (if any)
story_id u32 // ID of the story this issue belongs to (if any)
sprint_id u32 // ID of the sprint this issue is scheduled for (if any)
label_ids []u32 // IDs of the labels applied to this issue
due_date string // Due date in ISO format
estimated_hours f32 // Estimated hours to complete
actual_hours f32 // Actual hours spent
dependencies []u32 // IDs of issues that this issue depends on
blockers []string // List of blockers preventing progress
steps_to_reproduce []string // Steps to reproduce (for bugs)
environment string // Environment where the issue occurs (for bugs)
attachments []string // Paths or references to attachments
tags []string
}
// IssueComment represents a comment on an issue
pub struct IssueComment {
base.Base
pub mut:
issue_id u32
author_id u32
content string
attachments []string // Paths or references to attachments
}

View File

@@ -1,44 +0,0 @@
module projects
import base
// KanbanBoard represents a kanban board in the project management system
pub struct KanbanBoard {
base.Base
pub mut:
name string
description string
project_id u32 // ID of the project this board belongs to
columns []Column // Columns in this kanban board
}
// Column represents a column in a kanban board
pub struct Column {
base.Base
pub mut:
name string
description string
position u32 // Position of the column in the board (for ordering)
item_ids []u32 // IDs of the items in this column
wip_limit u32 // Work in progress limit (0 means no limit)
}
// KanbanItem represents an item on a kanban board
// This can be linked to an Epic, Story, or Issue
pub struct KanbanItem {
base.Base
pub mut:
title string
description string
column_id u32 // ID of the column this item belongs to
position u32 // Position of the item in the column (for ordering)
assignee_id u32 // ID of the user assigned to this item
priority Priority
status Status
item_type ItemType
epic_id u32 // ID of the epic this item belongs to (if any)
story_id u32 // ID of the story this item belongs to (if any)
issue_id u32 // ID of the issue this item is linked to (if any)
label_ids []u32 // IDs of the labels applied to this item
due_date string // Due date in ISO format
}

View File

@@ -1,45 +1,26 @@
module projects
import base
import freeflowuniverse.herolib.hero.models.core
// SprintStatus represents the status of a sprint
// SprintStatus defines the possible states of a sprint
pub enum SprintStatus {
planning
active
review
completed
cancelled
paused
}
// Sprint represents a time-boxed period in which specific work has to be completed
// Sprint represents a time-boxed iteration for completing work
// Typically used in agile methodologies (e.g., two-week sprints)
pub struct Sprint {
base.Base
core.Base
pub mut:
name string
description string
project_id u32 // ID of the project this sprint belongs to
status SprintStatus
start_date string // Start date in ISO format
end_date string // End date in ISO format
goal string // The goal of this sprint
story_ids []u32 // IDs of the stories in this sprint
issue_ids []u32 // IDs of the issues in this sprint
epic_ids []u32 // IDs of the epics this sprint contributes to
velocity f32 // Planned velocity for this sprint
actual_points f32 // Actual story points completed
retrospective string // Notes from the sprint retrospective
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
}
// SprintReport represents a report generated at the end of a sprint
pub struct SprintReport {
base.Base
pub mut:
sprint_id u32
completed_items u32 // Number of items completed
total_items u32 // Total number of items
completed_points f32 // Number of story points completed
total_points f32 // Total number of story points
blockers []string // List of blockers encountered
achievements []string // List of achievements
lessons []string // Lessons learned
}

View File

@@ -1,63 +0,0 @@
module projects
import base
// StorySize represents the size/complexity of a user story
pub enum StorySize {
xs // 1 point
s // 2 points
m // 3 points
l // 5 points
xl // 8 points
xxl // 13 points
}
// AcceptanceCriteria represents a single acceptance criterion for a story
pub struct AcceptanceCriteria {
pub mut:
description string
satisfied bool
}
// Story represents a user story in the project management system
pub struct Story {
base.Base
pub mut:
title string
description string
project_id u32 // ID of the project this story belongs to
epic_id u32 // ID of the epic this story belongs to (if any)
sprint_id u32 // ID of the sprint this story is scheduled for (if any)
owner_id u32 // ID of the user who owns this story
assignee_id u32 // ID of the user assigned to this story
status Status
priority Priority
size StorySize
points f32 // Story points (if not using standard sizes)
acceptance_criteria []AcceptanceCriteria // List of acceptance criteria
issue_ids []u32 // IDs of the issues related to this story
label_ids []u32 // IDs of the labels applied to this story
dependencies []u32 // IDs of stories that this story depends on
blockers []string // List of blockers preventing progress
business_value u32 // Business value (1-10)
user_persona string // User persona this story relates to
start_date string // Start date in ISO format
due_date string // Due date in ISO format
estimated_hours f32 // Estimated hours to complete
actual_hours f32 // Actual hours spent
tags []string
}
// StoryTask represents a task that needs to be completed for a story
pub struct StoryTask {
base.Base
pub mut:
story_id u32
title string
description string
assignee_id u32 // ID of the user assigned to this task
status Status
estimated_hours f32 // Estimated hours to complete
actual_hours f32 // Actual hours spent
order u32 // Order of the task in the story
}

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
}