# Events - Presentation Management Module

This module provides the user interface for managing the core components of an event, with a focus on sessions, presentations, and associated files. It allows event organizers to structure the event program, manage presentation details, and handle related content.

This directory (`src/routes/events`) contains the Svelte components and pages that constitute the user interface for this feature.

## Features

- **Event Program Structure:** The UI allows for viewing and managing the hierarchy of an event, including its sessions and the presentations within those sessions.
- **Session Management:** View lists of sessions for an event, wrapped in various UI components for different display needs (`li`, `tbl`).
- **Presentation Management:** View lists of presentations associated with sessions.
- **File Management:** A key feature is the ability to manage event-related files. This includes uploading new files and viewing lists of existing files associated with the event.

## UI Components & Pages

- `+page.svelte`: The main landing page that displays a list of all events.
- `[event_id]/+page.svelte`: The main page for a single event, which serves as the hub for managing its details.
- `ae_comp__event_session_obj_li.svelte` / `..._tbl.svelte`: Components that render lists of event sessions in different formats.
- `ae_comp__event_presentation_obj_li.svelte`: A component that renders a list of presentations for a session.
- `ae_comp__event_file_obj_tbl.svelte`: A component for displaying a table of files related to the event.
- `ae_comp__event_files_upload.svelte`: A component providing the UI for uploading files.
- `ae_comp__events_menu_nav.svelte` / `..._opts.svelte`: Navigation and option menus specific to the events module.

## Core Logic & Data Models

The underlying data models, API interactions, and database logic for this module are located in `src/lib/ae_events/`. The key data models include:

- **`Event`**: The top-level object for an event.
- **`EventSession`**: Represents a session within an event.
- **`EventPresentation`**: Represents a presentation within a session.
- **`EventPresenter`**: Represents a speaker for a presentation.
- **`EventFile`**: Represents a file associated with any part of the event.
