63 lines
2.3 KiB
V
63 lines
2.3 KiB
V
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
|
|
} |