/*
 * Version 1.1
 * CeCILL Copyright (c) 2006-2007, AtolCD, ADULLACT-projet
 * Initiated by AtolCD S.A. & ADULLACT-projet S.A.
 * Developped by AtolCD
 * 
 * contact@atolcd.com
 * contact@adullact-projet.coop
 * 
 * Ce logiciel est un programme informatique servant à faire circuler des 
 * documents au travers d'un circuit de validation, où chaque acteur vise 
 * le dossier, jusqu'à l'étape finale de signature.
 * 
 * Ce logiciel est régi par la licence CeCILL soumise au droit français et
 * respectant les principes de diffusion des logiciels libres. Vous pouvez
 * utiliser, modifier et/ou redistribuer ce programme sous les conditions
 * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA 
 * sur le site "http://www.cecill.info".
 * 
 * En contrepartie de l'accessibilité au code source et des droits de copie,
 * de modification et de redistribution accordés par cette licence, il n'est
 * offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
 * seule une responsabilité restreinte pèse sur l'auteur du programme,  le
 * titulaire des droits patrimoniaux et les concédants successifs.
 * 
 * A cet égard  l'attention de l'utilisateur est attirée sur les risques
 * associés au chargement,  à l'utilisation,  à la modification et/ou au
 * développement et à la reproduction du logiciel par l'utilisateur étant 
 * donné sa spécificité de logiciel libre, qui peut le rendre complexe à 
 * manipuler et qui le réserve donc à des développeurs et des professionnels
 * avertis possédant  des  connaissances  informatiques approfondies.  Les
 * utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
 * logiciel à leurs besoins dans des conditions permettant d'assurer la
 * sécurité de leurs systèmes et ou de leurs données et, plus généralement, 
 * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. 
 * 
 * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
 * pris connaissance de la licence CeCILL, et que vous en avez accepté les
 * termes.
 *  
 */

package com.atolcd.parapheur.model;

import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;

public interface ParapheurModel
{
    //
    // Définitions de modèle pour le parapheur
    //

    static final String PARAPHEUR_MODEL_URI = "http://www.atolcd.com/alfresco/model/parapheur/1.0";
    static final String PARAPHEUR_MODEL_PREFIX = "ph";
    
    static final QName TYPE_PERSON = QName.createQName(PARAPHEUR_MODEL_URI, "person");
    static final QName TYPE_PARAPHEUR = QName.createQName(PARAPHEUR_MODEL_URI, "parapheur");
    static final QName TYPE_PARAPHEURS = QName.createQName(PARAPHEUR_MODEL_URI, "parapheurs");
    static final QName TYPE_CORBEILLE = QName.createQName(PARAPHEUR_MODEL_URI, "corbeille");
    static final QName TYPE_CORBEILLE_VIRTUELLE = QName.createQName(PARAPHEUR_MODEL_URI, "corbeilleVirtuelle");
    static final QName TYPE_DOSSIER = QName.createQName(PARAPHEUR_MODEL_URI, "dossier");
    static final QName TYPE_DOCUMENT = QName.createQName(PARAPHEUR_MODEL_URI, "document");
    static final QName TYPE_ETAPE_CIRCUIT = QName.createQName(PARAPHEUR_MODEL_URI, "etape-circuit");
    
    static final QName PROP_ID_CERTIFICAT = QName.createQName(PARAPHEUR_MODEL_URI, "idCertificat");
    static final QName PROP_CERTIFICAT = QName.createQName(PARAPHEUR_MODEL_URI, "certificat");
    static final QName PROP_DATE_LIMITE = QName.createQName(PARAPHEUR_MODEL_URI, "dateLimite");
    static final QName PROP_EFFECTUEE = QName.createQName(PARAPHEUR_MODEL_URI, "effectuee");
    static final QName PROP_TERMINE = QName.createQName(PARAPHEUR_MODEL_URI, "termine");
    static final QName PROP_CONFIDENTIEL = QName.createQName(PARAPHEUR_MODEL_URI, "confidentiel");
    static final QName PROP_PUBLIC = QName.createQName(PARAPHEUR_MODEL_URI, "public");
    static final QName PROP_SIGNATURE_PAPIER = QName.createQName(PARAPHEUR_MODEL_URI, "signature-papier");
    static final QName PROP_SIGNATURE_ELECTRONIQUE = QName.createQName(PARAPHEUR_MODEL_URI, "signature-electronique");
    static final QName PROP_ANNOTATION = QName.createQName(PARAPHEUR_MODEL_URI, "annotation");
    static final QName PROP_PASSE_PAR = QName.createQName(PARAPHEUR_MODEL_URI, "passe-par");
    static final QName PROP_LISTE_DIFFUSION = QName.createQName(PARAPHEUR_MODEL_URI, "liste-diffusion");
    static final QName PROP_WS_EMETTEUR = QName.createQName(PARAPHEUR_MODEL_URI, "ws-emetteur");
    static final QName PROP_PROPRIETAIRE_PARAPHEUR = QName.createQName(PARAPHEUR_MODEL_URI, "proprietaire");
    static final QName PROP_RECUPERABLE = QName.createQName(PARAPHEUR_MODEL_URI, "recuperable");
    static final QName PROP_STATUS_METIER = QName.createQName(PARAPHEUR_MODEL_URI, "status-metier");
    static final QName PROP_ANNOTATION_PRIVEE = QName.createQName(PARAPHEUR_MODEL_URI, "annotation-privee");
    static final QName PROP_SECRETAIRES = QName.createQName(PARAPHEUR_MODEL_URI, "secretaires");
    static final QName PROP_SIGNATAIRE = QName.createQName(PARAPHEUR_MODEL_URI, "signataire");
    static final QName PROP_DATE_VALIDATION = QName.createQName(PARAPHEUR_MODEL_URI, "dateValidation");
    static final QName PROP_SIGNATURE = QName.createQName(PARAPHEUR_MODEL_URI, "signature");
    static final QName PROP_TRANSACTION_ID = QName.createQName(PARAPHEUR_MODEL_URI, "transactionId");
    static final QName PROP_ARACTE_XML = QName.createQName(PARAPHEUR_MODEL_URI, "ARActeXml");
    static final QName PROP_STATUS = QName.createQName(PARAPHEUR_MODEL_URI, "status");
    static final QName PROP_ORIGINAL = QName.createQName(PARAPHEUR_MODEL_URI, "original");
    static final QName PROP_ORIGINAL_NAME = QName.createQName(PARAPHEUR_MODEL_URI, "originalName");
    static final QName PROP_SIG = QName.createQName(PARAPHEUR_MODEL_URI, "sig");
    static final QName PROP_VISUEL_PDF = QName.createQName(PARAPHEUR_MODEL_URI, "visuel-pdf");
    static final QName PROP_TYPE_METIER = QName.createQName(PARAPHEUR_MODEL_URI, "typeMetier");
    static final QName PROP_SOUSTYPE_METIER = QName.createQName(PARAPHEUR_MODEL_URI, "soustypeMetier");
    static final QName PROP_TYPE_SIGNATURE = QName.createQName(PARAPHEUR_MODEL_URI, "typeSignature");
    static final QName PROP_XPATH_SIGNATURE = QName.createQName(PARAPHEUR_MODEL_URI, "xpathSignature");
    static final QName PROP_TDT_NOM = QName.createQName(PARAPHEUR_MODEL_URI, "tdtNom");
    static final QName PROP_TDT_PROTOCOLE = QName.createQName(PARAPHEUR_MODEL_URI, "tdtProtocole");
    static final QName PROP_TDT_FICHIER_CONFIG = QName.createQName(PARAPHEUR_MODEL_URI, "tdtFichierConfig");
    static final QName PROP_EMAIL_ENABLED = QName.createQName(PARAPHEUR_MODEL_URI, "listenToEmailAspectEnabled");
    static final QName PROP_EMAILPROTOCOL = QName.createQName(PARAPHEUR_MODEL_URI, "emailProtocol");
    static final QName PROP_EMAILSERVER = QName.createQName(PARAPHEUR_MODEL_URI, "emailServer");
    static final QName PROP_EMAILPORT = QName.createQName(PARAPHEUR_MODEL_URI, "emailPort");
    static final QName PROP_EMAILFOLDER = QName.createQName(PARAPHEUR_MODEL_URI, "emailInbox");
    static final QName PROP_EMAILUSERNAME = QName.createQName(PARAPHEUR_MODEL_URI, "emailUsername");
    static final QName PROP_EMAILPASSWORD = QName.createQName(PARAPHEUR_MODEL_URI, "emailPassword");    
    
    static final QName CHILD_ASSOC_PREMIERE_ETAPE = QName.createQName(PARAPHEUR_MODEL_URI,"premiere-etape");
    static final QName CHILD_ASSOC_PROCHAINE_ETAPE = QName.createQName(PARAPHEUR_MODEL_URI, "prochaine-etape");
    
    static final QName ASSOC_HIERARCHIE = QName.createQName(PARAPHEUR_MODEL_URI, "hierarchie"); 
    static final QName ASSOC_DOSSIER_ETAPE = QName.createQName(PARAPHEUR_MODEL_URI, "Association_dossier_etape");
    static final QName ASSOC_DELEGATION = QName.createQName(PARAPHEUR_MODEL_URI, "delegation");
    
    static final QName ASPECT_SECRETARIAT = QName.createQName(PARAPHEUR_MODEL_URI,"secretariat");
    static final QName ASPECT_LU = QName.createQName(PARAPHEUR_MODEL_URI,"lu");
    static final QName ASPECT_S2LOW = QName.createQName(PARAPHEUR_MODEL_URI, "s2low");
    static final QName ASPECT_SIGNED = QName.createQName(PARAPHEUR_MODEL_URI, "signed");
    static final QName ASPECT_TYPAGE_METIER = QName.createQName(PARAPHEUR_MODEL_URI, "typageMetier");
    static final QName ASPECT_EMAIL_LISTENER = QName.createQName(PARAPHEUR_MODEL_URI, "emailListener");
    
    static final QName NAME_A_TRAITER = QName.createQName(PARAPHEUR_MODEL_URI, "a-traiter");
    static final QName NAME_A_ARCHIVER = QName.createQName(PARAPHEUR_MODEL_URI, "a-archiver");
    static final QName NAME_RETOURNES = QName.createQName(PARAPHEUR_MODEL_URI, "retournes");
    static final QName NAME_EN_PREPARATION = QName.createQName(PARAPHEUR_MODEL_URI, "en-preparation");
    static final QName NAME_EN_COURS = QName.createQName(PARAPHEUR_MODEL_URI, "en-cours");
    static final QName NAME_RECUPERABLES = QName.createQName(PARAPHEUR_MODEL_URI, "recuperables");
    static final QName NAME_SECRETARIAT = QName.createQName(PARAPHEUR_MODEL_URI, "secretariat");

    //FIXME : propriété de Folder mais non présente dans ContModel.java; éventuellement à supprimer si ca change dans les prochaines versions d'alfresco 

    static final QName PROP_ORDERED_CHILDREN = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,"orderedchildren");

}
