Files

48 lines
1.4 KiB
Python

from datetime import datetime
from typing import Any
from pydantic import BaseModel, Field
class TimeTrackEntry(BaseModel):
id: str = Field(min_length=1, max_length=128)
task: str = ""
start: str
end: str
duration: int = Field(ge=0)
class TimeTrackSync(BaseModel):
device_id: str = Field(min_length=1, max_length=128)
entries: list[TimeTrackEntry] = Field(default_factory=list, max_length=1000)
class ZedRecord(BaseModel):
source_id: str = Field(min_length=1, max_length=128)
timestamp: str
zed_active: bool | None = None
type: str | None = None
branch: str | None = None
subject: str | None = None
message: str | None = None
author: str | None = None
source: str | None = None
title: str | None = None
class_: str | None = Field(default=None, alias="class")
model_config = {"extra": "allow", "populate_by_name": True}
class ZedSync(BaseModel):
device_id: str = Field(min_length=1, max_length=128)
project_slug: str = Field(min_length=1, max_length=255)
records: list[ZedRecord] = Field(default_factory=list, max_length=2000)
class EntryUpdate(BaseModel):
task: str | None = Field(default=None, max_length=512)
project_slug: str | None = Field(default=None, max_length=255)
notes: str | None = None
status: str | None = None
start_at: datetime | None = None
end_at: datetime | None = None