This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from datetime import date
|
||||
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
|
||||
|
||||
class RegisterRequest(BaseModel):
|
||||
email: EmailStr
|
||||
password: str = Field(min_length=10, max_length=255)
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
email: EmailStr
|
||||
password: str = Field(min_length=1, max_length=255)
|
||||
|
||||
|
||||
class MFAChallengeRequest(BaseModel):
|
||||
code: str = Field(min_length=1, max_length=32)
|
||||
|
||||
|
||||
class TimeEntryCreate(BaseModel):
|
||||
date: date
|
||||
start_time: str
|
||||
end_time: str
|
||||
break_minutes: int | None = Field(default=None, ge=0)
|
||||
break_mode: str | None = Field(default=None, pattern="^(manual|auto)$")
|
||||
notes: str | None = None
|
||||
|
||||
|
||||
class TimeEntryUpdate(BaseModel):
|
||||
start_time: str | None = None
|
||||
end_time: str | None = None
|
||||
break_minutes: int | None = Field(default=None, ge=0)
|
||||
break_mode: str | None = Field(default=None, pattern="^(manual|auto)$")
|
||||
notes: str | None = None
|
||||
|
||||
|
||||
class TimeEntryOut(BaseModel):
|
||||
id: str
|
||||
date: date
|
||||
start_time: str
|
||||
end_time: str
|
||||
break_minutes: int
|
||||
break_mode: str
|
||||
net_minutes: int
|
||||
notes: str | None
|
||||
Reference in New Issue
Block a user