...
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