Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Synapse Core Laravel Package

arnaudmoncondhuy/synapse-core

View on GitHub
Deep Wiki
Context7

RetentionPolicyInterface

L'interface RetentionPolicyInterface répond aux exigences de conservation des données. Elle permet d'automatiser le nettoyage des anciennes conversations pour respecter vos engagements de confidentialité ou le RGPD.

🛠 Pourquoi l'utiliser ?

  • Droit à l'oubli : Supprimer automatiquement les messages après X jours.
  • Hygiène des données : Éviter l'accumulation inutile de données lourdes en base.
  • Conformité : Appliquer des règles différentes selon les types d'utilisateurs ou les pays.

📋 Résumé du Contrat

Méthode Rôle
shouldDeleteConversation(...) Décide si une conversation doit être purgée maintenant.
getMaxRetentionDays() Temps de conservation par défaut pour les rapports.

🚀 Exemple : Politique de 30 jours

=== "StandardRetentionPolicy.php"

```php
namespace App\Synapse\Security;

use ArnaudMoncondhuy\SynapseCore\Contract\RetentionPolicyInterface;

class StandardRetentionPolicy implements RetentionPolicyInterface
{
    public function shouldDeleteConversation($conversation): bool
    {
        $updatedAt = $conversation->getUpdatedAt();
        $diff = $updatedAt->diff(new \DateTime());
        
        return $diff->days > 30;
    }

    public function getMaxRetentionDays(): int { return 30; }
}
```

💡 Conseils d'implémentation

[!TIP] Action Différée : Synapse Core fournit une commande console synapse:purge qui utilise cette interface. Vous pouvez planifier cette commande via un CRON pour un nettoyage quotidien.

  • Ciblage : Vous pouvez affiner la logique pour, par exemple, ne jamais supprimer les conversations des comptes "VIP".

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel