Add Facebook Writer API with models, routers, and migration summary

Co-authored-by: ajay.calsoft <ajay.calsoft@gmail.com>
This commit is contained in:
Cursor Agent
2025-08-27 15:49:19 +00:00
parent 6c72ef1a68
commit 40d33de1ab
53 changed files with 2972 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
"""Pydantic models for Facebook Event functionality."""
from typing import Optional, List, Dict, Any
from pydantic import BaseModel, Field
from enum import Enum
from datetime import datetime
class EventType(str, Enum):
"""Event type options."""
WORKSHOP = "Workshop"
WEBINAR = "Webinar"
CONFERENCE = "Conference"
NETWORKING = "Networking event"
PRODUCT_LAUNCH = "Product launch"
SALE_PROMOTION = "Sale/Promotion"
COMMUNITY = "Community event"
EDUCATION = "Educational event"
CUSTOM = "Custom"
class EventFormat(str, Enum):
"""Event format options."""
IN_PERSON = "In-person"
VIRTUAL = "Virtual"
HYBRID = "Hybrid"
class FacebookEventRequest(BaseModel):
"""Request model for Facebook event generation."""
event_name: str = Field(..., description="Name of the event")
event_type: EventType = Field(..., description="Type of event")
custom_event_type: Optional[str] = Field(None, description="Custom event type if 'Custom' is selected")
event_format: EventFormat = Field(..., description="Format of the event")
business_type: str = Field(..., description="Type of business hosting the event")
target_audience: str = Field(..., description="Target audience for the event")
event_date: Optional[str] = Field(None, description="Event date (YYYY-MM-DD format)")
event_time: Optional[str] = Field(None, description="Event time")
location: Optional[str] = Field(None, description="Event location (physical address or virtual platform)")
duration: Optional[str] = Field(None, description="Event duration")
key_benefits: Optional[str] = Field(None, description="Key benefits or highlights of attending")
speakers: Optional[str] = Field(None, description="Key speakers or presenters")
agenda: Optional[str] = Field(None, description="Brief agenda or schedule")
ticket_info: Optional[str] = Field(None, description="Ticket pricing and availability")
special_offers: Optional[str] = Field(None, description="Special offers or early bird discounts")
include: Optional[str] = Field(None, description="Additional elements to include")
avoid: Optional[str] = Field(None, description="Elements to avoid")
class FacebookEventResponse(BaseModel):
"""Response model for Facebook event generation."""
success: bool = Field(..., description="Whether the generation was successful")
event_title: Optional[str] = Field(None, description="Generated event title")
event_description: Optional[str] = Field(None, description="Generated event description")
short_description: Optional[str] = Field(None, description="Short version for social media")
key_highlights: Optional[List[str]] = Field(None, description="Key event highlights")
call_to_action: Optional[str] = Field(None, description="Call-to-action text")
hashtag_suggestions: Optional[List[str]] = Field(None, description="Hashtag suggestions")
promotion_tips: Optional[List[str]] = Field(None, description="Event promotion tips")
error: Optional[str] = Field(None, description="Error message if generation failed")
metadata: Optional[Dict[str, Any]] = Field(None, description="Additional metadata about the generation")