type Rstr = &'static str;

pub const AUTH_LOGIN: Rstr      = "/login";             // requires @id @secret

pub const META: Rstr            = "/meta";              // @ perms none @ requires JWT however
pub const INVITE_CREATE: Rstr   = "/invite/create";     // @ perms::CREATE_INVITE
pub const INVITE_JOIN: Rstr     = "/join";              // @ none for new accounts

pub const CHANNELS_LIST: Rstr   = "/channels/list";     // requires none
pub const CHANNELS_CREATE: Rstr = "/channels/create";   // requires @name @kind perms::CREATE_CHANNEl
pub const CHANNELS_DELETE: Rstr = "/channels/delete";   // requires @name perms::DELETE_CHANNEL

pub const MESSAGE_SEND: Rstr    = "/message/send";      // requires @content perms::MESSAGE_SEND
pub const MESSAGE_TIME_RANGE: Rstr  = "/message/get_range";      // requires @channel(id) @start-time @end-time
pub const MESSAGE_FROM_ID: Rstr = "/message/from_id";   // requires @channel(id) requires @start(id) @<optional>limit(1..1000)

pub const GET_ONLINE_MEMBERS: Rstr = "/members/get_online";


// ADMIN ROUTES
pub const SET_PERMS_BY_ADMIN: Rstr = "/admin/setpermisions";    // @requires perms::ADMIN
pub const SET_NEW_ADMIN: Rstr      = "/owner/newadmin";         // @requiers: owner perms

pub fn is_open(path: &str) -> bool {
    return path.starts_with("/join") || path.starts_with("/meta");
}

