26 lines
666 B
Python
Executable File
26 lines
666 B
Python
Executable File
from pydantic import BaseModel, Field
|
|
from datetime import datetime
|
|
|
|
|
|
class TaskCreate(BaseModel):
|
|
title: str = Field(min_length=1, max_length=200)
|
|
description: str | None = Field(default=None, max_length=1000)
|
|
|
|
|
|
class TaskUpdate(BaseModel):
|
|
title: str | None = Field(default=None, min_length=1, max_length=200)
|
|
description: str | None = Field(default=None, max_length=1000)
|
|
status: str | None = Field(default=None, pattern="^(TODO|DOING|DONE)$")
|
|
|
|
|
|
class TaskOut(BaseModel):
|
|
id: int
|
|
title: str
|
|
description: str | None
|
|
status: str
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|