35 lines
981 B
Python
35 lines
981 B
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from pydantic import BaseModel, EmailStr
|
|
from app.database import get_db
|
|
from app.models.enterprise_lead import EnterpriseLead
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
class LeadCreate(BaseModel):
|
|
type: str # private | buyout
|
|
name: str
|
|
company: str = ""
|
|
phone: str = ""
|
|
email: str = ""
|
|
message: str = ""
|
|
|
|
|
|
@router.post("")
|
|
async def create_lead(payload: LeadCreate, db: AsyncSession = Depends(get_db)):
|
|
if payload.type not in ("private", "buyout"):
|
|
raise HTTPException(status_code=400, detail="Invalid lead type")
|
|
lead = EnterpriseLead(
|
|
type=payload.type,
|
|
name=payload.name,
|
|
company=payload.company,
|
|
phone=payload.phone,
|
|
email=payload.email,
|
|
message=payload.message,
|
|
)
|
|
db.add(lead)
|
|
await db.flush()
|
|
await db.refresh(lead)
|
|
return {"id": lead.id, "type": lead.type, "status": lead.status}
|