<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>Content Component Services</description>
    <vendor>OFBiz</vendor>

    <!--
        This service must do two things:

        First, call persistContentAndAssoc service to create the Content, DataResource and ImageDataResource/ElectronicText/??? entities.
            Note that it will not create a ContentAssoc entity, which persistContentAndAssoc can do.
            It should be able to auto populate the service parameters for persistContentAndAssoc from this service's input parameters
            using ModelService.makeValid (or the simple method equivalent).
            persistContentAndAssoc will return contentId.
            
        Second, it must create a CommEventContentAssoc record.
            The fromData should be defaulted if not passed in.
    -->
    <service name="createCommContentDataResource" engine="simple"
                location="component://content/minilang/content/ContentServices.xml" invoke="createCommContentDataResource" auth="true">
        <description>Create CommunicationEvent and Content</description>
        <implements service="persistContentAndAssoc"/>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="contentId" type="String" mode="IN" optional="false">
            <type-validate>
                <fail-property resource="ContentErrorUiLabels" property="ContentRequiredFieldMissingContentId"/>
            </type-validate>
        </attribute>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="OUT" optional="false"/>
    </service>

    <service name="updateCommContentDataResource" engine="simple"
                location="component://content/minilang/content/ContentServices.xml" invoke="updateCommContentDataResource" auth="true">
        <description>Update CommunicationEvent and Content</description>
        <implements service="persistContentAndAssoc"/>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
    </service>

    <service name="createCommEventContentAssoc" engine="simple"
                location="component://content/minilang/content/ContentServices.xml" invoke="createCommEventContentAssoc" auth="true">
        <description>Create CommEventContentAssoc</description>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="contentId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="INOUT" optional="true"/>
        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
         <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
    </service>

    <service name="updateCommEventContentAssoc" engine="simple"
                location="component://content/minilang/content/ContentServices.xml" invoke="updateCommEventContentAssoc" auth="true">
        <description>Update CommEventContentAssoc</description>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="contentId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
         <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
    </service>

    <service name="removeCommEventContentAssoc" engine="simple"
                location="component://content/minilang/content/ContentServices.xml" invoke="removeCommEventContentAssoc" auth="true">
        <description>Remove CommEventContentAssoc</description>
        <attribute name="communicationEventId" type="String" mode="IN" optional="false"/>
        <attribute name="contentId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
    </service>

    <service name="createCommContentAssocType" default-entity-name="CommContentAssocType" engine="entity-auto" invoke="create" auth="true">
        <description>Create a new Comm Content Assoc Type Record</description>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="updateCommContentAssocType" default-entity-name="CommContentAssocType" engine="entity-auto" invoke="update" auth="true">
        <description>Update a Comm Content Assoc Type</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteCommContentAssocType" default-entity-name="CommContentAssocType" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete an existing Comm Content Assoc Type Record</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

</services>
