44 lines
1.4 KiB
V
44 lines
1.4 KiB
V
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
|
|
} |