alwrity chatbot assistant, content scheduler, and content repurposing

This commit is contained in:
ajaysi
2025-06-02 00:00:18 +05:30
parent 889021c078
commit 5ca2fd5977
69 changed files with 13952 additions and 3279 deletions

View File

@@ -0,0 +1,75 @@
"""
Timeline models for the Content Scheduler.
"""
from dataclasses import dataclass
from datetime import datetime
from typing import List, Dict, Any, Optional
from enum import Enum
class TimelineViewType(Enum):
"""Types of timeline views."""
GANTT = "gantt"
TIMELINE = "timeline"
LIST = "list"
class TimelineDependencyType(Enum):
"""Types of timeline dependencies."""
FINISH_TO_START = "finish_to_start"
START_TO_START = "start_to_start"
FINISH_TO_FINISH = "finish_to_finish"
START_TO_FINISH = "start_to_finish"
@dataclass
class TimelineDependency:
"""Timeline dependency model."""
source_id: str
target_id: str
dependency_type: TimelineDependencyType
lag: Optional[int] = None # Lag time in minutes
@dataclass
class TimelineTask:
"""Timeline task model."""
id: str
title: str
start_time: datetime
end_time: datetime
platform: str
status: str
progress: float
dependencies: List[TimelineDependency]
metadata: Dict[str, Any]
@dataclass
class TimelineMilestone:
"""Timeline milestone model."""
id: str
title: str
date: datetime
description: Optional[str] = None
status: str = "pending"
metadata: Dict[str, Any] = None
@dataclass
class TimelineView:
"""Timeline view model."""
view_type: TimelineViewType
start_date: datetime
end_date: datetime
tasks: List[TimelineTask]
milestones: List[TimelineMilestone]
dependencies: List[TimelineDependency]
metadata: Dict[str, Any]
@dataclass
class TimelineProgress:
"""Timeline progress model."""
total_tasks: int
completed_tasks: int
in_progress_tasks: int
pending_tasks: int
progress_percentage: float
by_platform: Dict[str, float]
by_date: Dict[str, float]
metadata: Dict[str, Any]