"""انتهای فرم‌ها — ثبت پیام تماس و عضویت در خبرنامه.""" from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from ..database import get_db from .. import models from ..schemas import ContactIn, ContactMessageOut, NewsletterIn, SubscriberOut router = APIRouter() @router.post("/contact", response_model=ContactMessageOut, status_code=201) def submit_contact(payload: ContactIn, db: Session = Depends(get_db)): message = models.ContactMessage( name=payload.name.strip(), phone=payload.phone.strip(), note=payload.note.strip(), ) db.add(message) db.commit() db.refresh(message) return message @router.post("/newsletter", response_model=SubscriberOut, status_code=201) def subscribe(payload: NewsletterIn, db: Session = Depends(get_db)): email = str(payload.email).lower() subscriber = db.query(models.Subscriber).filter(models.Subscriber.email == email).first() if subscriber is not None: if not subscriber.is_active: subscriber.is_active = True db.commit() db.refresh(subscriber) return subscriber subscriber = models.Subscriber(email=email) db.add(subscriber) db.commit() db.refresh(subscriber) return subscriber