defaults = {
    'zfs': {
        'datasets': {
            'tank/element-web': {
                'mountpoint': '/opt/element-web',
                'needed_by': {
                    'directory:/opt/element-web',
                },
            },
        },
    },
}

@metadata_reactor.provides(
    'nodejs/version',
)
def nodejs(metadata):
    version = tuple([int(i) for i in metadata.get('element-web/version')[1:].split('.')])

    if version >= (1, 11, 71):
        return {
            'nodejs': {
                'version': 20,
            },
        }
    else:
        return {
            'nodejs': {
                'version': 18,
            },
        }


@metadata_reactor.provides(
    'nginx/vhosts/element-web',
)
def nginx_config(metadata):
    return {
        'nginx': {
            'vhosts': {
                'element-web': {
                    'domain': metadata.get('element-web/url'),
                    'webroot': '/opt/element-web/webapp/',
                },
            },
        },
    }


@metadata_reactor.provides(
    'icinga2_api/element-web/services',
)
def icinga_check_for_new_release(metadata):
    return {
        'icinga2_api': {
            'element-web': {
                'services': {
                    'ELEMENT-WEB UPDATE': {
                        'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release vector-im/element-web {}'.format(metadata.get('element-web/version')),
                        'vars.notification.mail': True,
                        'check_interval': '60m',
                    },
                },
            },
        },
    }