[%
    contacts = {};
    contactgroups = {};

    BLOCK contact;

        RETURN IF contacts.exists(contact_name) or !dienst;

        FOREACH kunde IN dienst;
            SET contactgroups.$kunde = [] UNLESS contactgroups.exists(kunde);
            contactgroups.$kunde.push(contact_name);
        END;
-%]
define contact {
	contact_name	[% contact_name %]
	alias		[% alias %]
	use		[% use %]
[%          FOREACH attr IN add_conf -%]
	[% attr.key %]		[% attr.value %]
[%          END -%]
}

[%
        contacts.$contact_name = '';
    END;

    FOREACH person IN personen;

        NEXT UNLESS person.user.defined;

        FOREACH attr IN [ 'fon', 'pager' ];
            IF person.$attr.defined;
                person.$attr = person.$attr.replace('\|.*',   ''  );
                person.$attr = person.$attr.replace('^\+49',  '0' );
                person.$attr = person.$attr.replace('^\+',    '00');
                person.$attr = person.$attr.replace('[^0-9]', ''  );
            END;
        END;

        person.name = person.name.defined
                      ? person.name.replace('^(Herr|Frau) ','')
                      : "User ${person.user}";

        INCLUDE contact
                dienst       = person.dienst.monitor_access
                contact_name = person.user
                alias        = person.name
                use          = 'access-contact'
                add_conf     = person.nagiosconf;

        INCLUDE contact
                dienst       = person.dienst.monitor_access
                contact_name = person.user
                alias        = person.name
                use          = 'access-contact';
                add_conf     = person.nagiosconf;

        add_conf = { email => person.email };
        add_conf.import(person.nagiosconf) IF person.exists('nagiosconf');
        INCLUDE contact
                dienst       = person.dienst.monitor_mail
                contact_name = "${person.user}_mail"
                alias        = "${person.name} via E-Mail"
                use          = 'mail-contact'
                add_conf     = add_conf;

        add_conf = { pager => person.pager };
        add_conf.import(person.nagiosconf) IF person.exists('nagiosconf');
        INCLUDE contact
                dienst       = person.dienst.monitor_sms
                contact_name = "${person.user}_sms"
                alias        = "${person.name} via SMS"
                use          = 'sms-contact'
                add_conf     = add_conf;

        add_conf = { pager => person.fon };
        add_conf.import(person.nagiosconf) IF person.exists('nagiosconf');
        INCLUDE contact
                dienst       = person.dienst.monitor_voice
                contact_name = "${person.user}_voice"
                alias        = "${person.name} via Voice"
                use          = 'voice-contact'
                add_conf     = add_conf;
    END;

    FOR contactgroup IN contactgroups
-%]
define contactgroup {
	contactgroup_name	[% contactgroup.key %]
	alias			[% kunden.${contactgroup.key}.id %]
	members			[% contactgroup.value.join(',') %]
}

[%  END -%]
