# All routes that require permissions
PERMISSIONS = {
    'admin;create',
    'admin;delete',
    'admin;update',
    'admin;list',
    'department;create',
    'department;list',
    'department;update',
    'department;delete',
    'exam_period;create',
    'exam_period;delete',
    'exam_period;list',
    'exam_period;update',
    'exam_activity;create',
    'exam_activity;delete',
    'exam_activity;list',
    'exam_activity;schedule',
    'exam_activity;schedule_direct',
    'exam_activity;update',
    'exam_activity;unschedule',
    'exam_requirement;create',
    'exam_requirement;delete',
    'exam_requirement;delivery_info',
    'exam_requirement;list',
    'exam_requirement;update',
    'exam_requirement;update_preceding_examination',
    'exam_requirement;update_same_location',
    'exam_requirement;update_same_time',
    'exam_requirement;update_student',
    'exam_requirement;update_student_v2',
    'exam_requirement;update_unavailability',
    'import;table',
    'suitability;create',
    'suitability;delete',
    'suitability;list',
    'suitability;update',
    'invigilator;create',
    'invigilator;list',
    'invigilator;update',
    'invigilator;delete',
    'invigilator_role;create',
    'invigilator_role;delete',
    'invigilator_role;list',
    'invigilator_role;update',
    'location;create',
    'location;delete',
    'location;list',
    'location;update',
    'permission;list',
    'role;create',
    'role;delete',
    'role;list',
    'role;update',
    'session;generate',
    'session;delete',
    'session;list',
    'session;update',
    'session;assign_invigilator',
    'session;update_invigilator',
    'invigilator_setting;update',
    'invigilator_setting;update_v2',
    'session_start;create',
    'session_start;delete',
    'session_start;list',
    'session_start;update',
    'session;seat_assign',
    'session;seat_assign_clear',
    'session;seat_list',
    'staff;create',
    'staff;list',
    'staff;update',
    'staff;delete',
    'tag;create',
    'tag;update',
    'tag;delete',
    'tag;list',
    'zone;create',
    'zone;list',
    'zone;update',
    'zone;delete',
    'student_group;create',
    'student_group;list',
    'student_group;update',
    'student_group;delete',
    'pos;create',
    'pos;delete',
    'pos;list',
    'pos;update',
    'student;create',
    'student;delete',
    'student;list',
    'student;timetable',
    'student;update',

}

# Routes that are public (no permission check needed)
NO_PERMISSION = [
    "admin;rules",
    "dashboard;info",
    "change_password",
    "exam_activity;info",
    "exam_activity;rules",
    "department;rules",
    "exam_period;rules",
    "exam_requirement;rules",
    "exam_requirement;update_preceding_examination_rules",
    "exam_requirement;update_same_location_rules",
    "exam_requirement;update_same_time_rules",
    "exam_requirement;update_student_rules",
    "exam_requirement;update_unavailability_rules",
    "import;get_information",
    "suitability;rules",
    'invigilator_role;rules',
    "info",
    "invigilator;rules",
    "invigilator_setting;rules",
    "invigilator_setting;rules_v2",
    "location;rules",
    "login",
    "logout",
    'pos;rules',
    "register",
    "role;rules",
    'session;rules',
    'session;update_invigilator_rules',
    "session_start;rules",
    "staff;rules",
    'student;rules',
    'student;timetable_rules',
    'student_group;rules',
    "tag;rules",
    "zone;rules",
]