""" Accessibility Page Seeder Seeds the database with comprehensive accessibility information """ import json import sys from pathlib import Path from datetime import datetime, timezone # Add parent directory to path to allow importing from src sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from sqlalchemy.orm import Session from src.shared.config.database import SessionLocal from src.shared.config.logging_config import get_logger from src.content.models.page_content import PageContent, PageType # Import all models to ensure relationships are loaded from src.models import * logger = get_logger(__name__) def get_accessibility_page_data(): """Generate comprehensive accessibility page data""" now = datetime.now(timezone.utc) return { 'page_type': PageType.ACCESSIBILITY, 'title': 'Accessibility', 'subtitle': 'Committed to Accessibility for All', 'description': 'We are committed to providing accessible facilities and services for all our guests. Learn about our accessibility features and accommodations.', 'content': """

Our Commitment to Accessibility

At Luxury Hotel & Resort, we are committed to ensuring that our facilities and services are accessible to all guests, including those with disabilities. We strive to comply with the Americans with Disabilities Act (ADA) and continuously work to improve accessibility throughout our property.

Accessible Accommodations

Accessible Guest Rooms

We offer several accessible guest rooms designed to meet ADA requirements, featuring:

Room Features

Public Areas & Facilities

Entrance & Lobby

Dining Facilities

Recreation & Fitness

Meeting & Event Spaces

Parking & Transportation

Service Animals

Service animals are welcome throughout our property. We comply with all applicable laws regarding service animals and do not charge additional fees for service animals.

Assistive Devices & Services

Available Upon Request

Website Accessibility

We are committed to making our website accessible to all users. Our website is designed to comply with WCAG 2.1 Level AA standards. If you encounter any accessibility barriers on our website, please contact us so we can address the issue.

Communication

Our staff is trained to communicate effectively with guests who have disabilities. We can provide information in alternative formats upon request, including:

Accessibility Concerns & Feedback

We welcome feedback from our guests regarding accessibility. If you have any concerns or suggestions for improvement, please contact us:

Reservations

When making a reservation, please inform us of any specific accessibility needs so we can ensure your room and services meet your requirements. Our reservations team is available 24/7 to assist you.

Ongoing Improvements

We are continuously working to improve accessibility throughout our property. We regularly review and update our facilities and services to better serve all our guests. If you have suggestions for improvements, we would love to hear from you.

Last Updated: {}

""".format(now.strftime('%B %d, %Y')), 'meta_title': 'Accessibility | Luxury Hotel & Resort - Accessible Facilities', 'meta_description': 'Learn about our accessible facilities and services. We are committed to providing accessible accommodations for all guests.', 'meta_keywords': 'accessibility, ADA, accessible hotel, wheelchair accessible, disability accommodations, accessible rooms', 'og_title': 'Accessibility - Luxury Hotel & Resort', 'og_description': 'Committed to accessibility for all. Learn about our accessible facilities and services.', 'og_image': 'https://images.unsplash.com/photo-1556761175-5973dc0f32e7?w=1200&h=630&fit=crop', 'canonical_url': 'https://luxuryhotel.com/accessibility', 'is_active': True, 'created_at': now, 'updated_at': now } def seed_accessibility_page(db: Session): """Seed accessibility page content into the database""" try: accessibility_data = get_accessibility_page_data() # Check if accessibility page content already exists existing_content = db.query(PageContent).filter(PageContent.page_type == PageType.ACCESSIBILITY).first() if existing_content: logger.info('Updating existing accessibility page content...') for key, value in accessibility_data.items(): if key not in ['id', 'page_type', 'created_at']: setattr(existing_content, key, value) existing_content.updated_at = datetime.now(timezone.utc) else: logger.info('Creating new accessibility page content...') accessibility_page = PageContent(**accessibility_data) db.add(accessibility_page) db.commit() logger.info('Accessibility page content seeded successfully!') except Exception as e: db.rollback() logger.error(f'Error seeding accessibility page: {str(e)}', exc_info=True) raise def main(): db = SessionLocal() try: seed_accessibility_page(db) except Exception as e: logger.error(f'Failed to seed accessibility page: {str(e)}', exc_info=True) sys.exit(1) finally: db.close() if __name__ == '__main__': main()