Phase 2: Implement Domain & Mailbox persistence, Analytics, and fix pagination issues

This commit is contained in:
idevakk
2026-03-05 20:19:30 +05:30
parent b981b6998f
commit 60b87a3609
23 changed files with 1037 additions and 256 deletions

44
app/Models/Domain.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Domain extends Model
{
/** @use HasFactory<\Database\Factories\DomainFactory> */
use HasFactory, SoftDeletes;
protected $fillable = [
'domain_hash',
'name',
'allowed_types',
'is_active',
'is_archived',
];
protected function casts(): array
{
return [
'allowed_types' => 'array',
'is_active' => 'boolean',
'is_archived' => 'boolean',
];
}
protected static function booted(): void
{
static::creating(function (Domain $domain) {
if (empty($domain->domain_hash)) {
$domain->domain_hash = bin2hex(random_bytes(32));
}
});
}
public function mailboxes()
{
return $this->hasMany(Mailbox::class, 'domain_hash', 'domain_hash');
}
}