Automated Action 771ee5214f Implement LinkedIn-based church management system with FastAPI
- Complete FastAPI application with authentication and JWT tokens
- SQLite database with SQLAlchemy ORM and Alembic migrations
- User management with profile features and search functionality
- LinkedIn-style networking with connection requests and acceptance
- Social features: posts, likes, comments, announcements, prayer requests
- Event management with registration system and capacity limits
- RESTful API endpoints for all features with proper authorization
- Comprehensive documentation and setup instructions

Key Features:
- JWT-based authentication with bcrypt password hashing
- User profiles with bio, position, contact information
- Connection system for church member networking
- Community feed with post interactions
- Event creation, registration, and attendance tracking
- Admin role-based permissions
- Health check endpoint and API documentation

Environment Variables Required:
- SECRET_KEY: JWT secret key for token generation
2025-07-01 12:28:10 +00:00

55 lines
1.2 KiB
Python

from pydantic import BaseModel
from datetime import datetime
from typing import Optional
class EventBase(BaseModel):
title: str
description: Optional[str] = None
location: Optional[str] = None
start_date: datetime
end_date: Optional[datetime] = None
max_attendees: Optional[int] = None
is_public: bool = True
image_url: Optional[str] = None
class EventCreate(EventBase):
pass
class EventUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
location: Optional[str] = None
start_date: Optional[datetime] = None
end_date: Optional[datetime] = None
max_attendees: Optional[int] = None
is_public: Optional[bool] = None
image_url: Optional[str] = None
class EventResponse(EventBase):
id: int
created_by: int
created_at: datetime
updated_at: datetime
creator_name: Optional[str] = None
registered_count: int = 0
is_registered: bool = False
class Config:
from_attributes = True
class EventRegistrationResponse(BaseModel):
id: int
event_id: int
user_id: int
status: str
registered_at: datetime
user_name: Optional[str] = None
class Config:
from_attributes = True