Add Pastor schema
This commit is contained in:
parent
8891ae2653
commit
5b04d372ac
43
schemas/pastor.py
Normal file
43
schemas/pastor.py
Normal file
@ -0,0 +1,43 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
class PastorBase(BaseModel):
|
||||
name: str = Field(..., min_length=2, max_length=100, description="Pastor's full name")
|
||||
church_name: str = Field(..., min_length=2, max_length=200, description="Name of the church")
|
||||
location: str = Field(..., min_length=2, max_length=200, description="Church location")
|
||||
age: int = Field(..., gt=18, lt=120, description="Pastor's age")
|
||||
bio: Optional[str] = Field(None, description="Pastor's biography")
|
||||
website: Optional[str] = Field(None, max_length=200, description="Church website")
|
||||
social_media: Optional[str] = Field(None, max_length=200, description="Social media handles")
|
||||
specialty: Optional[str] = Field(None, max_length=100, description="Pastor's specialty or focus area")
|
||||
years_in_ministry: Optional[int] = Field(None, ge=0, description="Years of ministry experience")
|
||||
followers_count: int = Field(default=0, ge=0, description="Number of followers")
|
||||
is_active: bool = Field(default=True, description="Whether the pastor is currently active")
|
||||
|
||||
class PastorCreate(PastorBase):
|
||||
class Config:
|
||||
schema_extra = {
|
||||
"example": {
|
||||
"name": "John Smith",
|
||||
"church_name": "Grace Community Church",
|
||||
"location": "Los Angeles, CA",
|
||||
"age": 45,
|
||||
"bio": "Serving the community for over 15 years",
|
||||
"website": "www.gracecommunitychurch.org",
|
||||
"social_media": "@pastorjohnsmith",
|
||||
"specialty": "Youth Ministry",
|
||||
"years_in_ministry": 15,
|
||||
"followers_count": 1000,
|
||||
"is_active": True
|
||||
}
|
||||
}
|
||||
|
||||
class Pastor(PastorBase):
|
||||
id: UUID
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
Loading…
x
Reference in New Issue
Block a user