73 lines
2.8 KiB
Python
73 lines
2.8 KiB
Python
from sqlalchemy.orm import Session
|
|
from ..models.models import MembershipTier, User, UserRole, EmailTemplate
|
|
from .security import get_password_hash
|
|
from datetime import datetime
|
|
|
|
|
|
def init_default_data(db: Session):
|
|
"""Initialize database with default data if empty"""
|
|
|
|
# Check if membership tiers exist
|
|
existing_tiers = db.query(MembershipTier).count()
|
|
if existing_tiers == 0:
|
|
print("Creating default membership tiers...")
|
|
default_tiers = [
|
|
MembershipTier(
|
|
name="Personal",
|
|
description="Basic membership for individual members",
|
|
annual_fee=5.00,
|
|
benefits="Access to member portal, meeting notifications, event participation",
|
|
is_active=True
|
|
),
|
|
MembershipTier(
|
|
name="Aircraft Owners",
|
|
description="Group membership for aircraft owners",
|
|
annual_fee=25.00,
|
|
benefits="All Personal benefits plus priority event registration, aircraft owner resources",
|
|
is_active=True
|
|
),
|
|
MembershipTier(
|
|
name="Corporate",
|
|
description="Corporate membership for businesses",
|
|
annual_fee=100.00,
|
|
benefits="All benefits plus corporate recognition, promotional opportunities, file access",
|
|
is_active=True
|
|
)
|
|
]
|
|
db.add_all(default_tiers)
|
|
db.commit()
|
|
print(f"✓ Created {len(default_tiers)} default membership tiers")
|
|
|
|
# Check if admin user exists
|
|
admin_exists = db.query(User).filter(User.email == "admin@swanseaairport.org").first()
|
|
if not admin_exists:
|
|
print("Creating default admin user...")
|
|
admin_user = User(
|
|
email="admin@swanseaairport.org",
|
|
hashed_password=get_password_hash("admin123"),
|
|
first_name="System",
|
|
last_name="Administrator",
|
|
role=UserRole.SUPER_ADMIN,
|
|
is_active=True
|
|
)
|
|
db.add(admin_user)
|
|
db.commit()
|
|
print("✓ Created default admin user (admin@swanseaairport.org / admin123)")
|
|
print(" ⚠️ Remember to change the admin password!")
|
|
|
|
# Check if email templates exist
|
|
existing_templates = db.query(EmailTemplate).count()
|
|
if existing_templates == 0:
|
|
print("Creating default email templates...")
|
|
from ..services.email_service import get_default_templates
|
|
default_templates_data = get_default_templates()
|
|
|
|
default_templates = []
|
|
for template_data in default_templates_data:
|
|
template = EmailTemplate(**template_data)
|
|
default_templates.append(template)
|
|
|
|
db.add_all(default_templates)
|
|
db.commit()
|
|
print(f"✓ Created {len(default_templates)} default email templates")
|