mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 17:24:03 +00:00
Add methods to Tenant contract
This commit is contained in:
parent
494d274798
commit
2492345280
3 changed files with 18 additions and 7 deletions
|
|
@ -3,4 +3,7 @@
|
||||||
namespace Stancl\Tenancy\Contracts;
|
namespace Stancl\Tenancy\Contracts;
|
||||||
|
|
||||||
interface Tenant
|
interface Tenant
|
||||||
{}
|
{
|
||||||
|
public function getTenantKeyName(): string;
|
||||||
|
public function getTenantKey(): string;
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,6 @@ use Stancl\Tenancy\DatabaseConfig;
|
||||||
use Stancl\Tenancy\Events;
|
use Stancl\Tenancy\Events;
|
||||||
use Stancl\Tenancy\Contracts;
|
use Stancl\Tenancy\Contracts;
|
||||||
|
|
||||||
// todo use a contract
|
|
||||||
// todo @property
|
// todo @property
|
||||||
class Tenant extends Model implements Contracts\Tenant
|
class Tenant extends Model implements Contracts\Tenant
|
||||||
{
|
{
|
||||||
|
|
@ -16,6 +15,17 @@ class Tenant extends Model implements Contracts\Tenant
|
||||||
}
|
}
|
||||||
|
|
||||||
public $primaryKey = 'id';
|
public $primaryKey = 'id';
|
||||||
|
public $guarded = [];
|
||||||
|
|
||||||
|
public function getTenantKeyName(): string
|
||||||
|
{
|
||||||
|
return 'id';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTenantKey(): string
|
||||||
|
{
|
||||||
|
return $this->getAttribute($this->getTenantKeyName());
|
||||||
|
}
|
||||||
|
|
||||||
public function getCasts()
|
public function getCasts()
|
||||||
{
|
{
|
||||||
|
|
@ -29,8 +39,6 @@ class Tenant extends Model implements Contracts\Tenant
|
||||||
return config('tenancy.id_generator') === null;
|
return config('tenancy.id_generator') === null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public $guarded = [];
|
|
||||||
|
|
||||||
public static function internalPrefix(): string
|
public static function internalPrefix(): string
|
||||||
{
|
{
|
||||||
return config('tenancy.database_prefix');
|
return config('tenancy.database_prefix');
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
namespace Stancl\Tenancy;
|
namespace Stancl\Tenancy;
|
||||||
|
|
||||||
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
||||||
use Stancl\Tenancy\Database\Models\Tenant; // todo contract
|
use Stancl\Tenancy\Contracts\Tenant;
|
||||||
|
|
||||||
class Tenancy
|
class Tenancy
|
||||||
{
|
{
|
||||||
|
|
@ -18,8 +18,7 @@ class Tenancy
|
||||||
|
|
||||||
public function initialize(Tenant $tenant): void
|
public function initialize(Tenant $tenant): void
|
||||||
{
|
{
|
||||||
// todo the id is something that should be on the contract, with a method
|
if ($this->initialized && $this->tenant->getTenantKey() === $tenant->getTenantKey()) {
|
||||||
if ($this->initialized && $this->tenant->id === $tenant->id) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,6 +41,7 @@ class Tenancy
|
||||||
/** @return TenancyBootstrapper[] */
|
/** @return TenancyBootstrapper[] */
|
||||||
public function getBootstrappers(): array
|
public function getBootstrappers(): array
|
||||||
{
|
{
|
||||||
|
// If no callback for getting bootstrappers is set, we just return all of them.
|
||||||
$resolve = static::$getBootstrappers ?? function (Tenant $tenant) {
|
$resolve = static::$getBootstrappers ?? function (Tenant $tenant) {
|
||||||
return config('tenancy.bootstrappers');
|
return config('tenancy.bootstrappers');
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue