Initial commit
This commit is contained in:
90
app/Mail/InactiveProfileWarning1Mail.php
Normal file
90
app/Mail/InactiveProfileWarning1Mail.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class InactiveProfileWarning1Mail extends Mailable implements ShouldQueue
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
public $profile;
|
||||
public $profileType;
|
||||
public $timeRemaining;
|
||||
public $daysRemaining;
|
||||
public $accounts;
|
||||
public $totalBalance;
|
||||
public $daysSinceLogin;
|
||||
public $locale;
|
||||
public $loginUrl;
|
||||
|
||||
public function __construct($profile, $profileType, $timeRemaining, $daysRemaining, $accounts, $totalBalance, $daysSinceLogin)
|
||||
{
|
||||
$this->profile = $profile;
|
||||
$this->profileType = $profileType;
|
||||
$this->timeRemaining = $timeRemaining;
|
||||
$this->daysRemaining = $daysRemaining;
|
||||
$this->accounts = $accounts;
|
||||
$this->totalBalance = $totalBalance;
|
||||
$this->daysSinceLogin = $daysSinceLogin;
|
||||
|
||||
// Set locale from profile preference
|
||||
$this->locale = $profile->lang_preference ?? config('app.fallback_locale', 'en');
|
||||
|
||||
// Generate direct login URL
|
||||
if ($profileType === 'User') {
|
||||
$this->loginUrl = route('user.direct-login', [
|
||||
'userId' => $profile->id,
|
||||
'name' => $profile->name
|
||||
]);
|
||||
} elseif ($profileType === 'Organization') {
|
||||
$this->loginUrl = route('organization.direct-login', [
|
||||
'organizationId' => $profile->id
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function envelope(): Envelope
|
||||
{
|
||||
return new Envelope(
|
||||
subject: trans('Warning: Your profile will be deleted soon', [], $this->locale),
|
||||
);
|
||||
}
|
||||
|
||||
public function content(): Content
|
||||
{
|
||||
return new Content(
|
||||
view: 'emails.inactive-profiles.warning-1',
|
||||
);
|
||||
}
|
||||
|
||||
public function build()
|
||||
{
|
||||
// Set application locale for this email
|
||||
app()->setLocale($this->locale);
|
||||
|
||||
return $this
|
||||
->from(
|
||||
timebank_config('mail.system_admin.email'),
|
||||
timebank_config('mail.system_admin.name')
|
||||
)
|
||||
->subject(trans('Warning: Your profile will be deleted soon', [], $this->locale))
|
||||
->view('emails.inactive-profiles.warning-1')
|
||||
->with([
|
||||
'profile' => $this->profile,
|
||||
'profileType' => $this->profileType,
|
||||
'timeRemaining' => $this->timeRemaining,
|
||||
'daysRemaining' => $this->daysRemaining,
|
||||
'accounts' => $this->accounts,
|
||||
'totalBalance' => $this->totalBalance,
|
||||
'daysSinceLogin' => $this->daysSinceLogin,
|
||||
'loginUrl' => $this->loginUrl,
|
||||
'totalInactiveDays' => timebank_config('profile_inactive.days_not_logged_in') + timebank_config('delete_profile.days_after_inactive.run_delete'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user