from app.models.enums import ActivityStatus


ALLOWED_ACTIVITY_TRANSITIONS = {
    ActivityStatus.DRAFT: {ActivityStatus.UNDER_REVIEW},
    ActivityStatus.UNDER_REVIEW: {ActivityStatus.DRAFT, ActivityStatus.APPROVED},
    ActivityStatus.APPROVED: {ActivityStatus.PUBLISHED},
    ActivityStatus.PUBLISHED: {ActivityStatus.REGISTRATION_CLOSED},
    ActivityStatus.REGISTRATION_CLOSED: {ActivityStatus.COMPLETED},
    ActivityStatus.COMPLETED: {ActivityStatus.ARCHIVED},
    ActivityStatus.ARCHIVED: set(),
}


def can_transition_activity(current_status, new_status):
    return new_status in ALLOWED_ACTIVITY_TRANSITIONS.get(current_status, set())
