| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- """
- Database models and data structures.
- Defines the core data models for projects, tasks, and annotations.
- """
- from datetime import datetime
- from typing import Optional
- class Project:
- """Project model representing a labeling project."""
-
- def __init__(
- self,
- id: str,
- name: str,
- description: str,
- config: str,
- created_at: datetime
- ):
- self.id = id
- self.name = name
- self.description = description
- self.config = config
- self.created_at = created_at
-
- @classmethod
- def from_row(cls, row):
- """Create Project instance from database row."""
- return cls(
- id=row["id"],
- name=row["name"],
- description=row["description"],
- config=row["config"],
- created_at=row["created_at"]
- )
- class Task:
- """Task model representing a labeling task."""
-
- def __init__(
- self,
- id: str,
- project_id: str,
- name: str,
- data: str,
- status: str,
- assigned_to: Optional[str],
- created_at: datetime
- ):
- self.id = id
- self.project_id = project_id
- self.name = name
- self.data = data
- self.status = status
- self.assigned_to = assigned_to
- self.created_at = created_at
-
- @classmethod
- def from_row(cls, row):
- """Create Task instance from database row."""
- return cls(
- id=row["id"],
- project_id=row["project_id"],
- name=row["name"],
- data=row["data"],
- status=row["status"],
- assigned_to=row["assigned_to"],
- created_at=row["created_at"]
- )
- class Annotation:
- """Annotation model representing a labeling result."""
-
- def __init__(
- self,
- id: str,
- task_id: str,
- user_id: str,
- result: str,
- created_at: datetime,
- updated_at: datetime
- ):
- self.id = id
- self.task_id = task_id
- self.user_id = user_id
- self.result = result
- self.created_at = created_at
- self.updated_at = updated_at
-
- @classmethod
- def from_row(cls, row):
- """Create Annotation instance from database row."""
- return cls(
- id=row["id"],
- task_id=row["task_id"],
- user_id=row["user_id"],
- result=row["result"],
- created_at=row["created_at"],
- updated_at=row["updated_at"]
- )
|