Add Facebook Writer API with models, routers, and migration summary
Co-authored-by: ajay.calsoft <ajay.calsoft@gmail.com>
This commit is contained in:
61
backend/api/facebook_writer/models/event_models.py
Normal file
61
backend/api/facebook_writer/models/event_models.py
Normal 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")
|
||||
Reference in New Issue
Block a user