56 lines
937 B
Python
56 lines
937 B
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SubjectCreate(BaseModel):
|
|
name: str = Field(min_length=1)
|
|
|
|
|
|
class Subject(BaseModel):
|
|
id: int
|
|
name: str
|
|
slug: str
|
|
created_at: datetime
|
|
|
|
|
|
class WeekCreate(BaseModel):
|
|
number: int = Field(ge=1)
|
|
title: Optional[str] = None
|
|
|
|
|
|
class WeekUpdate(BaseModel):
|
|
number: int = Field(ge=1)
|
|
title: Optional[str] = None
|
|
|
|
|
|
class Week(BaseModel):
|
|
id: int
|
|
subject_id: int
|
|
number: int
|
|
title: Optional[str]
|
|
created_at: datetime
|
|
|
|
|
|
class MarkdownUpdate(BaseModel):
|
|
content: str
|
|
|
|
|
|
class Job(BaseModel):
|
|
id: int
|
|
status: str
|
|
message: str
|
|
source_id: Optional[int] = None
|
|
document_id: Optional[int] = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class Document(BaseModel):
|
|
id: int
|
|
source_id: int
|
|
title: str
|
|
markdown_path: str
|
|
created_at: datetime
|