Documentation
¶
Overview ¶
Package model 数据模型定义
Package model 定义了 TaskBridge 的核心数据模型
Index ¶
- Constants
- func EmbedMetadata(description string, metadata *TaskMetadata) (string, error)
- func ExtractMetadataOnly(description string) string
- type Capabilities
- type ImportanceLevel
- type Manifest
- type MappingDatabase
- type PendingOp
- type Priority
- type PriorityCalculator
- type ProviderData
- type ProviderMeta
- type ProviderRef
- type ProviderStats
- type Quadrant
- type SyncError
- type SyncOpStats
- type SyncPair
- type SyncSession
- type SyncState
- type Task
- type TaskList
- type TaskMapping
- type TaskMetadata
- type TaskSource
- type TaskStatus
- type UrgencyLevel
Constants ¶
const MetadataEnd = " -->"
MetadataEnd 元数据结束标记
const MetadataMarker = "<!-- TaskBridge-Metadata:"
MetadataMarker 元数据标记 - 用于在备注中识别元数据块
Variables ¶
This section is empty.
Functions ¶
func EmbedMetadata ¶
func EmbedMetadata(description string, metadata *TaskMetadata) (string, error)
EmbedMetadata 将元数据嵌入到描述文本中
func ExtractMetadataOnly ¶
ExtractMetadataOnly 从描述文本中提取元数据,返回清理后的描述
Types ¶
type Capabilities ¶
type Capabilities struct {
SupportsDelta bool `json:"supports_delta"`
SupportsSubtasks bool `json:"supports_subtasks"`
SupportsPriority bool `json:"supports_priority"`
SupportsTags bool `json:"supports_tags"`
SupportsReminders bool `json:"supports_reminders"`
}
Capabilities Provider 能力
type ImportanceLevel ¶
type ImportanceLevel int
ImportanceLevel 重要程度
const ( // ImportanceNone 无重要程度 ImportanceNone ImportanceLevel = 0 // ImportanceLow 低重要程度 ImportanceLow ImportanceLevel = 1 // ImportanceMedium 中重要程度 ImportanceMedium ImportanceLevel = 2 // ImportanceHigh 高重要程度 ImportanceHigh ImportanceLevel = 3 // ImportanceCritical 关键重要程度 ImportanceCritical ImportanceLevel = 4 )
type Manifest ¶
type Manifest struct {
Version string `json:"version"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Providers map[string]ProviderMeta `json:"providers"`
SyncPairs []SyncPair `json:"sync_pairs"`
}
Manifest 全局清单文件
type MappingDatabase ¶
type MappingDatabase struct {
Version string `json:"version"`
Mappings []TaskMapping `json:"mappings"`
}
MappingDatabase 映射数据库
type PendingOp ¶
type PendingOp struct {
ID string `json:"id"`
Type string `json:"type"` // create, update, delete
Provider string `json:"provider"`
TaskID string `json:"task_id"`
CreatedAt time.Time `json:"created_at"`
Retries int `json:"retries"`
Status string `json:"status"` // pending, retrying, failed
LastError string `json:"last_error,omitempty"`
}
PendingOp 待处理操作
type PriorityCalculator ¶
type PriorityCalculator struct {
// WeightDueDate 截止日期权重
WeightDueDate float64 `json:"weight_due_date"`
// WeightImportance 重要程度权重
WeightImportance float64 `json:"weight_importance"`
// WeightUrgency 紧急程度权重
WeightUrgency float64 `json:"weight_urgency"`
// WeightProgress 进度权重
WeightProgress float64 `json:"weight_progress"`
}
PriorityCalculator 优先级计算器 - AI 可调用
func NewDefaultPriorityCalculator ¶
func NewDefaultPriorityCalculator() *PriorityCalculator
NewDefaultPriorityCalculator 创建默认优先级计算器
func (*PriorityCalculator) Calculate ¶
func (pc *PriorityCalculator) Calculate(task *Task) int
Calculate 计算综合优先级分数
type ProviderData ¶
type ProviderData struct {
Provider string `json:"provider"`
DisplayName string `json:"display_name"`
LastFullSync time.Time `json:"last_full_sync"`
LastDeltaSync time.Time `json:"last_delta_sync"`
SyncToken string `json:"sync_token"`
ETag string `json:"etag"`
Capabilities Capabilities `json:"capabilities"`
Stats ProviderStats `json:"stats"`
}
ProviderData Provider 数据元信息
type ProviderMeta ¶
type ProviderMeta struct {
Enabled bool `json:"enabled"`
Authenticated bool `json:"authenticated"`
LastSync time.Time `json:"last_sync"`
TaskCount int `json:"task_count"`
ListCount int `json:"list_count"`
}
ProviderMeta Provider 元数据
type ProviderRef ¶
type ProviderRef struct {
ID string `json:"id"`
ListID string `json:"list_id"`
ETag string `json:"etag"`
LastModified time.Time `json:"last_modified"`
Version int `json:"version"`
}
ProviderRef Provider 引用
type ProviderStats ¶
type ProviderStats struct {
TotalTasks int `json:"total_tasks"`
CompletedTasks int `json:"completed_tasks"`
PendingTasks int `json:"pending_tasks"`
Lists int `json:"lists"`
}
ProviderStats Provider 统计信息
type Quadrant ¶
type Quadrant int
Quadrant 四象限 - 艾森豪威尔矩阵
const ( // QuadrantUrgentImportant 第一象限 - 紧急且重要 - 立即做 QuadrantUrgentImportant Quadrant = 1 // QuadrantNotUrgentImportant 第二象限 - 不紧急但重要 - 计划做 QuadrantNotUrgentImportant Quadrant = 2 // QuadrantUrgentNotImportant 第三象限 - 紧急但不重要 - 授权做 QuadrantUrgentNotImportant Quadrant = 3 // QuadrantNotUrgentNotImportant 第四象限 - 不紧急也不重要 - 删除/延后 QuadrantNotUrgentNotImportant Quadrant = 4 )
func CalculateQuadrant ¶
func CalculateQuadrant(urgency UrgencyLevel, importance ImportanceLevel) Quadrant
CalculateQuadrant 根据紧急和重要程度计算象限
func CalculateQuadrantFromTask ¶
CalculateQuadrantFromTask 根据任务属性自动计算象限
type SyncError ¶
type SyncError struct {
TaskID string `json:"task_id"`
Operation string `json:"operation"`
Message string `json:"message"`
}
SyncError 同步错误
type SyncOpStats ¶
type SyncOpStats struct {
Pulled int `json:"pulled"`
Pushed int `json:"pushed"`
Updated int `json:"updated"`
Deleted int `json:"deleted"`
Skipped int `json:"skipped"`
Errors int `json:"errors"`
}
SyncOpStats 同步操作统计
type SyncPair ¶
type SyncPair struct {
Source string `json:"source"`
Target string `json:"target"`
Enabled bool `json:"enabled"`
Direction string `json:"direction"` // bidirectional, pull, push
Resolution string `json:"resolution"` // latest_wins, source_wins, target_wins
}
SyncPair 同步对配置
type SyncSession ¶
type SyncSession struct {
ID string `json:"id"`
Direction string `json:"direction"` // pull, push, bidirectional
Source string `json:"source"`
Target string `json:"target,omitempty"`
StartedAt time.Time `json:"started_at"`
CompletedAt time.Time `json:"completed_at"`
Status string `json:"status"` // running, completed, failed, conflict
Stats SyncOpStats `json:"stats"`
Errors []SyncError `json:"errors,omitempty"`
}
SyncSession 同步会话
type SyncState ¶
type SyncState struct {
Version string `json:"version"`
SyncSessions []SyncSession `json:"sync_sessions"`
PendingOperations []PendingOp `json:"pending_operations"`
}
SyncState 同步状态数据库
type Task ¶
type Task struct {
// ID 任务唯一标识
ID string `json:"id"`
// Title 任务标题
Title string `json:"title"`
// Description 任务描述
Description string `json:"description,omitempty"`
// Status 任务状态
Status TaskStatus `json:"status"`
// CreatedAt 创建时间
CreatedAt time.Time `json:"created_at"`
// UpdatedAt 更新时间
UpdatedAt time.Time `json:"updated_at"`
// CompletedAt 完成时间
CompletedAt *time.Time `json:"completed_at,omitempty"`
// DueDate 截止日期
DueDate *time.Time `json:"due_date,omitempty"`
// StartDate 开始日期
StartDate *time.Time `json:"start_date,omitempty"`
// Reminder 提醒时间
Reminder *time.Time `json:"reminder,omitempty"`
// ListID 所属列表 ID
ListID string `json:"list_id,omitempty"`
// ListName 所属列表名称
ListName string `json:"list_name,omitempty"`
// Tags 标签列表
Tags []string `json:"tags,omitempty"`
// Categories 分类列表
Categories []string `json:"categories,omitempty"`
// Quadrant 四象限分类
Quadrant Quadrant `json:"quadrant"`
// Urgency 紧急程度
Urgency UrgencyLevel `json:"urgency"`
// Importance 重要程度
Importance ImportanceLevel `json:"importance"`
// Priority 优先级(1-4)
Priority Priority `json:"priority"`
// PriorityScore AI 计算的优先级分数
PriorityScore int `json:"priority_score"`
// Progress 进度(0-100)
Progress int `json:"progress"`
// EstimatedMinutes 预估时间(分钟)
EstimatedMinutes int `json:"estimated_minutes,omitempty"`
// ActualMinutes 实际时间(分钟)
ActualMinutes int `json:"actual_minutes,omitempty"`
// ParentID 父任务 ID
ParentID *string `json:"parent_id,omitempty"`
// SubtaskIDs 子任务 ID 列表
SubtaskIDs []string `json:"subtask_ids,omitempty"`
// Metadata 元数据,用于存储扩展信息
Metadata *TaskMetadata `json:"metadata,omitempty"`
// Source 任务来源平台
Source TaskSource `json:"source"`
// SourceRawID 原始平台的任务 ID
SourceRawID string `json:"source_raw_id"`
// ETag 用于并发控制的实体标签
ETag string `json:"etag,omitempty"`
}
Task 统一任务模型 - 抽象所有 Todo 软件的任务
func (*Task) CalculatePriorityScore ¶
CalculatePriorityScore 计算优先级分数
type TaskList ¶
type TaskList struct {
// ID 列表唯一标识
ID string `json:"id"`
// Name 列表名称
Name string `json:"name"`
// Description 列表描述
Description string `json:"description,omitempty"`
// Source 来源平台
Source TaskSource `json:"source"`
// SourceRawID 原始平台的列表 ID
SourceRawID string `json:"source_raw_id"`
// CreatedAt 创建时间
CreatedAt time.Time `json:"created_at"`
// UpdatedAt 更新时间
UpdatedAt time.Time `json:"updated_at"`
// TaskCount 任务数量
TaskCount int `json:"task_count,omitempty"`
}
TaskList 任务列表
func CloneTaskList ¶ added in v1.0.4
type TaskMapping ¶
type TaskMapping struct {
LocalID string `json:"local_id"`
TitleHash string `json:"title_hash"`
Providers map[string]ProviderRef `json:"providers"`
SyncStatus string `json:"sync_status"` // synced, pending, conflict
LastSync time.Time `json:"last_sync"`
Resolution string `json:"resolution"`
}
TaskMapping 跨 Provider 任务映射
type TaskMetadata ¶
type TaskMetadata struct {
// Version 元数据版本
Version string `json:"version"`
// Quadrant 四象限分类(1-4)
Quadrant int `json:"quadrant"`
// Urgency 紧急程度(0-4)
Urgency int `json:"urgency"`
// Importance 重要程度(0-4)
Importance int `json:"importance"`
// Priority 优先级(0-4)
Priority int `json:"priority"`
// PriorityScore AI 计算的优先级分数
PriorityScore int `json:"priority_score"`
// AISuggestion AI 建议内容
AISuggestion string `json:"ai_suggestion,omitempty"`
// AIConfidence AI 建议置信度
AIConfidence float64 `json:"ai_confidence,omitempty"`
// EstimatedMinutes 预估时间(分钟)
EstimatedMinutes int `json:"estimated_minutes,omitempty"`
// ActualMinutes 实际时间(分钟)
ActualMinutes int `json:"actual_minutes,omitempty"`
// PomodoroCount 番茄钟数量
PomodoroCount int `json:"pomodoro_count,omitempty"`
// CustomFields 自定义字段
CustomFields map[string]interface{} `json:"custom_fields,omitempty"`
// LastSyncAt 最后同步时间
LastSyncAt time.Time `json:"last_sync_at"`
// SyncSource 同步来源
SyncSource string `json:"sync_source"`
// LocalID 本地任务 ID
LocalID string `json:"local_id"`
}
TaskMetadata 任务元数据 - 存储在原始软件的备注/描述中
func CloneTaskMetadata ¶ added in v1.0.4
func CloneTaskMetadata(metadata *TaskMetadata) *TaskMetadata
func ExtractMetadata ¶
func ExtractMetadata(description string) (string, *TaskMetadata, error)
ExtractMetadata 从描述文本中提取元数据,返回描述和元数据
func (*TaskMetadata) ApplyToTask ¶
func (m *TaskMetadata) ApplyToTask(task *Task)
ApplyToTask 将元数据应用到任务
func (*TaskMetadata) ToJSON ¶
func (m *TaskMetadata) ToJSON() (string, error)
ToJSON 序列化为 JSON 字符串 - 用于嵌入备注
type TaskSource ¶
type TaskSource string
TaskSource 任务来源
const ( // SourceMicrosoft Microsoft 来源 SourceMicrosoft TaskSource = "microsoft" // SourceGoogle Google 来源 SourceGoogle TaskSource = "google" // SourceFeishu 飞书来源 SourceFeishu TaskSource = "feishu" // SourceTickTick 滴答清单来源 SourceTickTick TaskSource = "ticktick" // SourceDida 滴答清单国内版来源 SourceDida TaskSource = "dida" // SourceTodoist Todoist 来源 SourceTodoist TaskSource = "todoist" // SourceOmniFocus OmniFocus 来源 SourceOmniFocus TaskSource = "omnifocus" // SourceApple Apple 来源 SourceApple TaskSource = "apple" // SourceLocal 本地来源 SourceLocal TaskSource = "local" )
type TaskStatus ¶
type TaskStatus string
TaskStatus 任务状态
const ( // StatusTodo 待办状态 StatusTodo TaskStatus = "todo" // StatusInProgress 进行中状态 StatusInProgress TaskStatus = "in_progress" // StatusCompleted 已完成状态 StatusCompleted TaskStatus = "completed" // StatusCancelled 已取消状态 StatusCancelled TaskStatus = "cancelled" // StatusDeferred 已延期状态 StatusDeferred TaskStatus = "deferred" )
type UrgencyLevel ¶
type UrgencyLevel int
UrgencyLevel 紧急程度
const ( // UrgencyNone 无紧急程度 UrgencyNone UrgencyLevel = 0 // UrgencyLow 低紧急程度 UrgencyLow UrgencyLevel = 1 // UrgencyMedium 中紧急程度 UrgencyMedium UrgencyLevel = 2 // UrgencyHigh 高紧急程度 UrgencyHigh UrgencyLevel = 3 // UrgencyCritical 紧急 UrgencyCritical UrgencyLevel = 4 )