NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Campaigns for Laravel

Databázové úložisko

InMemoryCampaignStore drží kampane v pamäti počas aktuálneho requestu, konzolového príkazu alebo jobu vo fronte — ideálne pre testy a jednorazové odoslanie. Pre kampane, ktoré neskôr vyhľadávate, spúšťate či rušíte — odložené spustenie, dashboardy, opakovania, audit — prepnite jedným riadkom na dodávané databázové úložisko:

CAMPAIGNS_STORE='RoundlyConsulting\Campaigns\Stores\DatabaseCampaignStore'

Potom publikujte a spustite migrácie (pozrite si časť Inštalácia) — nikdy sa nenačítajú automaticky. Databázové úložisko sa správa ako úložisko v pamäti — proti obom beží tá istá sada kontraktových testov — vrátane kľúčovania príjemcov podľa kampane, takže ten istý príjemca pridaný do dvoch kampaní zostane v oboch.

Schéma

TabuľkaStĺpceModel
campaignsid, uuid (unique), subject, content (longText), from_name, from_address, status (indexed, default Created), sent, failed, pending, total, batch, started_at, ended_at, timestamps, deleted_atCampaignRecord
campaign_recipientsid, uuid, campaign_uuid (indexed), name, reachable_at, has_been_processed, error_occured, error_message, timestamps, deleted_at — unique (campaign_uuid, uuid)CampaignRecipientRecord

Modely

Záznamy sú bežné Eloquent modely so soft deletes, takže sa na ne môžete dopytovať pre dashboardy a reporty:

use RoundlyConsulting\Campaigns\Enums\CampaignStatus;
use RoundlyConsulting\Campaigns\Models\CampaignRecord;

$record = CampaignRecord::query()->where('uuid', $uuid)->firstOrFail();

$record->status;                                              // CampaignStatus (cast)
$record->recipients()->count();                               // HasMany CampaignRecipientRecord
$record->recipients()->where('error_occured', true)->get();   // failed recipients

CampaignRecord::query()->where('status', CampaignStatus::Processing)->get();

Oba modely majú factories pre vaše testy:

use RoundlyConsulting\Campaigns\Models\CampaignRecipientRecord;
use RoundlyConsulting\Campaigns\Models\CampaignRecord;

$campaign = CampaignRecord::factory()->create();

CampaignRecipientRecord::factory()->count(3)->create([
    'campaign_uuid' => $campaign->uuid,
]);

Používajte skutočné UUID

Pri databázovom úložisku musia byť id kampaní aj príjemcov platné UUID. find() a findRecipient() pre čokoľvek iné vrátia null bez dopytu do databázy, takže vlastné ->uuid() alebo id v CampaignRecipient, ktoré nie je UUID, už nenájdete. Vygenerované id sú vždy platné.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.