add: full multi-tenancy control

This commit is contained in:
Cauê Faleiros
2026-02-02 15:31:15 -03:00
commit c6ec92802b
1711 changed files with 258106 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
{
"name": "krayin/laravel-tag",
"license": "MIT",
"authors": [
{
"name": "Jitendra Singh",
"email": "jitendra@webkul.com"
}
],
"require": {
"krayin/laravel-core": "^1.0",
"krayin/laravel-user": "^1.0"
},
"autoload": {
"psr-4": {
"Webkul\\Tag\\": "src/"
}
},
"extra": {
"laravel": {
"providers": [
"Webkul\\Tag\\Providers\\TagServiceProvider"
],
"aliases": {}
}
},
"minimum-stability": "dev"
}

View File

@@ -0,0 +1,5 @@
<?php
namespace Webkul\Tag\Contracts;
interface Tag {}

View File

@@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('color')->nullable();
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('tags');
}
};

View File

@@ -0,0 +1,31 @@
<?php
namespace Webkul\Tag\Models;
use Illuminate\Database\Eloquent\Model;
use Webkul\Tag\Contracts\Tag as TagContract;
use Webkul\User\Models\UserProxy;
class Tag extends Model implements TagContract
{
protected $table = 'tags';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'color',
'user_id',
];
/**
* Get the user that owns the tag.
*/
public function user()
{
return $this->belongsTo(UserProxy::modelClass());
}
}

View File

@@ -0,0 +1,7 @@
<?php
namespace Webkul\Tag\Models;
use Konekt\Concord\Proxies\ModelProxy;
class TagProxy extends ModelProxy {}

View File

@@ -0,0 +1,12 @@
<?php
namespace Webkul\Tag\Providers;
use Webkul\Core\Providers\BaseModuleServiceProvider;
class ModuleServiceProvider extends BaseModuleServiceProvider
{
protected $models = [
\Webkul\Tag\Models\Tag::class,
];
}

View File

@@ -0,0 +1,26 @@
<?php
namespace Webkul\Tag\Providers;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
class TagServiceProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot(Router $router)
{
$this->loadMigrationsFrom(__DIR__.'/../Database/Migrations');
}
/**
* Register services.
*
* @return void
*/
public function register() {}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Webkul\Tag\Repositories;
use Webkul\Core\Eloquent\Repository;
class TagRepository extends Repository
{
/**
* Searchable fields
*/
protected $fieldSearchable = [
'name',
'color',
'user_id',
];
/**
* Specify Model class name
*
* @return mixed
*/
public function model()
{
return 'Webkul\Tag\Contracts\Tag';
}
}