// Définir les rôles autorisés const VALID_ROLES = ['User', 'Process', 'Member', 'Peer', 'Payment', 'Deposit', 'Artefact', 'Resolve', 'Backup']; const VISIBILITY_LEVELS = { PUBLIC: 'public', CONFIDENTIAL: 'confidential', PRIVATE: 'private', }; const DOCUMENT_STATUS = { DRAFT: 'draft', PENDING: 'pending', IN_REVIEW: 'in_review', APPROVED: 'approved', REJECTED: 'rejected', EXPIRED: 'expired', }; // Fonction pour créer un rôle function createRole(name, members) { if (!VALID_ROLES.includes(name)) { throw new Error(`Role "${name}" is not valid.`); } return { name, members }; } export const groupsMock = [ { id: 1, name: 'Processus 1', description: 'Description du processus 1', commonDocuments: [ { id: 101, name: 'Règlement intérieur', description: 'Document vierge pour le règlement intérieur', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 102, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 103, name: 'Procédures générales', description: 'Document vierge pour les procédures générales', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 104, name: 'Urgency A', description: "Document vierge pour le plan d'urgence A", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 105, name: 'Urgency B', description: "Document vierge pour le plan d'urgence B", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 106, name: 'Urgency C', description: "Document vierge pour le plan d'urgence C", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 107, name: 'Document à signer', description: 'Document vierge pour le règlement intérieur', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], roles: [ { name: 'User', members: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ], documents: [ { id: 1, name: 'Document User A', description: 'Description du document User A.', visibility: 'public', createdAt: '2024-01-01', deadline: '2024-02-01', signatures: [ { member: { id: 1, name: 'Alice' }, signed: true, signedAt: '2024-01-15', }, { member: { id: 2, name: 'Bob' }, signed: false, }, ], }, { id: 2, name: 'Document User B', description: 'Document vierge pour le rôle User', visibility: 'confidential', createdAt: null, deadline: null, signatures: [], }, { id: 7, name: 'Document User C', description: 'Document vierge pour validation utilisateur', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 8, name: 'Document User D', description: 'Document vierge pour approbation utilisateur', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, { name: 'Process', members: [ { id: 3, name: 'Charlie' }, { id: 4, name: 'David' }, ], documents: [ { id: 3, name: 'Document Process A', description: 'Description du document Process A.', visibility: 'confidential', createdAt: '2024-01-10', deadline: '2024-03-01', signatures: [ { member: { id: 3, name: 'Charlie' }, signed: true, signedAt: '2024-01-12', }, ], }, { id: 9, name: 'Document Process B', description: 'Document vierge pour processus interne', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 10, name: 'Document Process C', description: 'Document vierge pour validation processus', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 11, name: 'Document Process D', description: 'Document vierge pour validation processus', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.PENDING, createdAt: '2024-01-15', deadline: '2024-02-01', signatures: [ { member: { id: 3, name: 'Charlie' }, signed: true, signedAt: '2024-01-15', }, { member: { id: 4, name: 'David' }, signed: false, }, ], }, { id: 12, name: 'Document Process E', description: 'Document vierge pour validation processus', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.PENDING, createdAt: '2024-01-15', deadline: '2024-02-01', signatures: [ { member: { id: 3, name: 'Charlie' }, signed: true, signedAt: '2024-01-15', }, { member: { id: 4, name: 'David' }, signed: false, }, ], }, ], }, { name: 'Backup', members: [ { id: 15, name: 'Oscar' }, { id: 16, name: 'Patricia' }, ], documents: [ { id: 11, name: 'Document Backup A', description: 'Document vierge pour sauvegarde', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, ], }, { id: 2, name: 'Processus 2', description: 'Description du processus 2', commonDocuments: [ { id: 201, name: 'Règlement intérieur', description: 'Document vierge pour le règlement intérieur', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 202, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 203, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 204, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 205, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], roles: [ { name: 'Artefact', members: [ { id: 17, name: 'Quinn' }, { id: 18, name: 'Rachel' }, ], documents: [ { id: 12, name: 'Document Artefact A', description: 'Document vierge pour artefact', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 13, name: 'Document Artefact B', description: 'Document vierge pour validation artefact', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, { name: 'Resolve', members: [ { id: 19, name: 'Sam' }, { id: 20, name: 'Tom' }, ], documents: [ { id: 14, name: 'Document Resolve A', description: 'Document vierge pour résolution', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, ], }, { id: 3, name: 'Processus 3', description: 'Description du processus 3', commonDocuments: [ { id: 301, name: 'Règlement intérieur', description: 'Document vierge pour le règlement intérieur', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 302, name: 'Charte de confidentialité', description: 'Document vierge pour la charte de confidentialité', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 303, name: 'Procédures générales', description: 'Document vierge pour les procédures générales', visibility: VISIBILITY_LEVELS.PUBLIC, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], roles: [ { name: 'Deposit', members: [ { id: 21, name: 'Uma' }, { id: 22, name: 'Victor' }, ], documents: [ { id: 15, name: 'Document Deposit A', description: 'Document vierge pour dépôt', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 16, name: 'Document Deposit B', description: 'Document vierge pour validation dépôt', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, { name: 'Payment', members: [ { id: 23, name: 'Walter' }, { id: 24, name: 'Xena' }, ], documents: [ { id: 17, name: 'Document Payment B', description: 'Document vierge pour paiement', visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, { id: 18, name: 'Document Payment C', description: 'Document vierge pour validation paiement', visibility: VISIBILITY_LEVELS.CONFIDENTIAL, status: DOCUMENT_STATUS.DRAFT, createdAt: null, deadline: null, signatures: [], }, ], }, ], }, ];