Purpose
Define a unified Event model to represent time-based activities across Campus sub-apps. The model must support recurrence, participation, visibility rules, and source attribution—while remaining composable across use cases.
Scope
A model represents:
- a single occurrence
- a describable occurrence taking place at a location (physical or online)
- datetime range (time optional; may be specified as full day)
Excludes:
- multiple occurrences
- participants
Deliverables
Conventions
- use
campus.common.utils.utc_time for handling timestamps, campus.common.utils.uid for UIDs
- use
campus.storage for accessing storage (table interface recommended)
- use
campus.common.errors.api_errors for handling errors
Development
- Work in a separate PR branch with
weekly branch as source
- PR to
weekly; make small PRs
Purpose
Define a unified
Eventmodel to represent time-based activities across Campus sub-apps. The model must support recurrence, participation, visibility rules, and source attribution—while remaining composable across use cases.Scope
A model represents:
Excludes:
Deliverables
eventsroute blueprint with view functions for working with eventsEventmodel with methods to be used in view functionConventions
campus.common.utils.utc_timefor handling timestamps,campus.common.utils.uidfor UIDscampus.storagefor accessing storage (table interface recommended)campus.common.errors.api_errorsfor handling errorsDevelopment
weeklybranch as sourceweekly; make small PRs