"""Sports Center event type contracts (publish-only) — Phase 9.0."""
from __future__ import annotations

import enum


class SportsCenterEventType(str, enum.Enum):
    # Contract names requested for Phase 9.0 (namespaced)
    MEMBER_CREATED = "sports_center.member.created"
    MEMBERSHIP_CREATED = "sports_center.membership.created"
    COACH_CREATED = "sports_center.coach.created"
    FACILITY_CREATED = "sports_center.facility.created"
    DEVICE_CONNECTED = "sports_center.device.connected"
    DEVICE_DISCONNECTED = "sports_center.device.disconnected"
    ATTENDANCE_PROVIDER_CHANGED = "sports_center.attendance.provider.changed"
    LOCKER_ASSIGNED = "sports_center.locker.assigned"
    LOCKER_RELEASED = "sports_center.locker.released"

    # Supporting foundation events
    SPORTS_CENTER_CREATED = "sports_center.sports_center.created"
    SPORTS_CENTER_UPDATED = "sports_center.sports_center.updated"
    BRANCH_CREATED = "sports_center.branch.created"
    BRANCH_UPDATED = "sports_center.branch.updated"
    SPORT_CREATED = "sports_center.sport.created"
    MEMBERSHIP_TYPE_CREATED = "sports_center.membership_type.created"
    MEMBERSHIP_UPDATED = "sports_center.membership.updated"
    COACH_UPDATED = "sports_center.coach.updated"
    FACILITY_UPDATED = "sports_center.facility.updated"
    DEVICE_CREATED = "sports_center.device.created"
    DEVICE_UPDATED = "sports_center.device.updated"
    DEVICE_PROVIDER_CREATED = "sports_center.device_provider.created"
    ATTENDANCE_GATEWAY_CREATED = "sports_center.attendance_gateway.created"
    ATTENDANCE_GATEWAY_UPDATED = "sports_center.attendance_gateway.updated"
    CONFIGURATION_CREATED = "sports_center.configuration.created"
    CONFIGURATION_UPDATED = "sports_center.configuration.updated"
    SPORTS_EVENT_CREATED = "sports_center.sports_event.created"
    SETTING_UPSERTED = "sports_center.setting.upserted"

    # Phase 9.1 — Membership Catalog
    SPORT_CATEGORY_CREATED = "sports_center.sport_category.created"
    SPORT_CATEGORY_UPDATED = "sports_center.sport_category.updated"
    AGE_GROUP_CREATED = "sports_center.age_group.created"
    AGE_GROUP_UPDATED = "sports_center.age_group.updated"
    PRICING_MODEL_CREATED = "sports_center.pricing_model.created"
    PRICING_MODEL_UPDATED = "sports_center.pricing_model.updated"
    MEMBERSHIP_PACKAGE_CREATED = "sports_center.membership_package.created"
    MEMBERSHIP_PACKAGE_UPDATED = "sports_center.membership_package.updated"
    MEMBERSHIP_PLAN_CREATED = "sports_center.membership_plan.created"
    MEMBERSHIP_PLAN_UPDATED = "sports_center.membership_plan.updated"
    MEMBERSHIP_RULE_CREATED = "sports_center.membership_rule.created"
    MEMBERSHIP_RULE_UPDATED = "sports_center.membership_rule.updated"
    RENEWAL_POLICY_CREATED = "sports_center.renewal_policy.created"
    RENEWAL_POLICY_UPDATED = "sports_center.renewal_policy.updated"
    FREEZING_RULE_CREATED = "sports_center.freezing_rule.created"
    FREEZING_RULE_UPDATED = "sports_center.freezing_rule.updated"
    EXPIRATION_POLICY_CREATED = "sports_center.expiration_policy.created"
    EXPIRATION_POLICY_UPDATED = "sports_center.expiration_policy.updated"
    MEMBERSHIP_TYPE_UPDATED = "sports_center.membership_type.updated"

    # Phase 9.2 — Member Management
    MEMBER_UPDATED = "sports_center.member.updated"
    MEMBERSHIP_ASSIGNED = "sports_center.membership.assigned"
    MEMBERSHIP_STATUS_CHANGED = "sports_center.membership.status_changed"
    MEMBERSHIP_FROZEN = "sports_center.membership.frozen"
    MEMBERSHIP_UNFROZEN = "sports_center.membership.unfrozen"
    FAMILY_MEMBER_CREATED = "sports_center.family_member.created"
    EMERGENCY_CONTACT_CREATED = "sports_center.emergency_contact.created"
    MEDICAL_INFORMATION_UPSERTED = "sports_center.medical_information.upserted"
    MEMBERSHIP_CARD_ISSUED = "sports_center.membership_card.issued"
    MEMBERSHIP_CARD_REVOKED = "sports_center.membership_card.revoked"
    DIGITAL_MEMBERSHIP_ISSUED = "sports_center.digital_membership.issued"
    WAIVER_CREATED = "sports_center.waiver.created"
    WAIVER_SIGNED = "sports_center.waiver.signed"
    MEMBER_DOCUMENT_ATTACHED = "sports_center.member_document.attached"

    # Phase 9.3 — Coach & Staff Management
    STAFF_CERTIFICATE_CREATED = "sports_center.staff_certificate.created"
    STAFF_CERTIFICATE_UPDATED = "sports_center.staff_certificate.updated"
    STAFF_SKILL_CREATED = "sports_center.staff_skill.created"
    STAFF_WORKING_HOURS_CREATED = "sports_center.staff_working_hours.created"
    STAFF_AVAILABILITY_CHANGED = "sports_center.staff_availability.changed"
    STAFF_ASSIGNMENT_CREATED = "sports_center.staff_assignment.created"

    # Phase 9.4 — Scheduling & Booking
    SESSION_CREATED = "sports_center.session.created"
    SESSION_UPDATED = "sports_center.session.updated"
    BOOKING_CREATED = "sports_center.booking.created"
    BOOKING_CONFIRMED = "sports_center.booking.confirmed"
    BOOKING_CANCELLED = "sports_center.booking.cancelled"
    WAITING_LIST_JOINED = "sports_center.waiting_list.joined"
    WAITING_LIST_PROMOTED = "sports_center.waiting_list.promoted"
    EQUIPMENT_CREATED = "sports_center.equipment.created"

    # Phase 9.5 — Attendance & Access Control
    ATTENDANCE_RECORDED = "sports_center.attendance.recorded"
    CHECK_IN_COMPLETED = "sports_center.check_in.completed"
    CHECK_OUT_COMPLETED = "sports_center.check_out.completed"
    ACCESS_DENIED = "sports_center.access.denied"
    ACCESS_GRANTED = "sports_center.access.granted"

    # Phase 9.6 — Training Management
    TRAINING_PROGRAM_CREATED = "sports_center.training_program.created"
    WORKOUT_PLAN_CREATED = "sports_center.workout_plan.created"
    WORKOUT_ASSIGNED = "sports_center.workout.assigned"
    TRAINING_GOAL_CREATED = "sports_center.training_goal.created"
    MEASUREMENT_RECORDED = "sports_center.measurement.recorded"
    PROGRESS_RECORDED = "sports_center.progress.recorded"
    ASSESSMENT_COMPLETED = "sports_center.assessment.completed"

    # Phase 9.7 — Competition & Event Management
    COMPETITION_CREATED = "sports_center.competition.created"
    COMPETITION_UPDATED = "sports_center.competition.updated"
    COMPETITION_TEAM_CREATED = "sports_center.competition_team.created"
    COMPETITION_REGISTRATION_CREATED = "sports_center.competition.registration.created"
    COMPETITION_REGISTRATION_CONFIRMED = "sports_center.competition.registration.confirmed"
    COMPETITION_MATCH_SCHEDULED = "sports_center.competition.match.scheduled"
    COMPETITION_RESULT_RECORDED = "sports_center.competition.result.recorded"
    COMPETITION_MEDAL_AWARDED = "sports_center.competition.medal.awarded"
    COMPETITION_CERTIFICATE_ISSUED = "sports_center.competition.certificate.issued"
