import re
from datetime import datetime
from typing import List, Optional
from lin import BaseModel
from pydantic import Field, validator
from app.schema import BasePageSchema, QueryPageSchema, datetime_regex
class UsernameListSchema(BaseModel):
items: List[str]
class LogQuerySearchSchema(QueryPageSchema):
keyword: Optional[str] = None
name: Optional[str] = None
start: Optional[str] = Field(None, description="YY-MM-DD HH:MM:SS")
end: Optional[str] = Field(None, description="YY-MM-DD HH:MM:SS")
@validator("start", "end")
def datetime_match(cls, v):
if re.match(datetime_regex, v):
return v
raise ValueError("时间格式有误")
class LogSchema(BaseModel):
message: str
user_id: int
username: str
status_code: int
method: str
path: str
permission: str
time: datetime = Field(alias="create_time")
class LogPageSchema(BasePageSchema):
items: List[LogSchema]