# By: Riasat Ullah
# This file contains test data of users.

from constants import component_names as cn, static_vars, tutorial_names as tn, var_names
from system_tests import test_tools
from taskcallweb import settings
import datetime
import random


users_list = [['Adam Smith', 'adsmi'],
              ['Chris Mayers', 'chmay'],
              ['Fa Xing', 'faxin'],
              ['Nizam Haider', 'nihai'],
              ['Monica Fabriani', 'mofab'],
              ['Jessie Carbonaro', 'jecar'],
              ['Jose Gil', 'jogil'],
              ['Karen Hill', 'kahil'],
              ['Lucy Fernandez', 'lufer'],
              ['Macy Wallace', 'mawal'],

              ['Ashley Haining', 'ashai'],
              ['Hannah Casey', 'hacas'],
              ['Ambarin Bhatiya', 'ambha'],
              ['Cole Philips', 'cophi'],
              ['Ibrahim Khan', 'ibkha'],
              ['Oliver Kahn', 'olkah'],
              ['James Selanos', 'jasel'],
              ['Juan Pablo', 'jupab'],

              ['Meha Karnakar', 'mekar'],
              ['Sophia Turner', 'sotur'],
              ['Ashton Quinny', 'asqui'],
              ['Noah Wallace', 'nowal'],

              ['Rachael Wallace', 'rawal'],
              ['Jennifer Li', 'jeli'],
              ['Marcus Moreno', 'mamor'],
              ['Martin Ndube', 'mandu']
              ]


user_routines = [[item[0], test_tools.get_dummy_reference_id()] for item in users_list]


user_details = {
    users_list[0][1]: {
        var_names.preferred_username: users_list[0][1],
        var_names.first_name: 'Adam',
        var_names.last_name: 'Smith',
        var_names.email: 'adam.smith@apollo.com',
        var_names.taskcall_email: users_list[0][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'US',
        var_names.country_code: '1',
        var_names.phone: '13152624399',
        var_names.timezone: 'US/Eastern',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'Core Developer',
        var_names.policy_id: 3,
        var_names.user_role: static_vars.owner_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/RedAvatar.png',
        var_names.tags: ['database', 'trading systems']
    },
    users_list[1][1]: {
        var_names.preferred_username: users_list[1][1],
        var_names.first_name: 'Chris',
        var_names.last_name: 'Mayers',
        var_names.email: 'chris.mayers@apollo.com',
        var_names.taskcall_email: users_list[1][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'CA',
        var_names.country_code: '1',
        var_names.phone: '15163429878',
        var_names.timezone: 'US/Eastern',
        var_names.language: static_vars.lang_es,
        var_names.job_title: None,
        var_names.policy_id: 8,
        var_names.user_role: static_vars.admin_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/YellowAvatar.png',
        var_names.tags: None
    },
    users_list[2][1]: {
        var_names.preferred_username: users_list[2][1],
        var_names.first_name: 'Fa',
        var_names.last_name: 'Xing',
        var_names.email: 'fa.xing@apollo.com',
        var_names.taskcall_email: users_list[2][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34771342488',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_en,
        var_names.job_title: None,
        var_names.policy_id: 13,
        var_names.user_role: static_vars.manager_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/BlueAvatar.png'
    },
    users_list[3][1]: {
        var_names.preferred_username: users_list[3][1],
        var_names.first_name: 'Nizam',
        var_names.last_name: 'Haider',
        var_names.email: 'nizam.haider@apollo.com',
        var_names.taskcall_email: users_list[3][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34771876123',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_es,
        var_names.job_title: 'Junior Developer',
        var_names.policy_id: 15,
        var_names.user_role: static_vars.responder_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/BlueAvatar.png'
    },
    users_list[4][1]: {
        var_names.preferred_username: users_list[4][1],
        var_names.first_name: 'Monica',
        var_names.last_name: 'Fabriani',
        var_names.email: 'monica.fabriani@apollo.com',
        var_names.taskcall_email: users_list[4][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34871254900',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_es,
        var_names.job_title: 'Network Engineer',
        var_names.policy_id: 17,
        var_names.user_role: static_vars.observer_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/GreenAvatar.png'
    },
    users_list[5][1]: {
        var_names.preferred_username: users_list[5][1],
        var_names.first_name: 'Jessie',
        var_names.last_name: 'Carbonaro',
        var_names.email: 'jessie.carbonaro@apollo.com',
        var_names.taskcall_email: users_list[5][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34912761355',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'Intern',
        var_names.policy_id: 19,
        var_names.user_role: static_vars.restricted_access_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/PurpleAvatar.png'
    },
    users_list[6][1]: {
        var_names.preferred_username: users_list[6][1],
        var_names.first_name: 'Jose',
        var_names.last_name: 'Gil',
        var_names.email: 'jose.gil@apollo.com',
        var_names.taskcall_email: users_list[6][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34645987646',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'COO',
        var_names.policy_id: 21,
        var_names.user_role: static_vars.stakeholder_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/RedAvatar.png'
    },
    users_list[7][1]: {
        var_names.preferred_username: users_list[7][1],
        var_names.first_name: 'Karen',
        var_names.last_name: 'Hill',
        var_names.email: 'karen.hill@apollo.com',
        var_names.taskcall_email: users_list[7][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'ES',
        var_names.country_code: '34',
        var_names.phone: '34687900451',
        var_names.timezone: 'Europe/Madrid',
        var_names.language: static_vars.lang_es,
        var_names.job_title: 'CEO',
        var_names.policy_id: 23,
        var_names.user_role: static_vars.limited_stakeholder_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/GreenAvatar.png'
    },
    users_list[10][1]: {
        var_names.preferred_username: users_list[10][1],
        var_names.first_name: 'Ashley',
        var_names.last_name: 'Haining',
        var_names.email: 'ashley.haining@apollo.com',
        var_names.taskcall_email: users_list[10][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'US',
        var_names.country_code: '1',
        var_names.phone: '19087568484',
        var_names.timezone: 'US/Eastern',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'CIO',
        var_names.policy_id: 177,
        var_names.user_role: static_vars.owner_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/YellowAvatar.png'
    },
    users_list[18][1]: {
        var_names.preferred_username: users_list[18][1],
        var_names.first_name: 'Meha',
        var_names.last_name: 'Karnakar',
        var_names.email: 'meha.karnakar@apollo.com',
        var_names.taskcall_email: users_list[18][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'US',
        var_names.country_code: '1',
        var_names.phone: '17776540098',
        var_names.timezone: 'US/Eastern',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'CTO',
        var_names.policy_id: 233,
        var_names.user_role: static_vars.owner_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/BlueAvatar.png'
    },
    users_list[22][1]: {
        var_names.preferred_username: users_list[22][1],
        var_names.first_name: 'Rachael',
        var_names.last_name: 'Wallace',
        var_names.email: 'rachael.wallace@apollo.com',
        var_names.taskcall_email: users_list[22][1] + '@apollo.taskcallapp.com',
        var_names.iso_country_code: 'US',
        var_names.country_code: '1',
        var_names.phone: '16879004514',
        var_names.timezone: 'US/Eastern',
        var_names.language: static_vars.lang_en,
        var_names.job_title: 'CEO',
        var_names.policy_id: 341,
        var_names.user_role: static_vars.owner_role,
        var_names.profile_picture: settings.REDIRECT_BASE + '/client/files/images/avatars/PurpleAvatar.png'
    }
}


user_authentication_details = {
    users_list[0][1]: {
        var_names.access_token: 'test1token1',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test1refresh1',
        var_names.language: user_details[users_list[0][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services, cn.dis_com_dependency_graph,
                                       cn.dis_com_recent_changes, cn.dis_com_conference_bridges, cn.dis_com_users,
                                       cn.dis_com_api_access, cn.dis_com_teams, cn.dis_com_tags,
                                       cn.dis_com_live_call_routing, cn.dis_com_organization,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows, cn.dis_com_heartbeats,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_user_analytics, cn.dis_com_team_analytics,
                                       cn.dis_com_service_analytics, cn.dis_com_business_impact_analytics,
                                       cn.dis_com_live_call_analytics, cn.dis_com_postmortem,
                                       cn.dis_com_itsm_people, cn.dis_com_itsm_groups, cn.dis_com_itsm_sso,
                                       cn.dis_com_status_dashboard, cn.dis_com_status_pages],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_dependency_graph, cn.dis_com_recent_changes,
                                     cn.dis_com_conference_bridges, cn.dis_com_users, cn.dis_com_teams,
                                     cn.dis_com_api_access, cn.dis_com_tags, cn.dis_com_live_call_routing,
                                     cn.dis_com_conditional_routing, cn.dis_com_heartbeats, cn.dis_com_workflows,
                                     cn.dis_com_organization, cn.dis_com_postmortem, cn.dis_com_itsm_people,
                                     cn.dis_com_itsm_groups, cn.dis_com_itsm_sso,
                                     cn.dis_com_status_dashboard, cn.dis_com_status_pages],
        var_names.component_features: [cn.feat_analytics_secondary, cn.feat_incidents_add_responders,
                                       cn.feat_incidents_call_back, cn.feat_incidents_conference,
                                       cn.feat_incidents_create, cn.feat_incidents_past,
                                       cn.feat_incidents_redaction, cn.feat_incidents_recent_changes,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_status,
                                       cn.feat_incidents_tagging, cn.feat_incidents_workflows,
                                       cn.feat_integrations_custom_action, cn.feat_integrations_customer_service,
                                       cn.feat_integrations_itsm, cn.feat_integrations_secondary,
                                       cn.feat_sso_authentication, cn.feat_users_business_subscriptions,
                                       cn.feat_users_component_flexible_role, cn.feat_status_pages_private],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[0][0],
        var_names.profile_picture: user_details[users_list[0][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[1][1]: {
        var_names.access_token: 'test2token2',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test2refresh2',
        var_names.language: user_details[users_list[1][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services, cn.dis_com_dependency_graph,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users,
                                       cn.dis_com_api_access, cn.dis_com_teams, cn.dis_com_live_call_routing,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_user_analytics, cn.dis_com_team_analytics,
                                       cn.dis_com_service_analytics, cn.dis_com_business_impact_analytics,
                                       cn.dis_com_postmortem, cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_dependency_graph, cn.dis_com_conditional_routing,
                                     cn.dis_com_workflows, cn.dis_com_conference_bridges, cn.dis_com_users,
                                     cn.dis_com_teams, cn.dis_com_api_access, cn.dis_com_live_call_routing,
                                     cn.dis_com_postmortem, cn.dis_com_status_dashboard],
        var_names.component_features: [cn.feat_analytics_secondary, cn.feat_incidents_add_responders,
                                       cn.feat_incidents_conference, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_users_business_subscriptions,
                                       cn.feat_users_component_flexible_role, cn.feat_incidents_create,
                                       cn.feat_integrations_secondary, cn.feat_incidents_call_back,
                                       cn.feat_sso_authentication],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[1][0],
        var_names.profile_picture: user_details[users_list[1][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_us_ohio
    },
    users_list[2][1]: {
        var_names.access_token: 'test3token3',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test3refresh3',
        var_names.language: user_details[users_list[2][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users,
                                       cn.dis_com_teams, cn.dis_com_live_call_routing,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_user_analytics, cn.dis_com_team_analytics,
                                       cn.dis_com_service_analytics, cn.dis_com_business_impact_analytics,
                                       cn.dis_com_postmortem, cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                     cn.dis_com_conference_bridges, cn.dis_com_teams,
                                     cn.dis_com_live_call_routing, cn.dis_com_postmortem],
        var_names.component_features: [cn.feat_analytics_secondary, cn.feat_incidents_add_responders,
                                       cn.feat_incidents_conference, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_users_business_subscriptions,
                                       cn.feat_users_component_flexible_role, cn.feat_incidents_create],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[2][0],
        var_names.profile_picture: user_details[users_list[2][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[3][1]: {
        var_names.access_token: 'test4token4',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test4refresh4',
        var_names.language: user_details[users_list[3][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users, cn.dis_com_teams,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_user_analytics, cn.dis_com_team_analytics,
                                       cn.dis_com_service_analytics, cn.dis_com_business_impact_analytics,
                                       cn.dis_com_postmortem, cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_postmortem],
        var_names.component_features: [cn.feat_analytics_secondary, cn.feat_incidents_add_responders,
                                       cn.feat_incidents_conference, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_users_business_subscriptions,
                                       cn.feat_users_component_flexible_role, cn.feat_incidents_create],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[3][0],
        var_names.profile_picture: user_details[users_list[3][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[4][1]: {
        var_names.access_token: 'test5token5',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test5refresh5',
        var_names.language: user_details[users_list[4][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users,
                                       cn.dis_com_teams, cn.dis_com_notification_analytics,
                                       cn.dis_com_incident_analytics, cn.dis_com_user_analytics,
                                       cn.dis_com_team_analytics, cn.dis_com_service_analytics,
                                       cn.dis_com_business_impact_analytics, cn.dis_com_postmortem,
                                       cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts],
        var_names.component_features: [cn.feat_incidents_add_responders, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_incidents_conference,
                                       cn.feat_users_business_subscriptions, cn.feat_analytics_secondary,
                                       cn.feat_users_component_flexible_role],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[4][0],
        var_names.profile_picture: user_details[users_list[4][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[5][1]: {
        var_names.access_token: 'test6token6',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test6refresh6',
        var_names.language: user_details[users_list[5][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_users,
                                       cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts],
        var_names.component_features: [cn.feat_incidents_add_responders, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_incidents_conference,
                                       cn.feat_users_business_subscriptions, cn.feat_users_component_flexible_role],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[5][0],
        var_names.profile_picture: user_details[users_list[5][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[6][1]: {
        var_names.access_token: 'test6token6',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test6refresh6',
        var_names.language: user_details[users_list[6][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users,
                                       cn.dis_com_teams, cn.dis_com_notification_analytics,
                                       cn.dis_com_incident_analytics, cn.dis_com_user_analytics,
                                       cn.dis_com_team_analytics, cn.dis_com_service_analytics,
                                       cn.dis_com_business_impact_analytics, cn.dis_com_postmortem,
                                       cn.dis_com_status_dashboard],
        var_names.edit_permissions: [],
        var_names.component_features: [cn.feat_incidents_add_responders, cn.feat_incidents_past,
                                       cn.feat_incidents_similar_ongoing, cn.feat_incidents_workflows,
                                       cn.feat_incidents_status, cn.feat_incidents_conference,
                                       cn.feat_users_business_subscriptions],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[6][0],
        var_names.profile_picture: user_details[users_list[6][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[7][1]: {
        var_names.access_token: 'test7token7',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test7refresh7',
        var_names.language: user_details[users_list[7][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_status_dashboard],
        var_names.edit_permissions: [],
        var_names.component_features: [],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[7][0],
        var_names.profile_picture: user_details[users_list[7][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[10][1]: {
        var_names.access_token: 'test11token11',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test11refresh11',
        var_names.language: user_details[users_list[10][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                       cn.dis_com_conference_bridges, cn.dis_com_users, cn.dis_com_teams,
                                       cn.dis_com_api_access, cn.dis_com_organization,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_user_analytics, cn.dis_com_team_analytics, cn.dis_com_postmortem,
                                       cn.dis_com_status_dashboard],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_conditional_routing, cn.dis_com_workflows,
                                     cn.dis_com_conference_bridges, cn.dis_com_users, cn.dis_com_teams,
                                     cn.dis_com_api_access, cn.dis_com_organization, cn.dis_com_postmortem],
        var_names.component_features: [cn.feat_incidents_create, cn.feat_incidents_add_responders,
                                       cn.feat_incidents_workflows, cn.feat_incidents_status,
                                       cn.feat_incidents_conference, cn.feat_users_business_subscriptions,
                                       cn.feat_users_component_flexible_role, cn.feat_analytics_secondary,
                                       cn.feat_incidents_redaction],
        var_names.has_team_permission: True,
        var_names.display_name: users_list[10][0],
        var_names.profile_picture: user_details[users_list[10][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[18][1]: {
        var_names.access_token: 'test19token19',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test19refresh19',
        var_names.language: user_details[users_list[18][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services,
                                       cn.dis_com_conditional_routing, cn.dis_com_users,
                                       cn.dis_com_api_access, cn.dis_com_live_call_routing, cn.dis_com_organization,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics,
                                       cn.dis_com_live_call_analytics],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_conditional_routing, cn.dis_com_users, cn.dis_com_api_access,
                                     cn.dis_com_live_call_routing, cn.dis_com_organization],
        var_names.component_features: [cn.feat_incidents_create, cn.feat_incidents_redaction],
        var_names.has_team_permission: False,
        var_names.display_name: users_list[18][0],
        var_names.profile_picture: user_details[users_list[18][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    },
    users_list[22][1]: {
        var_names.access_token: 'test23token23',
        var_names.expires_on: datetime.datetime.now() + datetime.timedelta(days=7),
        var_names.refresh_token: 'test23refresh23',
        var_names.language: user_details[users_list[22][1]][var_names.language],
        var_names.nav_bar_components: [cn.dis_com_incidents, cn.dis_com_alerts,
                                       cn.dis_com_routines, cn.dis_com_escalation_policies,
                                       cn.dis_com_services, cn.dis_com_business_services, cn.dis_com_users,
                                       cn.dis_com_api_access, cn.dis_com_organization,
                                       cn.dis_com_notification_analytics, cn.dis_com_incident_analytics],
        var_names.edit_permissions: [cn.dis_com_incidents, cn.dis_com_alerts, cn.dis_com_routines,
                                     cn.dis_com_escalation_policies, cn.dis_com_services, cn.dis_com_business_services,
                                     cn.dis_com_users, cn.dis_com_api_access, cn.dis_com_organization],
        var_names.component_features: [cn.feat_incidents_create],
        var_names.has_team_permission: False,
        var_names.display_name: users_list[22][0],
        var_names.profile_picture: user_details[users_list[22][1]][var_names.profile_picture],
        var_names.host_region: static_vars.aws_europe_paris
    }
}


org_members = [[user_details[key][var_names.preferred_username],
                user_details[key][var_names.first_name] + ' ' + user_details[key][var_names.last_name],
                user_details[key][var_names.email],
                user_details[key][var_names.user_role],
                user_details[key][var_names.job_title],
                user_details[key][var_names.profile_picture],
                True if random.randint(0, 1) == 1 else False]
               for key in user_details]


user_alert_notification_rules = {
    users_list[0][1]: [
        {
            var_names.notification_rule_id: 100,
            var_names.notification_rules: {0: [static_vars.email, static_vars.app], 1: [static_vars.text],
                                           2: [static_vars.call]},
            var_names.urgency_level: [static_vars.high_urgency, static_vars.critical_urgency]
        },
        {
            var_names.notification_rule_id: 100,
            var_names.notification_rules: {0: [static_vars.email, static_vars.app], 5: [static_vars.call]},
            var_names.urgency_level: [static_vars.medium_urgency]
        },
        {
            var_names.notification_rule_id: 100,
            var_names.notification_rules: {0: [static_vars.email, static_vars.app]},
            var_names.urgency_level: [static_vars.low_urgency, static_vars.minor_urgency]
        }
    ]
}


user_hand_off_notification_rules = {
    users_list[0][1]: [
        {
            var_names.notification_rule_id: 200,
            var_names.notification_rules: {5: [static_vars.email, static_vars.app]},
            var_names.only_in_service: True,
            var_names.policy_id: None
        }
    ]
}


user_onboarding_to_dos = {
    users_list[0][1]: [
        [tn.user_add, False],
        [tn.routine_basic, False],
        [tn.escalation_policy_basic, True],
        [tn.service_basic, False],
        [tn.incident_handling, False],
        [tn.mobile_app_download, False],
        [tn.content_based_delegation, True],
        [tn.service_system_dependencies, False],
        [tn.alert_suppression, True],
        [tn.service_chat, False],
        [tn.service_monitoring_tools, False],
        [tn.service_customer_support, False],
        [tn.live_call_routing, False],
        [tn.notifications_customize, False],
        [tn.status_update_supervisors, False],
        [tn.incident_analytics, True],
        [tn.user_analytics, False],
        [tn.on_call_scheduling, False]
    ]
}
