<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  This file is part of the Meeds project (https://meeds.io/).
  Copyright (C) 2022 Meeds Association
  contact@meeds.io
  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 3 of the License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
  You should have received a copy of the GNU Lesser General Public License
  along with this program; if not, write to the Free Software Foundation,
  Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_3.xsd http://www.exoplatform.org/xml/ns/kernel_1_3.xsd" xmlns="http://www.exoplatform.org/xml/ns/kernel_1_3.xsd">
  <external-component-plugins>
    <target-component>org.exoplatform.services.listener.ListenerService</target-component>
    <component-plugin>
      <name>exo.task.taskCreation</name>
      <set-method>addListener</set-method>
      <type>org.exoplatform.task.integration.gamification.GamificationTaskUpdateListener</type>
    </component-plugin>
    <component-plugin>
      <name>exo.task.taskUpdate</name>
      <set-method>addListener</set-method>
      <type>org.exoplatform.task.integration.gamification.GamificationTaskUpdateListener</type>
    </component-plugin>
    <component-plugin>
      <name>exo.task.taskDeleted</name>
      <set-method>addListener</set-method>
      <type>org.exoplatform.task.integration.gamification.GamificationTaskUpdateListener</type>
    </component-plugin>
    <component-plugin>
      <name>exo.task.taskCommentCreation</name>
      <set-method>addListener</set-method>
      <type>org.exoplatform.task.integration.gamification.GamificationTaskCommentListener</type>
    </component-plugin>
    <component-plugin>
      <name>exo.task.taskCommentDeletion</name>
      <set-method>addListener</set-method>
      <type>org.exoplatform.task.integration.gamification.GamificationTaskCommentListener</type>
    </component-plugin>
  </external-component-plugins>

  <external-component-plugins>
    <target-component>io.meeds.gamification.service.EventRegistry</target-component>
    <component-plugin>
      <name>CreateNewTask</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>createNewTask</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>createNewTask</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
    <component-plugin>
      <name>CompleteTask</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>completeTask</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>completeTask</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
    <component-plugin>
      <name>CompleteTaskAssigned</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>completeTaskAssigned</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>completeTaskAssigned</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
    <component-plugin>
      <name>CompleteTaskCoworker</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>completeTaskCoworker</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>completeTaskCoworker</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
    <component-plugin>
      <name>CommentTask</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>commentTask</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>commentTask</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
    <component-plugin>
      <name>UpdateTask</name>
      <set-method>addPlugin</set-method>
      <type>io.meeds.gamification.plugin.EventConfigPlugin</type>
      <init-params>
        <object-param>
          <name>event</name>
          <object type="io.meeds.gamification.model.EventDTO">
            <field name="title">
              <string>updateTask</string>
            </field>
            <field name="type">
              <string>meeds</string>
            </field>
            <field name="trigger">
              <string>updateTask</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
</configuration>
