From e74f5d717f911164107e9714625e63852e5e5e30 Mon Sep 17 00:00:00 2001 From: jessikitty Date: Mon, 26 Jan 2026 21:56:10 +1100 Subject: [PATCH] Add User schemas --- backend/app/schemas/user.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 backend/app/schemas/user.py diff --git a/backend/app/schemas/user.py b/backend/app/schemas/user.py new file mode 100644 index 0000000..1acc131 --- /dev/null +++ b/backend/app/schemas/user.py @@ -0,0 +1,36 @@ +"""User schemas.""" +from pydantic import BaseModel, EmailStr +from datetime import datetime +from typing import Optional + +class UserBase(BaseModel): + """Base user schema.""" + username: str + email: EmailStr + full_name: Optional[str] = None + +class UserCreate(UserBase): + """Schema for creating a user.""" + password: str + +class UserUpdate(BaseModel): + """Schema for updating a user.""" + email: Optional[EmailStr] = None + full_name: Optional[str] = None + password: Optional[str] = None + is_active: Optional[bool] = None + +class UserResponse(UserBase): + """Schema for user response.""" + id: int + is_active: bool + is_admin: bool + created_at: datetime + + class Config: + from_attributes = True + +class UserLogin(BaseModel): + """Schema for user login.""" + username: str + password: str