Feature: Customer Account Services
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Customer\Events;
|
||||
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Lunar\Models\Address;
|
||||
|
||||
/**
|
||||
* Dispatched by Modules\Core\Customer\Services\CustomerAccountService::
|
||||
* createAddress(). $causer is carried explicitly (unlike e.g.
|
||||
* Modules\Core\Payment\Events\PaymentMethodCreated, which is always
|
||||
* staff-caused implicitly) because this write happens on the `web`
|
||||
* guard, not `staff` — a listener logging this needs to know who to
|
||||
* attribute it to without guessing a guard.
|
||||
*/
|
||||
class CustomerAddressCreated
|
||||
{
|
||||
public function __construct(
|
||||
public readonly Address $address,
|
||||
public readonly Authenticatable $causer,
|
||||
) {}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Customer\Events;
|
||||
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
|
||||
class CustomerAddressDeleted
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed> $address Snapshot of the deleted
|
||||
* row — already gone from the database by dispatch time.
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly array $address,
|
||||
public readonly Authenticatable $causer,
|
||||
) {}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Customer\Events;
|
||||
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Lunar\Models\Address;
|
||||
|
||||
class CustomerAddressUpdated
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed> $old Snapshot of the changed
|
||||
* attributes before the update.
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly Address $address,
|
||||
public readonly array $old,
|
||||
public readonly Authenticatable $causer,
|
||||
) {}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Customer\Events;
|
||||
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Modules\Core\Customer\Models\Customer;
|
||||
|
||||
class CustomerProfileUpdated
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed> $old Snapshot of the changed
|
||||
* attributes before the update.
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly Customer $customer,
|
||||
public readonly array $old,
|
||||
public readonly Authenticatable $causer,
|
||||
) {}
|
||||
}
|
||||
Reference in New Issue
Block a user