feat: add validation for minimum length on various fields and update type definitions

This commit is contained in:
Abhimanyu Saharan
2026-02-06 16:12:04 +05:30
parent ca614328ac
commit d86fe0a7a6
157 changed files with 12340 additions and 2977 deletions

View File

@@ -5,6 +5,8 @@ from uuid import UUID, uuid4
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class ActivityEvent(SQLModel, table=True):
__tablename__ = "activity_events"
@@ -14,4 +16,4 @@ class ActivityEvent(SQLModel, table=True):
message: str | None = None
agent_id: UUID | None = Field(default=None, foreign_key="agents.id", index=True)
task_id: UUID | None = Field(default=None, foreign_key="tasks.id", index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)

View File

@@ -7,6 +7,8 @@ from uuid import UUID, uuid4
from sqlalchemy import JSON, Column, Text
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class Agent(SQLModel, table=True):
__tablename__ = "agents"
@@ -28,5 +30,5 @@ class Agent(SQLModel, table=True):
delete_confirm_token_hash: str | None = Field(default=None, index=True)
last_seen_at: datetime | None = Field(default=None)
is_board_lead: bool = Field(default=False, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
updated_at: datetime = Field(default_factory=utcnow)

View File

@@ -6,6 +6,8 @@ from uuid import UUID, uuid4
from sqlalchemy import JSON, Column
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class Approval(SQLModel, table=True):
__tablename__ = "approvals"
@@ -18,5 +20,5 @@ class Approval(SQLModel, table=True):
confidence: int
rubric_scores: dict[str, int] | None = Field(default=None, sa_column=Column(JSON))
status: str = Field(default="pending", index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
resolved_at: datetime | None = None

View File

@@ -6,6 +6,8 @@ from uuid import UUID, uuid4
from sqlalchemy import JSON, Column
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class BoardMemory(SQLModel, table=True):
__tablename__ = "board_memory"
@@ -15,4 +17,4 @@ class BoardMemory(SQLModel, table=True):
content: str
tags: list[str] | None = Field(default=None, sa_column=Column(JSON))
source: str | None = None
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)

View File

@@ -6,6 +6,8 @@ from uuid import UUID, uuid4
from sqlalchemy import JSON, Column
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class BoardOnboardingSession(SQLModel, table=True):
__tablename__ = "board_onboarding_sessions"
@@ -16,5 +18,5 @@ class BoardOnboardingSession(SQLModel, table=True):
status: str = Field(default="active", index=True)
messages: list[dict[str, object]] | None = Field(default=None, sa_column=Column(JSON))
draft_goal: dict[str, object] | None = Field(default=None, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
updated_at: datetime = Field(default_factory=utcnow)

View File

@@ -6,6 +6,7 @@ from uuid import UUID, uuid4
from sqlalchemy import JSON, Column
from sqlmodel import Field
from app.core.time import utcnow
from app.models.tenancy import TenantScoped
@@ -22,5 +23,5 @@ class Board(TenantScoped, table=True):
target_date: datetime | None = None
goal_confirmed: bool = Field(default=False)
goal_source: str | None = None
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
updated_at: datetime = Field(default_factory=utcnow)

View File

@@ -5,6 +5,8 @@ from uuid import UUID, uuid4
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class Gateway(SQLModel, table=True):
__tablename__ = "gateways"
@@ -16,5 +18,5 @@ class Gateway(SQLModel, table=True):
main_session_key: str
workspace_root: str
skyll_enabled: bool = Field(default=False)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
updated_at: datetime = Field(default_factory=utcnow)

View File

@@ -5,6 +5,8 @@ from uuid import UUID, uuid4
from sqlmodel import Field, SQLModel
from app.core.time import utcnow
class TaskFingerprint(SQLModel, table=True):
__tablename__ = "task_fingerprints"
@@ -13,4 +15,4 @@ class TaskFingerprint(SQLModel, table=True):
board_id: UUID = Field(foreign_key="boards.id", index=True)
fingerprint_hash: str = Field(index=True)
task_id: UUID = Field(foreign_key="tasks.id")
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)

View File

@@ -6,6 +6,7 @@ from uuid import UUID, uuid4
from sqlmodel import Field
from app.models.tenancy import TenantScoped
from app.core.time import utcnow
class Task(TenantScoped, table=True):
@@ -26,5 +27,5 @@ class Task(TenantScoped, table=True):
auto_created: bool = Field(default=False)
auto_reason: str | None = None
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=utcnow)
updated_at: datetime = Field(default_factory=utcnow)