text: import { getCookie } from '../helpers/cookie'
  /*
   * ACTIONS
   */
  
  // Auth
  export const LOAD_USER_SUCCESS     = 'LOAD_USER_SUCCESS'
  export const LOAD_USER_FAILURE     = 'LOAD_USER_FAILURE'
  
  export const LOAD_USER_CREDENTIAL     = 'LOAD_USER_CREDENTIAL'
  export const LOAD_USER_CREDENTIAL_PENDING     = 'LOAD_USER_CREDENTIAL_PENDING'
  export const LOAD_USER_CREDENTIAL_SUCCESS     = 'LOAD_USER_CREDENTIAL_SUCCESS'
  export const LOAD_USER_CREDENTIAL_FAILURE     = 'LOAD_USER_CREDENTIAL_FAILURE'
  
  
  // Load organization configs
  export const LOAD_ORG_CONFIG_SUCCESS     = 'LOAD_ORG_CONFIG_SUCCESS'
  export const LOAD_ORG_CONFIG_FAILURE     = 'LOAD_ORG_CONFIG_FAILURE'
  
  // Notifications
  export const GET_NOTIFICATIONS_PENDING = 'GET_NOTIFICATIONS_PENDING'
  export const GET_NOTIFICATIONS_SUCCESS = 'GET_NOTIFICATIONS_SUCCESS'
  export const GET_NOTIFICATIONS_FAILURE = 'GET_NOTIFICATIONS_FAILURE'
  export const SET_NOTIFICATIONS_FILTER_BY = 'SET_NOTIFICATIONS_FILTER_BY'
  export const MARK_ALL_NOTIFICATIONS_READ = 'MARK_ALL_NOTIFICATIONS_READ'
  export const TOGGLE_NOTIFICATION_READ = 'TOGGLE_NOTIFICATION_READ'
  export const TOGGLE_NOTIFICATION_SEEN = 'TOGGLE_NOTIFICATION_SEEN'
  export const MARK_ALL_NOTIFICATIONS_SEEN = 'MARK_ALL_NOTIFICATIONS_SEEN'
  export const VIEW_OLDER_NOTIFICATIONS_SUCCESS = 'VIEW_OLDER_NOTIFICATIONS_SUCCESS'
  export const HIDE_OLDER_NOTIFICATIONS_SUCCESS = 'HIDE_OLDER_NOTIFICATIONS_SUCCESS'
  export const NOTIFICATIONS_PENDING = 'NOTIFICATIONS_PENDING'
  export const MARK_NOTIFICATIONS_READ = 'MARK_NOTIFICATIONS_READ'
  
  // Settings
  export const GET_SYSTEM_SETTINGS_PENDING = 'GET_SYSTEM_SETTINGS_PENDING'
  export const GET_SYSTEM_SETTINGS_SUCCESS = 'GET_SYSTEM_SETTINGS_SUCCESS'
  export const GET_SYSTEM_SETTINGS_FAILURE = 'GET_SYSTEM_SETTINGS_FAILURE'
  export const CHECK_EMAIL_AVAILABILITY_PENDING = 'CHECK_EMAIL_AVAILABILITY_PENDING'
  export const CHECK_EMAIL_AVAILABILITY_SUCCESS = 'CHECK_EMAIL_AVAILABILITY_SUCCESS'
  export const CHECK_EMAIL_AVAILABILITY_FAILURE = 'CHECK_EMAIL_AVAILABILITY_FAILURE'
  
  export const CHANGE_EMAIL_PENDING = 'CHANGE_EMAIL_PENDING'
  export const CHANGE_EMAIL_SUCCESS = 'CHANGE_EMAIL_SUCCESS'
  export const CHANGE_EMAIL_FAILURE = 'CHANGE_EMAIL_FAILURE'
  
  export const CHANGE_PASSWORD_PENDING = 'CHANGE_PASSWORD_PENDING'
  export const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS'
  export const CHANGE_PASSWORD_FAILURE = 'CHANGE_PASSWORD_FAILURE'
  
  export const RESET_PASSWORD_PENDING = 'RESET_PASSWORD_PENDING'
  export const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS'
  export const RESET_PASSWORD_FAILURE = 'RESET_PASSWORD_FAILURE'
  
  export const GET_NOTIFICATION_SETTINGS_PENDING = 'GET_NOTIFICATION_SETTINGS_PENDING'
  export const GET_NOTIFICATION_SETTINGS_SUCCESS = 'GET_NOTIFICATION_SETTINGS_SUCCESS'
  export const GET_NOTIFICATION_SETTINGS_FAILURE = 'GET_NOTIFICATION_SETTINGS_FAILURE'
  export const SAVE_NOTIFICATION_SETTINGS_PENDING = 'SAVE_NOTIFICATION_SETTINGS_PENDING'
  export const SAVE_NOTIFICATION_SETTINGS_SUCCESS = 'SAVE_NOTIFICATION_SETTINGS_SUCCESS'
  export const SAVE_NOTIFICATION_SETTINGS_FAILURE = 'SAVE_NOTIFICATION_SETTINGS_FAILURE'
  
  export const GET_PROFILE_SETTINGS_PENDING = 'GET_PROFILE_SETTINGS_PENDING'
  export const GET_PROFILE_SETTINGS_SUCCESS = 'GET_PROFILE_SETTINGS_SUCCESS'
  export const GET_PROFILE_SETTINGS_RESET = 'GET_PROFILE_SETTINGS_RESET'
  export const GET_PROFILE_SETTINGS_FAILURE = 'GET_PROFILE_SETTINGS_FAILURE'
  export const SAVE_PROFILE_SETTINGS_PENDING = 'SAVE_PROFILE_SETTINGS_PENDING'
  export const SAVE_PROFILE_SETTINGS_SUCCESS = 'SAVE_PROFILE_SETTINGS_SUCCESS'
  export const SAVE_PROFILE_SETTINGS_FAILURE = 'SAVE_PROFILE_SETTINGS_FAILURE'
  export const CLEAR_PROFILE_SETTINGS_PHOTO = 'CLEAR_PROFILE_SETTINGS_PHOTO'
  export const SAVE_PROFILE_PHOTO_SUCCESS = 'SAVE_PROFILE_PHOTO_SUCCESS'
  export const SAVE_PROFILE_PHOTO_FAILURE = 'SAVE_PROFILE_PHOTO_FAILURE'
  export const SAVE_PROFILE_PHOTO_PENDING = 'SAVE_PROFILE_PHOTO_PENDING'
  
  // Search Term
  export const SET_SEARCH_TERM   = 'SET_SEARCH_TERM'
  export const SET_SEARCH_TAG    = 'SET_SEARCH_TAG'
  export const RESET_SEARCH_TERM = 'RESET_SEARCH_TERM'
  
  // Project Search
  export const CLEAR_PROJECT_SEARCH       = 'CLEAR_PROJECT_SEARCH'
  export const PROJECT_SEARCH             = 'PROJECT_SEARCH'
  export const PROJECT_SEARCH_FAILURE     = 'PROJECT_SEARCH_FAILURE'
  export const PROJECT_SEARCH_SUCCESS     = 'PROJECT_SEARCH_SUCCESS'
  export const PROJECT_SEARCH_PENDING     = 'PROJECT_SEARCH_PENDING'
  export const LOAD_MORE_PROJECTS         = 'LOAD_MORE_PROJECTS'
  export const GET_PROJECTS               = 'GET_PROJECTS'
  export const GET_PROJECTS_PENDING       = 'GET_PROJECTS_PENDING'
  export const GET_PROJECTS_SUCCESS       = 'GET_PROJECTS_SUCCESS'
  export const GET_PROJECTS_FAILURE       = 'GET_PROJECTS_FAILURE'
  export const SET_PROJECTS_SEARCH_CRITERIA = 'SET_PROJECTS_SEARCH_CRITERIA'
  export const SET_PROJECTS_INFINITE_AUTOLOAD = 'SET_PROJECTS_INFINITE_AUTOLOAD'
  export const SET_PROJECTS_LIST_VIEW = 'SET_PROJECTS_LIST_VIEW'
  
  // milestones
  export const CREATE_TIMELINE_MILESTONE = 'CREATE_TIMELINE_MILESTONE'
  export const CREATE_TIMELINE_MILESTONE_SUCCESS = 'CREATE_TIMELINE_MILESTONE_SUCCESS'
  export const CREATE_TIMELINE_MILESTONE_FAILURE = 'CREATE_TIMELINE_MILESTONE_FAILURE'
  export const CREATE_TIMELINE_MILESTONE_PENDING = 'CREATE_TIMELINE_MILESTONE_PENDING'
  
  // project phases and timeline and milestones
  export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES             = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES'
  export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_FAILURE     = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_FAILURE'
  export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_SUCCESS     = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_SUCCESS'
  export const CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_PENDING     = 'CREATE_PROJECT_PHASE_TIMELINE_MILESTONES_PENDING'
  
  
  // Delete project
  export const DELETE_PROJECT             = 'DELETE_PROJECT'
  export const DELETE_PROJECT_PENDING     = 'DELETE_PROJECT_PENDING'
  export const DELETE_PROJECT_SUCCESS     = 'DELETE_PROJECT_SUCCESS'
  export const DELETE_PROJECT_FAILURE     = 'DELETE_PROJECT_FAILURE'
  
  // Project Search Suggestions (Typeahead)
  export const CLEAR_PROJECT_SUGGESTIONS_SEARCH   = 'CLEAR_PROJECT_SUGGESTIONS_SEARCH'
  export const PROJECT_SUGGESTIONS_SEARCH_FAILURE     = 'PROJECT_SUGGESTIONS_SEARCH_FAILURE'
  export const PROJECT_SUGGESTIONS_SEARCH_SUCCESS     = 'PROJECT_SUGGESTIONS_SEARCH_SUCCESS'
  
  // Project Dashboard
  export const LOAD_PROJECT_DASHBOARD             = 'LOAD_PROJECT_DASHBOARD'
  export const LOAD_PROJECT_DASHBOARD_PENDING     = 'LOAD_PROJECT_DASHBOARD_PENDING'
  export const LOAD_PROJECT_DASHBOARD_FAILURE     = 'LOAD_PROJECT_DASHBOARD_FAILURE'
  export const LOAD_PROJECT_DASHBOARD_SUCCESS     = 'LOAD_PROJECT_DASHBOARD_SUCCESS'
  
  // Direct Project Data
  export const LOAD_ADDITIONAL_PROJECT_DATA             = 'LOAD_ADDITIONAL_PROJECT_DATA'
  export const LOAD_ADDITIONAL_PROJECT_DATA_PENDING     = 'LOAD_ADDITIONAL_PROJECT_DATA_PENDING'
  export const LOAD_ADDITIONAL_PROJECT_DATA_FAILURE     = 'LOAD_ADDITIONAL_PROJECT_DATA_FAILURE'
  export const LOAD_ADDITIONAL_PROJECT_DATA_SUCCESS     = 'LOAD_ADDITIONAL_PROJECT_DATA_SUCCESS'
  
  // Project Topics Load
  export const LOAD_PROJECT_FEEDS                = 'LOAD_PROJECT_FEEDS'
  export const LOAD_PROJECT_FEEDS_PENDING        = 'LOAD_PROJECT_FEEDS_PENDING'
  export const LOAD_PROJECT_FEEDS_FAILURE        = 'LOAD_PROJECT_FEEDS_FAILURE'
  export const LOAD_PROJECT_FEEDS_SUCCESS        = 'LOAD_PROJECT_FEEDS_SUCCESS'
  
  // Topics Load
  export const LOAD_TOPIC                = 'LOAD_TOPIC'
  export const LOAD_TOPIC_PENDING        = 'LOAD_TOPIC_PENDING'
  export const LOAD_TOPIC_FAILURE        = 'LOAD_TOPIC_FAILURE'
  export const LOAD_TOPIC_SUCCESS        = 'LOAD_TOPIC_SUCCESS'
  
  // project topics load with members
  export const LOAD_PROJECT_FEEDS_MEMBERS              = 'LOAD_PROJECT_FEEDS_MEMBERS'
  export const LOAD_PROJECT_FEEDS_MEMBERS_PENDING      = 'LOAD_PROJECT_FEEDS_MEMBERS_PENDING'
  export const LOAD_PROJECT_FEEDS_MEMBERS_SUCCESS      = 'LOAD_PROJECT_FEEDS_MEMBERS_SUCCESS'
  export const LOAD_PROJECT_FEEDS_MEMBERS_FAILURE      = 'LOAD_PROJECT_FEEDS_MEMBERS_FAILURE'
  
  // Topics load with members
  export const LOAD_TOPIC_MEMBERS              = 'LOAD_TOPIC_MEMBERS'
  export const LOAD_TOPIC_MEMBERS_PENDING      = 'LOAD_TOPIC_MEMBERS_PENDING'
  export const LOAD_TOPIC_MEMBERS_SUCCESS      = 'LOAD_TOPIC_MEMBERS_SUCCESS'
  export const LOAD_TOPIC_MEMBERS_FAILURE      = 'LOAD_TOPIC_MEMBERS_FAILURE'
  
  // Create Project Topic
  export const CREATE_PROJECT_FEED               = 'CREATE_PROJECT_FEED'
  export const CREATE_PROJECT_FEED_PENDING       = 'CREATE_PROJECT_FEED_PENDING'
  export const CREATE_PROJECT_FEED_SUCCESS       = 'CREATE_PROJECT_FEED_SUCCESS'
  export const CREATE_PROJECT_FEED_FAILURE       = 'CREATE_PROJECT_FEED_FAILURE'
  
  // Save Project Topic
  export const SAVE_PROJECT_FEED          = 'SAVE_PROJECT_FEED'
  export const SAVE_PROJECT_FEED_PENDING  = 'SAVE_PROJECT_FEED_PENDING'
  export const SAVE_PROJECT_FEED_SUCCESS  = 'SAVE_PROJECT_FEED_SUCCESS'
  export const SAVE_PROJECT_FEED_FAILURE  = 'SAVE_PROJECT_FEED_FAILURE'
  
  // Delete Project Topic
  export const DELETE_PROJECT_FEED          = 'DELETE_PROJECT_FEED'
  export const DELETE_PROJECT_FEED_PENDING  = 'DELETE_PROJECT_FEED_PENDING'
  export const DELETE_PROJECT_FEED_SUCCESS  = 'DELETE_PROJECT_FEED_SUCCESS'
  export const DELETE_PROJECT_FEED_FAILURE  = 'DELETE_PROJECT_FEED_FAILURE'
  
  export const LOAD_PROJECT_FEED_COMMENTS                   = 'LOAD_PROJECT_FEED_COMMENTS'
  export const LOAD_PROJECT_FEED_COMMENTS_PENDING           = 'LOAD_PROJECT_FEED_COMMENTS_PENDING'
  export const LOAD_PROJECT_FEED_COMMENTS_SUCCESS           = 'LOAD_PROJECT_FEED_COMMENTS_SUCCESS'
  export const LOAD_PROJECT_FEED_COMMENTS_FAILURE           = 'LOAD_PROJECT_FEED_COMMENTS_FAILURE'
  
  // Create Topic Post
  export const CREATE_PROJECT_FEED_COMMENT          = 'CREATE_PROJECT_FEED_COMMENT'
  export const CREATE_PROJECT_FEED_COMMENT_PENDING  = 'CREATE_PROJECT_FEED_COMMENT_PENDING'
  export const CREATE_PROJECT_FEED_COMMENT_SUCCESS  = 'CREATE_PROJECT_FEED_COMMENT_SUCCESS'
  export const CREATE_PROJECT_FEED_COMMENT_FAILURE  = 'CREATE_PROJECT_FEED_COMMENT_FAILURE'
  
  // Create Topic Post
  export const CREATE_TOPIC_POST          = 'CREATE_TOPIC_POST'
  export const CREATE_TOPIC_POST_PENDING  = 'CREATE_TOPIC_POST_PENDING'
  export const CREATE_TOPIC_POST_SUCCESS  = 'CREATE_TOPIC_POST_SUCCESS'
  export const CREATE_TOPIC_POST_FAILURE  = 'CREATE_TOPIC_POST_FAILURE'
  
  // Save Topic Post
  export const SAVE_PROJECT_FEED_COMMENT          = 'SAVE_PROJECT_FEED_COMMENT'
  export const SAVE_PROJECT_FEED_COMMENT_PENDING  = 'SAVE_PROJECT_FEED_COMMENT_PENDING'
  export const SAVE_PROJECT_FEED_COMMENT_SUCCESS  = 'SAVE_PROJECT_FEED_COMMENT_SUCCESS'
  export const SAVE_PROJECT_FEED_COMMENT_FAILURE  = 'SAVE_PROJECT_FEED_COMMENT_FAILURE'
  
  // Save Topic Post
  export const UPDATE_TOPIC_POST          = 'UPDATE_TOPIC_POST'
  export const UPDATE_TOPIC_POST_PENDING  = 'UPDATE_TOPIC_POST_PENDING'
  export const UPDATE_TOPIC_POST_SUCCESS  = 'UPDATE_TOPIC_POST_SUCCESS'
  export const UPDATE_TOPIC_POST_FAILURE  = 'UPDATE_TOPIC_POST_FAILURE'
  
  // Get Topic Post
  export const GET_PROJECT_FEED_COMMENT          = 'GET_PROJECT_FEED_COMMENT'
  export const GET_PROJECT_FEED_COMMENT_PENDING  = 'GET_PROJECT_FEED_COMMENT_PENDING'
  export const GET_PROJECT_FEED_COMMENT_SUCCESS  = 'GET_PROJECT_FEED_COMMENT_SUCCESS'
  export const GET_PROJECT_FEED_COMMENT_FAILURE  = 'GET_PROJECT_FEED_COMMENT_FAILURE'
  
  // Delete Topic Post
  export const DELETE_PROJECT_FEED_COMMENT          = 'DELETE_PROJECT_FEED_COMMENT'
  export const DELETE_PROJECT_FEED_COMMENT_PENDING  = 'DELETE_PROJECT_FEED_COMMENT_PENDING'
  export const DELETE_PROJECT_FEED_COMMENT_SUCCESS  = 'DELETE_PROJECT_FEED_COMMENT_SUCCESS'
  export const DELETE_PROJECT_FEED_COMMENT_FAILURE  = 'DELETE_PROJECT_FEED_COMMENT_FAILURE'
  
  // Delete Topic Post
  export const DELETE_TOPIC_POST          = 'DELETE_TOPIC_POST'
  export const DELETE_TOPIC_POST_PENDING  = 'DELETE_TOPIC_POST_PENDING'
  export const DELETE_TOPIC_POST_SUCCESS  = 'DELETE_TOPIC_POST_SUCCESS'
  export const DELETE_TOPIC_POST_FAILURE  = 'DELETE_TOPIC_POST_FAILURE'
  
  export const EXPAND_PROJECT_PHASE = 'EXPAND_PROJECT_PHASE'
  export const COLLAPSE_PROJECT_PHASE = 'COLLAPSE_PROJECT_PHASE'
  export const COLLAPSE_ALL_PROJECT_PHASES = 'COLLAPSE_ALL_PROJECT_PHASES'
  
  // Project Sort
  export const PROJECT_SORT             = 'PROJECT_SORT'
  export const PROJECT_SORT_FAILURE     = 'PROJECT_SORT_FAILURE'
  export const PROJECT_SORT_SUCCESS     = 'PROJECT_SORT_SUCCESS'
  export const PROJECT_SORT_PENDING     = 'PROJECT_SORT_PENDING'
  
  
  // Project Load
  export const LOAD_PROJECT             = 'LOAD_PROJECT'
  export const LOAD_PROJECT_PENDING     = 'LOAD_PROJECT_PENDING'
  export const LOAD_PROJECT_FAILURE     = 'LOAD_PROJECT_FAILURE'
  export const LOAD_PROJECT_SUCCESS     = 'LOAD_PROJECT_SUCCESS'
  
  export const LOAD_PROJECT_MEMBER_INVITE  = 'LOAD_PROJECT_MEMBER_INVITE'
  export const LOAD_PROJECT_MEMBER_INVITE_PENDING  = 'LOAD_PROJECT_MEMBER_INVITE_PENDING'
  export const LOAD_PROJECT_MEMBER_INVITE_FAILURE  = 'LOAD_PROJECT_MEMBER_INVITE_FAILURE'
  export const LOAD_PROJECT_MEMBER_INVITE_SUCCESS  = 'LOAD_PROJECT_MEMBER_INVITE_SUCCESS'
  
  export const CREATE_PROJECT           = 'CREATE_PROJECT'
  export const CREATE_PROJECT_PENDING   = 'CREATE_PROJECT_PENDING'
  export const CREATE_PROJECT_SUCCESS   = 'CREATE_PROJECT_SUCCESS'
  export const CREATE_PROJECT_FAILURE   = 'CREATE_PROJECT_FAILURE'
  
  export const UPDATE_PROJECT           = 'UPDATE_PROJECT'
  export const UPDATE_PROJECT_PENDING   = 'UPDATE_PROJECT_PENDING'
  export const UPDATE_PROJECT_SUCCESS   = 'UPDATE_PROJECT_SUCCESS'
  export const UPDATE_PROJECT_FAILURE   = 'UPDATE_PROJECT_FAILURE'
  
  export const CREATE_SCOPE_CHANGE_REQUEST = 'CREATE_SCOPE_CHANGE_REQUEST'
  export const CREATE_SCOPE_CHANGE_REQUEST_PENDING = 'CREATE_SCOPE_CHANGE_REQUEST_PENDING'
  export const CREATE_SCOPE_CHANGE_REQUEST_SUCCESS = 'CREATE_SCOPE_CHANGE_REQUEST_SUCCESS'
  export const CREATE_SCOPE_CHANGE_REQUEST_FAILURE = 'CREATE_SCOPE_CHANGE_REQUEST_FAILURE'
  
  export const APPROVE_SCOPE_CHANGE = 'APPROVE_SCOPE_CHANGE'
  export const APPROVE_SCOPE_CHANGE_PENDING = 'APPROVE_SCOPE_CHANGE_PENDING'
  export const APPROVE_SCOPE_CHANGE_SUCCESS = 'APPROVE_SCOPE_CHANGE_SUCCESS'
  export const APPROVE_SCOPE_CHANGE_FAILURE = 'APPROVE_SCOPE_CHANGE_FAILURE'
  
  export const REJECT_SCOPE_CHANGE = 'REJECT_SCOPE_CHANGE'
  export const REJECT_SCOPE_CHANGE_PENDING = 'REJECT_SCOPE_CHANGE_PENDING'
  export const REJECT_SCOPE_CHANGE_SUCCESS = 'REJECT_SCOPE_CHANGE_SUCCESS'
  export const REJECT_SCOPE_CHANGE_FAILURE = 'REJECT_SCOPE_CHANGE_FAILURE'
  
  export const CANCEL_SCOPE_CHANGE = 'CANCEL_SCOPE_CHANGE'
  export const CANCEL_SCOPE_CHANGE_PENDING = 'CANCEL_SCOPE_CHANGE_PENDING'
  export const CANCEL_SCOPE_CHANGE_SUCCESS = 'CANCEL_SCOPE_CHANGE_SUCCESS'
  export const CANCEL_SCOPE_CHANGE_FAILURE = 'CANCEL_SCOPE_CHANGE_FAILURE'
  
  export const ACTIVATE_SCOPE_CHANGE = 'ACTIVATE_SCOPE_CHANGE'
  export const ACTIVATE_SCOPE_CHANGE_PENDING = 'ACTIVATE_SCOPE_CHANGE_PENDING'
  export const ACTIVATE_SCOPE_CHANGE_SUCCESS = 'ACTIVATE_SCOPE_CHANGE_SUCCESS'
  export const ACTIVATE_SCOPE_CHANGE_FAILURE = 'ACTIVATE_SCOPE_CHANGE_FAILURE'
  
  export const UPDATE_PHASE             = 'UPDATE_PHASE'
  export const UPDATE_PHASE_PENDING     = 'UPDATE_PHASE_PENDING'
  export const UPDATE_PHASE_FAILURE     = 'UPDATE_PHASE_FAILURE'
  export const UPDATE_PHASE_SUCCESS     = 'UPDATE_PHASE_SUCCESS'
  
  export const DELETE_PROJECT_PHASE             = 'DELETE_PROJECT_PHASE'
  export const DELETE_PROJECT_PHASE_PENDING     = 'DELETE_PROJECT_PHASE_PENDING'
  export const DELETE_PROJECT_PHASE_FAILURE     = 'DELETE_PROJECT_PHASE_FAILURE'
  export const DELETE_PROJECT_PHASE_SUCCESS     = 'DELETE_PROJECT_PHASE_SUCCESS'
  
  export const UPDATE_PRODUCT           = 'UPDATE_PRODUCT'
  export const UPDATE_PRODUCT_PENDING   = 'UPDATE_PRODUCT_PENDING'
  export const UPDATE_PRODUCT_SUCCESS   = 'UPDATE_PRODUCT_SUCCESS'
  export const UPDATE_PRODUCT_FAILURE   = 'UPDATE_PRODUCT_FAILURE'
  
  export const PROJECT_DIRTY            = 'PROJECT_DIRTY'
  export const PROJECT_DIRTY_UNDO       = 'PROJECT_DIRTY_UNDO'
  
  export const PHASE_DIRTY            = 'PHASE_DIRTY'
  export const PHASE_DIRTY_UNDO       = 'PHASE_DIRTY_UNDO'
  
  export const PRODUCT_DIRTY            = 'PRODUCT_DIRTY'
  export const PRODUCT_DIRTY_UNDO       = 'PRODUCT_DIRTY_UNDO'
  
  export const LOAD_PROJECT_PHASES             = 'LOAD_PROJECT_PHASES'
  export const LOAD_PROJECT_PHASES_PENDING     = 'LOAD_PROJECT_PHASES_PENDING'
  export const LOAD_PROJECT_PHASES_FAILURE     = 'LOAD_PROJECT_PHASES_FAILURE'
  export const LOAD_PROJECT_PHASES_SUCCESS     = 'LOAD_PROJECT_PHASES_SUCCESS'
  
  export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES             = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES'
  export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_PENDING     = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_PENDING'
  export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_FAILURE     = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_FAILURE'
  export const LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_SUCCESS     = 'LOAD_PRODUCT_TIMELINE_WITH_MILESTONES_SUCCESS'
  
  export const UPDATE_PRODUCT_TIMELINE          = 'UPDATE_PRODUCT_TIMELINE'
  export const UPDATE_PRODUCT_TIMELINE_PENDING  = 'UPDATE_PRODUCT_TIMELINE_PENDING'
  export const UPDATE_PRODUCT_TIMELINE_FAILURE  = 'UPDATE_PRODUCT_TIMELINE_FAILURE'
  export const UPDATE_PRODUCT_TIMELINE_SUCCESS  = 'UPDATE_PRODUCT_TIMELINE_SUCCESS'
  
  export const UPDATE_PRODUCT_MILESTONE             = 'UPDATE_PRODUCT_MILESTONE'
  export const UPDATE_PRODUCT_MILESTONE_PENDING     = 'UPDATE_PRODUCT_MILESTONE_PENDING'
  export const UPDATE_PRODUCT_MILESTONE_FAILURE     = 'UPDATE_PRODUCT_MILESTONE_FAILURE'
  export const UPDATE_PRODUCT_MILESTONE_SUCCESS     = 'UPDATE_PRODUCT_MILESTONE_SUCCESS'
  
  export const BULK_UPDATE_PRODUCT_MILESTONES             = 'BULK_UPDATE_PRODUCT_MILESTONES'
  export const BULK_UPDATE_PRODUCT_MILESTONES_PENDING     = 'BULK_UPDATE_PRODUCT_MILESTONES_PENDING'
  export const BULK_UPDATE_PRODUCT_MILESTONES_FAILURE     = 'BULK_UPDATE_PRODUCT_MILESTONES_FAILURE'
  export const BULK_UPDATE_PRODUCT_MILESTONES_SUCCESS     = 'BULK_UPDATE_PRODUCT_MILESTONES_SUCCESS'
  
  export const COMPLETE_PRODUCT_MILESTONE             = 'COMPLETE_PRODUCT_MILESTONE'
  export const COMPLETE_PRODUCT_MILESTONE_PENDING     = 'COMPLETE_PRODUCT_MILESTONE_PENDING'
  export const COMPLETE_PRODUCT_MILESTONE_FAILURE     = 'COMPLETE_PRODUCT_MILESTONE_FAILURE'
  export const COMPLETE_PRODUCT_MILESTONE_SUCCESS     = 'COMPLETE_PRODUCT_MILESTONE_SUCCESS'
  
  export const SUBMIT_FINAL_FIXES_REQUEST             = 'SUBMIT_FINAL_FIXES_REQUEST'
  export const SUBMIT_FINAL_FIXES_REQUEST_PENDING     = 'SUBMIT_FINAL_FIXES_REQUEST_PENDING'
  export const SUBMIT_FINAL_FIXES_REQUEST_FAILURE     = 'SUBMIT_FINAL_FIXES_REQUEST_FAILURE'
  export const SUBMIT_FINAL_FIXES_REQUEST_SUCCESS     = 'SUBMIT_FINAL_FIXES_REQUEST_SUCCESS'
  
  export const EXTEND_PRODUCT_MILESTONE             = 'EXTEND_PRODUCT_MILESTONE'
  export const EXTEND_PRODUCT_MILESTONE_PENDING     = 'EXTEND_PRODUCT_MILESTONE_PENDING'
  export const EXTEND_PRODUCT_MILESTONE_FAILURE     = 'EXTEND_PRODUCT_MILESTONE_FAILURE'
  export const EXTEND_PRODUCT_MILESTONE_SUCCESS     = 'EXTEND_PRODUCT_MILESTONE_SUCCESS'
  
  export const LOAD_MEMBERS             = 'LOAD_MEMBERS'
  export const LOAD_MEMBERS_PENDING     = 'LOAD_MEMBERS_PENDING'
  export const LOAD_MEMBERS_SUCCESS     = 'LOAD_MEMBERS_SUCCESS'
  export const LOAD_MEMBERS_FAILURE     = 'LOAD_MEMBERS_FAILURE'
  
  export const LOAD_MEMBER_SUGGESTIONS             = 'LOAD_MEMBER_SUGGESTIONS'
  export const LOAD_MEMBER_SUGGESTIONS_PENDING     = 'LOAD_MEMBER_SUGGESTIONS_PENDING'
  export const LOAD_MEMBER_SUGGESTIONS_SUCCESS     = 'LOAD_MEMBER_SUGGESTIONS_SUCCESS'
  export const LOAD_MEMBER_SUGGESTIONS_FAILURE     = 'LOAD_MEMBER_SUGGESTIONS_FAILURE'
  export const CLEAR_MEMBER_SUGGESTIONS            = 'CLEAR_MEMBER_SUGGESTIONS'
  
  export const ADD_PROJECT_MEMBER             = 'ADD_PROJECT_MEMBER'
  export const ADD_PROJECT_MEMBER_PENDING     = 'ADD_PROJECT_MEMBER_PENDING'
  export const ADD_PROJECT_MEMBER_SUCCESS     = 'ADD_PROJECT_MEMBER_SUCCESS'
  export const ADD_PROJECT_MEMBER_FAILURE     = 'ADD_PROJECT_MEMBER_FAILURE'
  
  export const INVITE_CUSTOMER             = 'INVITE_CUSTOMER'
  export const INVITE_CUSTOMER_PENDING     = 'INVITE_CUSTOMER_PENDING'
  export const INVITE_CUSTOMER_SUCCESS     = 'INVITE_CUSTOMER_SUCCESS'
  export const INVITE_CUSTOMER_FAILURE     = 'INVITE_CUSTOMER_FAILURE'
  
  export const REMOVE_CUSTOMER_INVITE         = 'REMOVE_CUSTOMER_INVITE'
  export const REMOVE_CUSTOMER_INVITE_PENDING = 'REMOVE_CUSTOMER_INVITE_PENDING'
  export const REMOVE_CUSTOMER_INVITE_SUCCESS = 'REMOVE_CUSTOMER_INVITE_SUCCESS'
  export const REMOVE_CUSTOMER_INVITE_FAILURE = 'REMOVE_CUSTOMER_INVITE_FAILURE'
  
  export const INVITE_TOPCODER_MEMBER         = 'INVITE_TOPCODER_MEMBER'
  export const INVITE_TOPCODER_MEMBER_PENDING = 'INVITE_TOPCODER_MEMBER_PENDING'
  export const INVITE_TOPCODER_MEMBER_SUCCESS = 'INVITE_TOPCODER_MEMBER_SUCCESS'
  export const INVITE_TOPCODER_MEMBER_FAILURE = 'INVITE_TOPCODER_MEMBER_FAILURE'
  
  export const REMOVE_TOPCODER_MEMBER_INVITE         = 'REMOVE_TOPCODER_MEMBER_INVITE'
  export const REMOVE_TOPCODER_MEMBER_INVITE_PENDING = 'REMOVE_TOPCODER_MEMBER_INVITE_PENDING'
  export const REMOVE_TOPCODER_MEMBER_INVITE_SUCCESS = 'REMOVE_TOPCODER_MEMBER_INVITE_SUCCESS'
  export const REMOVE_TOPCODER_MEMBER_INVITE_FAILURE = 'REMOVE_TOPCODER_MEMBER_INVITE_FAILURE'
  
  export const ACCEPT_OR_REFUSE_INVITE         = 'ACCEPT_OR_REFUSE_INVITE'
  export const ACCEPT_OR_REFUSE_INVITE_PENDING = 'ACCEPT_OR_REFUSE_INVITE_PENDING'
  export const ACCEPT_OR_REFUSE_INVITE_FAILURE = 'ACCEPT_OR_REFUSE_INVITE_FAILURE'
  export const ACCEPT_OR_REFUSE_INVITE_SUCCESS = 'ACCEPT_OR_REFUSE_INVITE_SUCCESS'
  
  export const ADD_PROJECT_MEMBERS         = 'ADD_PROJECT_MEMBERS'
  export const ADD_PROJECT_MEMBERS_PENDING = 'ADD_PROJECT_MEMBERS_PENDING'
  export const ADD_PROJECT_MEMBERS_SUCCESS = 'ADD_PROJECT_MEMBERS_SUCCESS'
  export const ADD_PROJECT_MEMBERS_FAILURE = 'ADD_PROJECT_MEMBERS_FAILURE'
  
  export const REMOVE_PROJECT_MEMBER             = 'REMOVE_PROJECT_MEMBER'
  export const REMOVE_PROJECT_MEMBER_PENDING     = 'REMOVE_PROJECT_MEMBER_PENDING'
  export const REMOVE_PROJECT_MEMBER_SUCCESS     = 'REMOVE_PROJECT_MEMBER_SUCCESS'
  export const REMOVE_PROJECT_MEMBER_FAILURE     = 'REMOVE_PROJECT_MEMBER_FAILURE'
  
  export const UPDATE_PROJECT_MEMBER             = 'UPDATE_PROJECT_MEMBER'
  export const UPDATE_PROJECT_MEMBER_PENDING     = 'UPDATE_PROJECT_MEMBER_PENDING'
  export const UPDATE_PROJECT_MEMBER_SUCCESS     = 'UPDATE_PROJECT_MEMBER_SUCCESS'
  export const UPDATE_PROJECT_MEMBER_FAILURE     = 'UPDATE_PROJECT_MEMBER_FAILURE'
  
  export const CLEAR_LOADED_PROJECT     = 'CLEAR_LOADED_PROJECT'
  
  export const LOAD_PROJECT_MEMBERS         = 'LOAD_PROJECT_MEMBERS'
  export const LOAD_PROJECT_MEMBERS_PENDING = 'LOAD_PROJECT_MEMBERS_PENDING'
  export const LOAD_PROJECT_MEMBERS_SUCCESS = 'LOAD_PROJECT_MEMBERS_SUCCESS'
  export const LOAD_PROJECT_MEMBERS_FAILURE = 'LOAD_PROJECT_MEMBERS_FAILURE'
  
  export const LOAD_PROJECT_MEMBER_INVITES         = 'LOAD_PROJECT_MEMBER_INVITES'
  export const LOAD_PROJECT_MEMBER_INVITES_PENDING = 'LOAD_PROJECT_MEMBER_INVITES_PENDING'
  export const LOAD_PROJECT_MEMBER_INVITES_SUCCESS = 'LOAD_PROJECT_MEMBER_INVITES_SUCCESS'
  export const LOAD_PROJECT_MEMBER_INVITES_FAILURE = 'LOAD_PROJECT_MEMBER_INVITES_FAILURE'
  
  export const LOAD_PROJECT_MEMBER         = 'LOAD_PROJECT_MEMBER'
  export const LOAD_PROJECT_MEMBER_PENDING = 'LOAD_PROJECT_MEMBER_PENDING'
  export const LOAD_PROJECT_MEMBER_SUCCESS = 'LOAD_PROJECT_MEMBER_SUCCESS'
  export const LOAD_PROJECT_MEMBER_FAILURE = 'LOAD_PROJECT_MEMBER_FAILURE'
  
  // Project attachments
  export const ADD_PROJECT_ATTACHMENT          = 'ADD_PROJECT_ATTACHMENT'
  export const DISCARD_PROJECT_ATTACHMENT      = 'DISCARD_PROJECT_ATTACHMENT'
  export const UPLOAD_PROJECT_ATTACHMENT_FILES = 'UPLOAD_PROJECT_ATTACHMENT_FILES'
  export const CHANGE_ATTACHMENT_PERMISSION    = 'CHANGE_ATTACHMENT_PERMISSION'
  export const ADD_PROJECT_ATTACHMENT_PENDING  = 'ADD_PROJECT_ATTACHMENT_PENDING'
  export const ADD_PROJECT_ATTACHMENT_SUCCESS  = 'ADD_PROJECT_ATTACHMENT_SUCCESS'
  export const ADD_PROJECT_ATTACHMENT_FAILURE  = 'ADD_PROJECT_ATTACHMENT_FAILURE'
  
  export const REMOVE_PROJECT_ATTACHMENT         = 'REMOVE_PROJECT_ATTACHMENT'
  export const REMOVE_PROJECT_ATTACHMENT_PENDING = 'REMOVE_PROJECT_ATTACHMENT_PENDING'
  export const REMOVE_PROJECT_ATTACHMENT_SUCCESS = 'REMOVE_PROJECT_ATTACHMENT_SUCCESS'
  export const REMOVE_PROJECT_ATTACHMENT_FAILURE = 'REMOVE_PROJECT_ATTACHMENT_FAILURE'
  
  export const UPDATE_PROJECT_ATTACHMENT         = 'UPDATE_PROJECT_ATTACHMENT'
  export const UPDATE_PROJECT_ATTACHMENT_PENDING = 'UPDATE_PROJECT_ATTACHMENT_PENDING'
  export const UPDATE_PROJECT_ATTACHMENT_SUCCESS = 'UPDATE_PROJECT_ATTACHMENT_SUCCESS'
  export const UPDATE_PROJECT_ATTACHMENT_FAILURE = 'UPDATE_PROJECT_ATTACHMENT_FAILURE'
  
  export const REMOVE_PENDING_ATTACHMENT         = 'REMOVE_PENDING_ATTACHMENT'
  export const UPDATE_PENDING_ATTACHMENT         = 'UPDATE_PENDING_ATTACHMENT'
  
  // Project summary
  export const LOAD_PROJECT_SUMMARY         = 'LOAD_PROJECT_SUMMARY'
  export const LOAD_PROJECT_SUMMARY_PENDING = 'LOAD_PROJECT_SUMMARY_PENDING'
  export const LOAD_PROJECT_SUMMARY_SUCCESS = 'LOAD_PROJECT_SUMMARY_SUCCESS'
  export const LOAD_PROJECT_SUMMARY_FAILURE = 'LOAD_PROJECT_SUMMARY_FAILURE'
  export const SET_LOOKER_SESSION_EXPIRED = 'SET_LOOKER_SESSION_EXPIRED'
  
  // User Reports
  export const LOAD_USER_REPORTS         = 'LOAD_USER_REPORTS'
  export const LOAD_USER_REPORTS_PENDING = 'LOAD_USER_REPORTS_PENDING'
  export const LOAD_USER_REPORTS_SUCCESS = 'LOAD_USER_REPORTS_SUCCESS'
  export const LOAD_USER_REPORTS_FAILURE = 'LOAD_USER_REPORTS_FAILURE'
  
  // Product attachments
  export const ADD_PRODUCT_ATTACHMENT         = 'ADD_PRODUCT_ATTACHMENT'
  export const ADD_PRODUCT_ATTACHMENT_PENDING = 'ADD_PRODUCT_ATTACHMENT_PENDING'
  export const ADD_PRODUCT_ATTACHMENT_SUCCESS = 'ADD_PRODUCT_ATTACHMENT_SUCCESS'
  export const ADD_PRODUCT_ATTACHMENT_FAILURE = 'ADD_PRODUCT_ATTACHMENT_FAILURE'
  
  export const REMOVE_PRODUCT_ATTACHMENT         = 'REMOVE_PRODUCT_ATTACHMENT'
  export const REMOVE_PRODUCT_ATTACHMENT_PENDING = 'REMOVE_PRODUCT_ATTACHMENT_PENDING'
  export const REMOVE_PRODUCT_ATTACHMENT_SUCCESS = 'REMOVE_PRODUCT_ATTACHMENT_SUCCESS'
  export const REMOVE_PRODUCT_ATTACHMENT_FAILURE = 'REMOVE_PRODUCT_ATTACHMENT_FAILURE'
  
  export const UPDATE_PRODUCT_ATTACHMENT         = 'UPDATE_PRODUCT_ATTACHMENT'
  export const UPDATE_PRODUCT_ATTACHMENT_PENDING = 'UPDATE_PRODUCT_ATTACHMENT_PENDING'
  export const UPDATE_PRODUCT_ATTACHMENT_SUCCESS = 'UPDATE_PRODUCT_ATTACHMENT_SUCCESS'
  export const UPDATE_PRODUCT_ATTACHMENT_FAILURE = 'UPDATE_PRODUCT_ATTACHMENT_FAILURE'
  
  // Templates
  
  export const LOAD_PROJECTS_METADATA = 'LOAD_PROJECTS_METADATA'
  export const LOAD_PROJECTS_METADATA_PENDING = 'LOAD_PROJECTS_METADATA_PENDING'
  export const LOAD_PROJECTS_METADATA_SUCCESS = 'LOAD_PROJECTS_METADATA_SUCCESS'
  export const LOAD_PROJECTS_METADATA_FAILURE = 'LOAD_PROJECTS_METADATA_FAILURE'
  
  export const ADD_PROJECTS_METADATA = 'ADD_PROJECT_METADATA'
  export const ADD_PROJECTS_METADATA_PENDING = 'ADD_PROJECT_METADATA_PENDING'
  export const ADD_PROJECTS_METADATA_SUCCESS = 'ADD_PROJECT_METADATA_SUCCESS'
  export const ADD_PROJECTS_METADATA_FAILURE = 'ADD_PROJECT_METADATA_FAILURE'
  
  export const CREATE_PROJECT_TEMPLATE = 'CREATE_PROJECT_TEMPLATE'
  export const CREATE_PROJECT_TEMPLATE_PENDING = 'CREATE_PROJECT_TEMPLATE_PENDING'
  export const CREATE_PROJECT_TEMPLATE_SUCCESS = 'CREATE_PROJECT_TEMPLATE_SUCCESS'
  export const CREATE_PROJECT_TEMPLATE_FAILURE = 'CREATE_PROJECT_TEMPLATE_FAILURE'
  
  export const CREATE_PRODUCT_TEMPLATE = 'CREATE_PRODUCT_TEMPLATE'
  export const CREATE_PRODUCT_TEMPLATE_PENDING = 'CREATE_PRODUCT_TEMPLATE_PENDING'
  export const CREATE_PRODUCT_TEMPLATE_SUCCESS = 'CREATE_PRODUCT_TEMPLATE_SUCCESS'
  export const CREATE_PRODUCT_TEMPLATE_FAILURE = 'CREATE_PRODUCT_TEMPLATE_FAILURE'
  
  export const CREATE_PROJECT_TYPE = 'CREATE_PROJECT_TYPE'
  export const CREATE_PROJECT_TYPE_PENDING = 'CREATE_PROJECT_TYPE_PENDING'
  export const CREATE_PROJECT_TYPE_SUCCESS = 'CREATE_PROJECT_TYPE_SUCCESS'
  export const CREATE_PROJECT_TYPE_FAILURE = 'CREATE_PROJECT_TYPE_FAILURE'
  
  export const CREATE_FORM = 'CREATE_FORM'
  export const CREATE_FORM_PENDING = 'CREATE_FORM_PENDING'
  export const CREATE_FORM_SUCCESS = 'CREATE_FORM_SUCCESS'
  export const CREATE_FORM_FAILURE = 'CREATE_FORM_FAILURE'
  
  export const CREATE_PLAN_CONFIG = 'CREATE_PLAN_CONFIG'
  export const CREATE_PLAN_CONFIG_PENDING = 'CREATE_PLAN_CONFIG_PENDING'
  export const CREATE_PLAN_CONFIG_SUCCESS = 'CREATE_PLAN_CONFIG_SUCCESS'
  export const CREATE_PLAN_CONFIG_FAILURE = 'CREATE_PLAN_CONFIG_FAILURE'
  
  export const CREATE_PRICE_CONFIG = 'CREATE_PRICE_CONFIG'
  export const CREATE_PRICE_CONFIG_PENDING = 'CREATE_PRICE_CONFIG_PENDING'
  export const CREATE_PRICE_CONFIG_SUCCESS = 'CREATE_PRICE_CONFIG_SUCCESS'
  export const CREATE_PRICE_CONFIG_FAILURE = 'CREATE_PRICE_CONFIG_FAILURE'
  
  export const LOAD_VERSION_OPTION_LIST = 'LOAD_VERSION_OPTION_LIST'
  export const LOAD_VERSION_OPTION_LIST_PENDING = 'LOAD_VERSION_OPTION_LIST_PENDING'
  export const LOAD_VERSION_OPTION_LIST_SUCCESS = 'LOAD_VERSION_OPTION_LIST_SUCCESS'
  
  export const LOAD_PROJECTS_METADATA_REVISION_LIST = 'LOAD_PROJECTS_METADATA_REVISION_LIST'
  export const LOAD_PROJECTS_METADATA_REVISION_LIST_PENDING = 'LOAD_PROJECTS_METADATA_REVISION_LIST_PENDING'
  export const LOAD_PROJECTS_METADATA_REVISION_LIST_SUCCESS = 'LOAD_PROJECTS_METADATA_REVISION_LIST_SUCCESS'
  
  export const LOAD_PROJECT_METADATA_WITH_VERSION = 'LOAD_PROJECT_METADATA_WITH_VERSION'
  export const LOAD_PROJECT_METADATA_WITH_VERSION_PENDING = 'LOAD_PROJECT_METADATA_WITH_VERSION_PENDING'
  export const LOAD_PROJECT_METADATA_WITH_VERSION_SUCCESS = 'LOAD_PROJECT_METADATA_WITH_VERSION_SUCCESS'
  
  export const CREATE_MILESTONE_TEMPLATE = 'CREATE_MILESTONE_TEMPLATE'
  export const CREATE_MILESTONE_TEMPLATE_PENDING = 'CREATE_MILESTONE_TEMPLATE_PENDING'
  export const CREATE_MILESTONE_TEMPLATE_SUCCESS = 'CREATE_MILESTONE_TEMPLATE_SUCCESS'
  export const CREATE_MILESTONE_TEMPLATE_FAILURE = 'CREATE_MILESTONE_TEMPLATE_FAILURE'
  
  export const CREATE_PRODUCT_CATEGORY = 'CREATE_PRODUCT_CATEGORY'
  export const CREATE_PRODUCT_CATEGORY_PENDING = 'CREATE_PRODUCT_CATEGORY_PENDING'
  export const CREATE_PRODUCT_CATEGORY_SUCCESS = 'CREATE_PRODUCT_CATEGORY_SUCCESS'
  export const CREATE_PRODUCT_CATEGORY_FAILURE = 'CREATE_PRODUCT_CATEGORY_FAILURE'
  
  export const UPDATE_PROJECTS_METADATA = 'UPDATE_PROJECT_METADATA'
  export const UPDATE_PROJECTS_METADATA_PENDING = 'UPDATE_PROJECT_METADATA_PENDING'
  export const UPDATE_PROJECTS_METADATA_SUCCESS = 'UPDATE_PROJECT_METADATA_SUCCESS'
  export const UPDATE_PROJECTS_METADATA_FAILURE = 'UPDATE_PROJECT_METADATA_FAILURE'
  
  export const REMOVE_PROJECTS_METADATA = 'REMOVE_PROJECT_METADATA'
  export const REMOVE_PROJECTS_METADATA_PENDING = 'REMOVE_PROJECT_METADATA_PENDING'
  export const REMOVE_PROJECTS_METADATA_SUCCESS = 'REMOVE_PROJECT_METADATA_SUCCESS'
  export const REMOVE_PROJECTS_METADATA_FAILURE = 'REMOVE_PROJECT_METADATA_FAILURE'
  
  export const REMOVE_PRODUCT_TEMPLATE = 'REMOVE_PRODUCT_TEMPLATE'
  export const REMOVE_PRODUCT_TEMPLATE_PENDING = 'REMOVE_PRODUCT_TEMPLATE_PENDING'
  export const REMOVE_PRODUCT_TEMPLATE_SUCCESS = 'REMOVE_PRODUCT_TEMPLATE_SUCCESS'
  export const REMOVE_PRODUCT_TEMPLATE_FAILURE = 'REMOVE_PRODUCT_TEMPLATE_FAILURE'
  
  export const REMOVE_PRODUCT_CATEGORY = 'REMOVE_PRODUCT_CATEGORY'
  export const REMOVE_PRODUCT_CATEGORY_PENDING = 'REMOVE_PRODUCT_CATEGORY_PENDING'
  export const REMOVE_PRODUCT_CATEGORY_SUCCESS = 'REMOVE_PRODUCT_CATEGORY_SUCCESS'
  export const REMOVE_PRODUCT_CATEGORY_FAILURE = 'REMOVE_PRODUCT_CATEGORY_FAILURE'
  
  export const REMOVE_PROJECT_TEMPLATE = 'REMOVE_PROJECT_TEMPLATE'
  export const REMOVE_PROJECT_TEMPLATE_PENDING = 'REMOVE_PROJECT_TEMPLATE_PENDING'
  export const REMOVE_PROJECT_TEMPLATE_SUCCESS = 'REMOVE_PROJECT_TEMPLATE_SUCCESS'
  export const REMOVE_PROJECT_TEMPLATE_FAILURE = 'REMOVE_PROJECT_TEMPLATE_FAILURE'
  
  export const REMOVE_PROJECT_TYPE = 'REMOVE_PROJECT_TYPE'
  export const REMOVE_PROJECT_TYPE_PENDING = 'REMOVE_PROJECT_TYPE_PENDING'
  export const REMOVE_PROJECT_TYPE_SUCCESS = 'REMOVE_PROJECT_TYPE_SUCCESS'
  export const REMOVE_PROJECT_TYPE_FAILURE = 'REMOVE_PROJECT_TYPE_FAILURE'
  
  export const PROJECT_TEMPLATES_SORT = 'PROJECT_TEMPLATES_SORT'
  export const PRODUCT_TEMPLATES_SORT = 'PRODUCT_TEMPLATES_SORT'
  export const PROJECT_TYPES_SORT = 'PROJECT_TYPES_SORT'
  export const FORM_SORT = 'FORM_SORT'
  export const PLAN_CONFIG_SORT = 'PLAN_CONFIG_SORT'
  export const PRICE_CONFIG_SORT = 'PRICE_CONFIG_SORT'
  export const PRODUCT_CATEGORIES_SORT = 'PRODUCT_CATEGORIES_SORT'
  export const MILESTONE_TEMPLATES_SORT = 'MILESTONE_TEMPLATES_SORT'
  
  
  export const THREAD_MESSAGES_PAGE_SIZE = 3
  /*
   * Project status
   */
  export const PROJECT_STATUS_DRAFT = 'draft'
  export const PROJECT_STATUS_IN_REVIEW = 'in_review'
  export const PROJECT_STATUS_REVIEWED = 'reviewed'
  export const PROJECT_STATUS_ACTIVE = 'active'
  export const PROJECT_STATUS_COMPLETED = 'completed'
  export const PROJECT_STATUS_CANCELLED = 'cancelled'
  export const PROJECT_STATUS_PAUSED = 'paused'
  
  /*
  * Scope change request status
  */
  export const SCOPE_CHANGE_REQ_STATUS_PENDING = 'pending'
  export const SCOPE_CHANGE_REQ_STATUS_APPROVED = 'approved'
  export const SCOPE_CHANGE_REQ_STATUS_REJECTED = 'rejected'
  export const SCOPE_CHANGE_REQ_STATUS_ACTIVATED = 'activated'
  export const SCOPE_CHANGE_REQ_STATUS_CANCELED = 'canceled'
  
  /*
  * Project Attachment types
  */
  export const ATTACHMENT_TYPE_FILE = 'file'
  export const ATTACHMENT_TYPE_LINK = 'link'
  
  export const PHASE_STATUS_DRAFT = 'draft'
  export const PHASE_STATUS_IN_REVIEW = 'in_review'
  export const PHASE_STATUS_REVIEWED = 'reviewed'
  export const PHASE_STATUS_ACTIVE = 'active'
  export const PHASE_STATUS_COMPLETED = 'completed'
  export const PHASE_STATUS_CANCELLED = 'cancelled'
  export const PHASE_STATUS_PAUSED = 'paused'
  
  export const PROJECT_STATUS = [
    // {color: 'gray', name: 'Draft', fullName: 'Project is in draft', value: PROJECT_STATUS_DRAFT, order: 2, dropDownOrder: 1 },
    {color: 'gray', name: 'In review', fullName: 'Project is in review', value: PROJECT_STATUS_IN_REVIEW, order: 3, dropDownOrder: 2, isSpecial: true },
    {color: 'gray', name: 'Reviewed', fullName: 'Project is reviewed', value: PROJECT_STATUS_REVIEWED, order: 4, dropDownOrder: 3, isSpecial: true },
    {color: 'green', name: 'Active', fullName: 'Project is active', value: PROJECT_STATUS_ACTIVE, order: 1, dropDownOrder: 4, isSpecial: false },
    {color: 'black', name: 'Completed', fullName: 'Project is completed', value: PROJECT_STATUS_COMPLETED, order: 5, dropDownOrder: 5, isSpecial: false },
    {color: 'black', name: 'Cancelled', fullName: 'Project is canceled', value: PROJECT_STATUS_CANCELLED, order: 6, dropDownOrder: 6, isSpecial: true },
    {color: 'red', name: 'Paused', fullName: 'Project is paused', value: PROJECT_STATUS_PAUSED, order: 7, dropDownOrder: 7, isSpecial: true }
  ]
  
  export const PHASE_STATUS = [
    {color: 'gray', name: 'Draft', fullName: 'Phase is in draft', value: PHASE_STATUS_DRAFT, order: 2, dropDownOrder: 1 },
    // {color: 'gray', name: 'In review', fullName: 'Phase is in review', value: PHASE_STATUS_IN_REVIEW, order: 3, dropDownOrder: 2 },
    {color: 'gray', name: 'Planned', fullName: 'Phase is reviewed', value: PHASE_STATUS_REVIEWED, order: 4, dropDownOrder: 3 },
    {color: 'green', name: 'Active', fullName: 'Phase is active', value: PHASE_STATUS_ACTIVE, order: 1, dropDownOrder: 4 },
    {color: 'black', name: 'Completed', fullName: 'Phase is completed', value: PHASE_STATUS_COMPLETED, order: 5, dropDownOrder: 5 },
    // {color: 'black', name: 'Cancelled', fullName: 'Phase is canceled', value: PHASE_STATUS_CANCELLED, order: 6, dropDownOrder: 6 },
    // {color: 'red', name: 'Paused', fullName: 'Phase is paused', value: PHASE_STATUS_PAUSED, order: 7, dropDownOrder: 7 }
  ]
  
  // this defines default criteria to filter projects for projects list
  export const PROJECT_LIST_DEFAULT_CRITERIA = {
    sort: 'lastActivityAt desc'
  }
  
  export const NOTIFICATION_TYPE = {
    WARNING: 'warning',
    NEW_PROJECT: 'new-project',
    UPDATES: 'updates',
    NEW_POSTS: 'new-posts',
    REVIEW_PENDING: 'review-pending',
    MEMBER_ADDED: 'member-added'
  }
  
  /*
   * Project member invite status
   */
  export const PROJECT_MEMBER_INVITE_STATUS_ACCEPTED = 'accepted'
  export const PROJECT_MEMBER_INVITE_STATUS_REFUSED = 'refused'
  export const PROJECT_MEMBER_INVITE_STATUS_CANCELED = 'canceled'
  export const PROJECT_MEMBER_INVITE_STATUS_PENDING = 'pending'
  export const PROJECT_MEMBER_INVITE_STATUS_REQUESTED = 'requested'
  export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_APPROVED = 'request_approved'
  export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_REJECTED = 'request_rejected'
  
  
  // projects list view types
  export const PROJECTS_LIST_VIEW = {
    GRID: 'grid',
    CARD: 'card'
  }
  
  /*
   * Project member role
   */
  export const PROJECT_ROLE_COPILOT = 'copilot'
  export const PROJECT_ROLE_MANAGER = 'manager'
  export const PROJECT_ROLE_ACCOUNT_MANAGER = 'account_manager'
  export const PROJECT_ROLE_CUSTOMER = 'customer'
  export const PROJECT_ROLE_OWNER = 'owner'
  export const PROJECT_ROLE_MEMBER = 'member' // this is need for notifications
  export const PROJECT_ROLE_ACCOUNT_EXECUTIVE = 'account_executive'
  export const PROJECT_ROLE_PROGRAM_MANAGER = 'program_manager'
  export const PROJECT_ROLE_SOLUTION_ARCHITECT = 'solution_architect'
  export const PROJECT_ROLE_PROJECT_MANAGER = 'project_manager'
  /*
   * Events
   */
  export const EVENT_ROUTE_CHANGE = 'event.route_change'
  
  /*
   * User Roles
   */
  export const ROLE_TOPCODER_USER = 'Topcoder User'
  export const ROLE_CONNECT_COPILOT = 'Connect Copilot'
  export const ROLE_CONNECT_MANAGER = 'Connect Manager'
  export const ROLE_CONNECT_ACCOUNT_MANAGER = 'Connect Account Manager'
  export const ROLE_CONNECT_ADMIN = 'Connect Admin'
  export const ROLE_ADMINISTRATOR = 'administrator'
  export const ROLE_CONNECT_COPILOT_MANAGER = 'Connect Copilot Manager'
  export const ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE = 'Business Development Representative'
  export const ROLE_PRESALES = 'Presales'
  export const ROLE_ACCOUNT_EXECUTIVE = 'Account Executive'
  export const ROLE_PROGRAM_MANAGER = 'Program Manager'
  export const ROLE_SOLUTION_ARCHITECT = 'Solution Architect'
  export const ROLE_PROJECT_MANAGER = 'Project Manager'
  
  export const ADMIN_ROLES = [ROLE_ADMINISTRATOR, ROLE_CONNECT_ADMIN]
  
  export const MANAGER_ROLES = [
    ...ADMIN_ROLES,
    ROLE_CONNECT_MANAGER,
    ROLE_CONNECT_ACCOUNT_MANAGER,
    ROLE_CONNECT_COPILOT_MANAGER,
    ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE,
    ROLE_PRESALES,
    ROLE_ACCOUNT_EXECUTIVE,
    ROLE_PROGRAM_MANAGER,
    ROLE_SOLUTION_ARCHITECT,
    ROLE_PROJECT_MANAGER,
  ]
  
  /**
   * Is user has any of these roles, it means such a user is not a customer.
   */
  export const NON_CUSTOMER_ROLES = [
    ROLE_CONNECT_COPILOT,
    ROLE_CONNECT_MANAGER,
    ROLE_CONNECT_ACCOUNT_MANAGER,
    ROLE_CONNECT_ADMIN,
    ROLE_ADMINISTRATOR,
    ROLE_CONNECT_COPILOT_MANAGER,
    ROLE_BUSINESS_DEVELOPMENT_REPRESENTATIVE,
    ROLE_PRESALES,
    ROLE_ACCOUNT_EXECUTIVE,
    ROLE_PROGRAM_MANAGER,
    ROLE_SOLUTION_ARCHITECT,
    ROLE_PROJECT_MANAGER,
  ]
  
  // to be able to start the Connect App we should pass at least the dummy value for `FILE_PICKER_API_KEY`
  // but if we want to test file uploading we should provide the real value in `FILE_PICKER_API_KEY` env variable
  export const FILE_PICKER_API_KEY = process.env.FILE_PICKER_API_KEY || 'DUMMY'
  // FIXME .. remove defaults
  export const FILE_PICKER_SUBMISSION_CONTAINER_NAME = process.env.FILE_PICKER_SUBMISSION_CONTAINER_NAME || 'submission-staging-dev'
  export const FILE_PICKER_CNAME = process.env.FILE_PICKER_CNAME || 'fs.topcoder.com'
  export const FILE_PICKER_FROM_SOURCES = process.env.FILE_PICKER_FROM_SOURCES || ['local_file_system', 'googledrive', 'dropbox']
  export const PROJECT_ATTACHMENTS_FOLDER = process.env.PROJECT_ATTACHMENTS_FOLDER || 'PROJECT_ATTACHMENTS'
  export const FILE_PICKER_ACCEPT = process.env.FILE_PICKER_ACCEPT || ['.bmp', '.gif', '.jpg', '.tex', '.xls', '.xlsx', '.doc', '.docx', '.zip', '.txt', '.pdf', '.png', '.ppt', '.pptx', '.rtf', '.csv']
  
  export const SEGMENT_KEY = process.env.CONNECT_SEGMENT_KEY
  /*
   * URLs
   */
  export const DOMAIN = process.env.domain || 'topcoder.com'
  export const CONNECT_DOMAIN = `connect.${DOMAIN}`
  export const CONNECT_MAIN_PAGE_URL = `https://connect.${DOMAIN}`
  export const ACCOUNTS_APP_CONNECTOR_URL = process.env.ACCOUNTS_APP_CONNECTOR_URL
  export const ACCOUNTS_APP_LOGIN_URL = process.env.ACCOUNTS_APP_LOGIN_URL || `https://accounts-auth0.${DOMAIN}`
  export const ACCOUNTS_APP_REGISTER_URL = process.env.ACCOUNTS_APP_REGISTER_URL || `https://accounts-auth0.${DOMAIN}`
  
  export const TC_API_URL = `https://api.${DOMAIN}`
  export const DIRECT_PROJECT_URL = `https://www.${DOMAIN}/direct/projectOverview?formData.projectId=`
  export const WORK_MANAGER_APP = `https://challenges.${DOMAIN}/projects`
  export const SALESFORCE_PROJECT_LEAD_LINK = process.env.SALESFORCE_PROJECT_LEAD_LINK
  export const SALESFORCE_BILLING_ACCOUNT_LINK = process.env.SALESFORCE_BILLING_ACCOUNT_LINK
  export const TC_NOTIFICATION_URL = process.env.TC_NOTIFICATION_URL || `${TC_API_URL}/v5/notifications`
  // Uncomment if you run TC Notifications locally
  // export const TC_NOTIFICATION_URL = 'http://localstho:4000/v5/notifications'
  
  export const TC_CDN_URL = process.env.TC_CDN_URL || `https://community-app.${DOMAIN}/api/cdn/public`
  
  export const RESET_PASSWORD_URL = `https://accounts.${DOMAIN}/member/reset-password`
  export const VERIFY_EMAIL_URL = `http://www.${DOMAIN}/settings/account/changeEmail`
  export const TOPCODER_CONNECT_TERMS_URL = `https://connect.${DOMAIN}/terms`
  
  export const PROJECT_NAME_MAX_LENGTH = 255
  export const PROJECT_REF_CODE_MAX_LENGTH = 32
  export const BUSINESS_UNIT_MAX_LENGTH = 20
  export const COST_CENTRE_MAX_LENGTH = 20
  
  export const PROJECT_FEED_TYPE_PRIMARY  = 'PRIMARY'
  export const PROJECT_FEED_TYPE_MESSAGES = 'MESSAGES'
  
  export const DISCOURSE_BOT_USERID = 'system'
  export const CODER_BOT_USERID = 'CoderBot'
  export const TC_SYSTEM_USERID = parseInt(process.env.TC_SYSTEM_USERID || '0', 10)
  export const CODER_BOT_USER_FNAME = 'Coder'
  export const CODER_BOT_USER_LNAME = 'the Bot'
  export const CONNECT_USER_HANDLE = 'connectuser'
  export const CONNECT_USER_FNAME = 'Connect'
  export const CONNECT_USER_LNAME = 'User'
  export const CONNECT_USER = {
    firstName: CONNECT_USER_FNAME,
    lastName: CONNECT_USER_LNAME,
  }
  
  export const PROJECT_MAX_COLORS = 5
  
  export const AUTOCOMPLETE_TRIGGER_LENGTH = 3
  export const AUTOCOMPLETE_DEBOUNCE_TIME_MS = 150
  
  // Toggle this flag to enable/disable maintenance mode
  export const MAINTENANCE_MODE = process.env.MAINTENANCE_MODE
  
  export const LS_INCOMPLETE_PROJECT = 'incompleteProject'
  export const LS_INCOMPLETE_WIZARD = 'incompleteWizard'
  export const LS_INCOMPLETE_PROJECT_QUERY_PARAMS = 'incompleteProjectQueryParams'
  
  /**
   * These query params are special during project creating wizard.
   * They have some special code to handle them.
   */
  export const SPECIAL_QUERY_PARAMS = ['returnUrl', 'refCode']
  
  export const PROJECTS_API_URL = process.env.PROJECTS_API_URL || TC_API_URL
  // for local testing Connect App with Project Service, comment the previous line and uncomment the next one
  // export const PROJECTS_API_URL = 'http://localhost:8001'
  export const CONNECT_MESSAGE_API_URL = process.env.CONNECT_MESSAGE_API_URL || TC_API_URL
  
  export const NEW_PROJECT_PATH = '/new-project'
  
  // Analytics constants
  export const GA_CLICK_ID  = '_gclid'
  export const GA_CLIENT_ID = '_gacid'
  
  // ToolTip
  export const TOOLTIP_DEFAULT_DELAY = 300 // in ms
  
  
  // Projects list
  export const PROJECTS_LIST_PER_PAGE = 20
  
  /*eslint-disable camelcase */
  //Project type to icon name mapping
  export const PROJECT_ICON_MAP = {
    app: 'product-cat-app',
    application_development: 'product-app-app',
    website: 'product-cat-website',
    website_development: 'product-website-website',
    chatbot: 'product-cat-chatbot',
    watson_chatbot: 'product-chatbot-watson',
    generic_chatbot: 'product-chatbot-chatbot',
    visual_design: 'product-cat-design',
    wireframes: 'product-design-wireframes',
    visual_design_concepts: 'product-design-app-visual',
    visual_design_prod: 'product-design-app-visual',
    infographic: 'product-design-infographic',
    generic_design: 'product-design-other',
    app_dev: 'product-cat-development',
    visual_prototype: 'product-dev-prototype',
    frontend_dev: 'product-dev-front-end-dev',
    api_dev: 'product-dev-integration',
    generic_dev: 'product-dev-other',
    quality_assurance: 'product-cat-qa',
    real_world_testing: 'product-qa-crowd-testing',
    mobility_testing: 'product-qa-mobility-testing',
    performance_testing: 'product-qa-website-performance',
    digital_accessability: 'product-qa-digital-accessability',
    open_source_automation: 'product-qa-os-automation',
    consulting_adivisory: 'product-qa-consulting'
  }
  /*eslint-enable */
  //Project sort options
  export const SORT_OPTIONS = [
    //{ val: 'updatedAt desc', field: 'updatedAt' },
    { val: 'lastActivityAt desc', field: 'lastActivityAt' },
    { val: 'createdAt', field: 'createdAt' },
    { val: 'createdAt desc', field: 'createdAt' }
  ]
  
  // map project date field to corresponding user field
  export const DATE_TO_USER_FIELD_MAP = {
    createdAt: 'createdBy',
    //updatedAt: 'updatedBy',
    lastActivityAt: 'lastActivityUserId',
  }
  
  // Notifications
  export const REFRESH_NOTIFICATIONS_INTERVAL = 1000 * 60 * 1 // 1 minute interval
  export const NOTIFICATIONS_DROPDOWN_PER_SOURCE = 5
  export const NOTIFICATIONS_NEW_PER_SOURCE = 10
  
  export const NOTIFICATIONS_LIMIT = 1000
  
  export const SUPER_TEST_COOKIE_TAG = 'super-test'
  
  // 60px of primary toolbar height + 50px of secondary toolbar height + 10px to make some margin
  export const SCROLL_TO_MARGIN = 60 + 50 + 10
  export const SCROLL_TO_DURATION = 500 // ms
  
  // Settings
  export const MAX_USERNAME_LENGTH = 15
  export const EMAIL_AVAILABILITY_CHECK_DEBOUNCE = 300 /* in ms */
  export const PASSWORD_MIN_LENGTH = 8
  export const PASSWORD_REG_EXP = /^(?=.*[a-z])(?=.*[^a-z]).+$/i
  
  // Screen breakpoints
  export const SCREEN_BREAKPOINT_LG = 1360
  export const SCREEN_BREAKPOINT_RG = 992
  export const SCREEN_BREAKPOINT_MD = 768
  export const SCREEN_BREAKPOINT_SM = 640
  export const SCREEN_BREAKPOINT_XS = 320
  
  export const NOTIFICATION_SETTINGS_PERIODS = [
    { text: 'Off', value: 'off' },
    { text: 'Immediately', value: 'immediately' },
    // { text: 'Hourly', value: 'hourly' },
    { text: 'Daily', value: 'daily' },
    // { text: 'Weekly', value: 'weekly' },
    { text: 'Every other day', value: 'everyOtherDay' },
  ]
  
  if (getCookie(SUPER_TEST_COOKIE_TAG) !== undefined) {
    NOTIFICATION_SETTINGS_PERIODS.push({ text: 'Every 10 minutes', value: 'every10minutes' })
  }
  
  // date time formats
  export const POST_TIME_FORMAT = 'h:mm a'
  
  // max time difference between consecutive posts to bundle posts by same user
  export const POSTS_BUNDLE_TIME_DIFF = 1000 * 60 * 10 // 10 min difference
  
  // possible statuses of milestones
  export const MILESTONE_STATUS = {
    UNPLANNED: 'in_review',
    PLANNED: 'reviewed',
    ACTIVE: 'active',
    BLOCKED: 'paused',
    COMPLETED: 'completed',
    CANCELLED: 'cancelled'
  }
  
  export const MILESTONE_STATUS_TEXT = [
    {status: 'reviewed', textValue: 'plannedText' },
    {status: 'active', textValue: 'activeText' },
    {status: 'paused', textValue: 'blockedText' },
    {status: 'completed', textValue: 'completedText' }
  ]
  
  // minimum designs to select during checkpoint type milestone
  export const MIN_CHECKPOINT_REVIEW_DESIGNS = 5
  
  // minimum winner designs to select during final-designs milestone
  export const MIN_WINNER_DESIGNS = 2
  
  // default additional desgin cost to select during final-designs milestone
  export const DEFAULT_ADDITIONAL_DESIGN_COST = 100
  
  // the delay in milliseconds we are giving to ElasticSearch of Project Service to reindex changes
  export const ES_REINDEX_DELAY = 5000
  
  // project_catalog_url organization configuration name
  export const PROJECT_CATALOG_URL = 'project_catalog_url'
  
  // list of link types which are supported by milestones
  export const MILESTONE_LINK_SUPPORTED_TYPES = [
    { title: 'Any', value: '' },
    { title: 'Document', value: 'document' },
    { title: 'Zipped file', value: 'zip' },
    { title: 'Marvel link', value: 'marvelapp' },
    { title: 'GitHub link', value: 'github' },
    { title: 'Heroku link', value: 'heroku' },
    { title: 'Invoice', value: 'invoice' }
  ]
  
  // Notifications event types
  export const EVENT_TYPE = {
    POST: {
      UPDATED: 'connect.notification.project.post.edited',
      CREATED: 'connect.notification.project.post.created',
      DELETED: 'connect.notification.project.post.deleted',
      MENTION: 'connect.notification.project.post.mention',
    },
    MEMBER: {
      JOINED: 'connect.notification.project.member.joined',
      LEFT: 'connect.notification.project.member.left',
      REMOVED: 'connect.notification.project.member.removed',
      MANAGER_JOINED: 'connect.notification.project.member.managerJoined',
      COPILOT_JOINED: 'connect.notification.project.member.copilotJoined',
      ASSIGNED_AS_OWNER: 'connect.notification.project.member.assignedAsOwner',
      INVITE_REQUESTED: 'connect.notification.project.member.invite.requested',
      INVITE_APPROVED: 'connect.notification.project.member.invite.approved',
      INVITE_REFUSED: 'connect.notification.project.member.invite.rejected',
      INVITE_CREATED: 'connect.notification.project.member.invite.created'
    },
    PROJECT: {
      ACTIVE: 'connect.notification.project.active',
      APPROVED: 'connect.notification.project.approved',
      CANCELED: 'connect.notification.project.canceled',
      COMPLETED: 'connect.notification.project.completed',
      CREATED: 'connect.notification.project.created',
      FILE_UPLOADED: 'connect.notification.project.fileUploaded',
      LINK_CREATED: 'connect.notification.project.linkCreated',
      PAUSED: 'connect.notification.project.paused',
      SUBMITTED_FOR_REVIEW: 'connect.notification.project.submittedForReview',
      SPECIFICATION_MODIFIED: 'connect.notification.project.updated.spec',
    },
    PROJECT_PLAN: {
      READY: 'connect.notification.project.plan.ready',
      MODIFIED: 'connect.notification.project.plan.updated',
      PROGRESS_UPDATED: 'connect.notification.project.updated.progress',
      PHASE_ACTIVATED: 'connect.notification.project.phase.transition.active',
      PHASE_COMPLETED: 'connect.notification.project.phase.transition.completed',
      PHASE_PAYMENT_UPDATED: 'connect.notification.project.phase.update.payment',
      PHASE_PROGRESS_UPDATED: 'connect.notification.project.phase.update.progress',
      PHASE_SCOPE_UPDATED: 'connect.notification.project.phase.update.scope',
      PHASE_PRODUCT_SPEC_UPDATED: 'connect.notification.project.product.update.spec',
      MILESTONE_ACTIVATED: 'connect.notification.project.timeline.milestone.transition.active',
      MILESTONE_COMPLETED: 'connect.notification.project.timeline.milestone.transition.completed',
      WAITING_FOR_CUSTOMER_INPUT: 'connect.notification.project.timeline.milestone.waiting.customer',
      TIMELINE_ADJUSTED: 'connect.notification.project.timeline.adjusted',
    },
    TOPIC: {
      CREATED: 'connect.notification.project.topic.created',
      DELETED: 'connect.notification.project.topic.deleted',
    },
  }
  
  
  /**
   * Project assets shared with type text
   */
  export const PROJECT_ASSETS_SHARED_WITH_ALL_MEMBERS = 'All Project Members'
  export const PROJECT_ASSETS_SHARED_WITH_TOPCODER_MEMBERS = 'Only Topcoder Members'
  export const PROJECT_ASSETS_SHARED_WITH_ADMIN = 'Only Admins'
  
  
  
  /**
   * REPORTS
   */
  export const PROJECT_REPORTS = {
    PROJECT_SUMMARY : 'summary',
    TAAS_MEMBERS : 'taas_members',
  }
  
  /**
   * Report session length in seconds
   */
  export const REPORT_SESSION_LENGTH = 25 * 60 // 25 minutes (5 minutes less than the report session)
  
  
  /**
   * Contentful Content Ids
   */
  export const DASHBOARD_FAQ_CONTENT_ID = process.env.DASHBOARD_FAQ_CONTENT_ID
  export const CONTENTFUL_DELIVERY_KEY = process.env.CONTENTFUL_DELIVERY_KEY
  export const CONTENTFUL_SPACE_ID = process.env.CONTENTFUL_SPACE_ID
  
  
  /**
   * Contentful node types
   */
  export const CONTENTFUL_NODE_TYPES = {
    HYPERLINK : 'hyperlink',
  }
  export const INTERNAL_PROJECT_URLS=[
    'tc_internal',
    'tc-internal'
  ]
  
  
  /**
   * Project category string
   */
  export const PROJECT_CATEGORY_TAAS = 'talent-as-a-service'
  
  /**
   * Config for User Profile fields
   *
   * - `true` means field is required
   * - `false` means field is optional
   * - if field is not on the list means it should not be shown
   */
  export const PROFILE_FIELDS_CONFIG = {
    TOPCODER: {
      // required fields
      firstName: true,
      lastName: true,
      title: true,
      country: true,
      timeZone: true,
      workingHourStart: true,
      workingHourEnd: true,
      // termsAccepted: true,
  
      // optional fields
      avatar: false,
      // companyName: false,
      // companyURL: false,
      // businessPhone: false,
    },
    CUSTOMER: {
      // required fields
      firstName: true,
      lastName: true,
      country: true,
      title: true,
      companyName: true,
      companyURL: true,
      businessPhone: true,
      businessEmail: true,
      termsAccepted: true,
  
      // optional fields
      avatar: false,
      timeZone: false,
      workingHourStart: false,
      workingHourEnd: false,
    },
    COPILOT: {
      // required fields
      firstName: true,
      lastName: true,
      country: true,
      timeZone: true,
      workingHourStart: true,
      workingHourEnd: true,
      // termsAccepted: true,
  
      // optional fields
      avatar: false,
      // title: false,
      // companyName: false,
      // companyURL: true,
      // businessPhone: false,
    }
  }
  
  /**
   * The type of the project for talent as a service app.
   */
  export const PROJECT_TYPE_TALENT_AS_A_SERVICE = 'talent-as-a-service'
  
  /**
   * URL to the Topcoder TaaS App
   */
  export const TAAS_APP_URL = process.env.TAAS_APP_URL || 'https://platform.topcoder-dev.com/taas'
  
  /**
   * Milestone Types
   */
  export const MILESTONE_TYPE = {
    REPORTING: 'reporting',
    DELIVERABLE_REVIEW: 'deliverable-review',
    FINAL_DELIVERABLE_REVIEW: 'final-deliverable-review',
    DELIVERABLE_FINAL_FIXES: 'deliverable-final-fixes',
    PHASE_SPECIFICATION:'phase-specification',
    COMMUNITY_WORK: 'community-work',
    COMMUNITY_REVIEW: 'community-review',
    GENERIC_WORK: 'generic-work',
    CHECKPOINT_REVIEW: 'checkpoint-review',
    ADD_LINKS: 'add-links',
    FINAL_DESIGNS: 'final-designs',
    FINAL_FIX: 'final-fix',
    DELIVERY_DEV: 'delivery-dev',
    DELIVERY_DESIGN: 'delivery-design',
    DELIVERY: 'delivery'
  }
  
  /**
   *  Milestone Type Options
   */
  export const MILESTONE_TYPE_OPTIONS = [
    {
      title: 'Reporting',
      value: MILESTONE_TYPE.REPORTING,
    },
    {
      title: 'Deliverable Review',
      value: MILESTONE_TYPE.DELIVERABLE_REVIEW,
    },
    {
      title: 'Final Deliverable Review',
      value: MILESTONE_TYPE.FINAL_DELIVERABLE_REVIEW,
    },
  ]
  
  /**
   * Default values for newly created milestones.
   */
  export const MILESTONE_DEFAULT_VALUES = {
    [MILESTONE_TYPE.REPORTING]: {
      description: 'description',
      plannedText: 'The delivery team will provide an update on your progress.',
      activeText: 'The delivery team will provide an update on your progress.',
      blockedText: 'The delivery team will provide an update on your progress.',
      completedText: 'The delivery team will provide an update on your progress.',
      details: {},
      hidden: false,
      status: MILESTONE_STATUS.PLANNED
    },
    [MILESTONE_TYPE.DELIVERABLE_REVIEW]: {
      description: 'description',
      plannedText: 'The delivery team plans to share in-progress deliverables on this date for your review.',
      activeText: 'Your review and feedback on in-progress deliverables is required.',
      blockedText: 'Your in-progress deliverables have been blocked. Work with your delivery team to understand the next steps.',
      completedText: 'Thank you for your review of the in-progress deliverables. Your feedback will inform your final deliverables.',
      details: {},
      hidden: false,
      status: MILESTONE_STATUS.PLANNED
    },
    [MILESTONE_TYPE.FINAL_DELIVERABLE_REVIEW]: {
      description: 'description',
      plannedText: 'The delivery team plans to share the final deliverables on this date for your review.',
      activeText: 'Your review and feedback on the final deliverables is required.',
      blockedText: 'Your final deliverables have been blocked. Work with your delivery team to understand the next steps.',
      completedText: 'Your final deliverables are complete.',
      details: {},
      hidden: false,
      status: MILESTONE_STATUS.PLANNED
    },
    [MILESTONE_TYPE.DELIVERABLE_FINAL_FIXES]: {
      description: 'description',
      plannedText: 'The delivery team plans to share the final deliverables on this date for your review.',
      activeText: 'Your review and feedback on the final deliverables is required.',
      blockedText: 'Your final deliverables have been blocked. Work with your delivery team to understand the next steps.',
      completedText: 'Your final deliverables are complete.',
      details: {},
      hidden: false,
      status: MILESTONE_STATUS.PLANNED
    },
  }
  
  /**
   *  project template id
   */
  export const PHASE_PRODUCT_TEMPLATE_ID = process.env.PHASE_PRODUCT_TEMPLATE_ID
  
  export const DEFAULT_NDA_UUID = process.env.DEFAULT_NDA_UUID
  