db/specs/modelsold/projects/story.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
}