From 609d731a6c2aafd5b4e452ac92b3cd9abc671624 Mon Sep 17 00:00:00 2001 From: Leopoldadmin Date: Thu, 4 Jun 2026 00:06:22 +0000 Subject: [PATCH] Upload app/schemas/contact.py --- app/schemas/contact.py | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 app/schemas/contact.py diff --git a/app/schemas/contact.py b/app/schemas/contact.py new file mode 100644 index 0000000..da19df6 --- /dev/null +++ b/app/schemas/contact.py @@ -0,0 +1,46 @@ +"""Pydantic schemas for Contact endpoints.""" + +from __future__ import annotations + +from datetime import datetime +from typing import Optional + +from pydantic import BaseModel, ConfigDict, EmailStr, Field + + +class ContactBase(BaseModel): + first_name: str = Field(..., min_length=1, max_length=128) + last_name: str = Field(..., min_length=1, max_length=128) + email: Optional[EmailStr] = None + phone: Optional[str] = Field(None, max_length=64) + account_id: Optional[int] = None + + +class ContactCreate(ContactBase): + pass + + +class ContactUpdate(BaseModel): + first_name: Optional[str] = Field(None, min_length=1, max_length=128) + last_name: Optional[str] = Field(None, min_length=1, max_length=128) + email: Optional[EmailStr] = None + phone: Optional[str] = Field(None, max_length=64) + account_id: Optional[int] = None + + +class ContactOut(ContactBase): + model_config = ConfigDict(from_attributes=True) + + id: int + org_id: int + owner_id: int + created_at: datetime + updated_at: datetime + deleted_at: Optional[datetime] = None + + +class ContactListItem(ContactOut): + pass + + +__all__ = ["ContactCreate", "ContactListItem", "ContactOut", "ContactUpdate"]