This commit is contained in:
tanch0
2024-06-20 16:42:33 +05:45
parent 5554837c97
commit adfc826e9c
46 changed files with 2385 additions and 70 deletions

View File

@ -0,0 +1,138 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
$teams = config('permission.teams');
$tableNames = config('permission.table_names');
$columnNames = config('permission.column_names');
$pivotRole = $columnNames['role_pivot_key'] ?? 'role_id';
$pivotPermission = $columnNames['permission_pivot_key'] ?? 'permission_id';
if (empty($tableNames)) {
throw new \Exception('Error: config/permission.php not loaded. Run [php artisan config:clear] and try again.');
}
if ($teams && empty($columnNames['team_foreign_key'] ?? null)) {
throw new \Exception('Error: team_foreign_key on config/permission.php not loaded. Run [php artisan config:clear] and try again.');
}
Schema::create($tableNames['permissions'], function (Blueprint $table) {
$table->bigIncrements('id'); // permission id
$table->string('name'); // For MySQL 8.0 use string('name', 125);
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
$table->timestamps();
$table->unique(['name', 'guard_name']);
});
Schema::create($tableNames['roles'], function (Blueprint $table) use ($teams, $columnNames) {
$table->bigIncrements('id'); // role id
if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing
$table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable();
$table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index');
}
$table->string('name'); // For MySQL 8.0 use string('name', 125);
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
$table->timestamps();
if ($teams || config('permission.testing')) {
$table->unique([$columnNames['team_foreign_key'], 'name', 'guard_name']);
} else {
$table->unique(['name', 'guard_name']);
}
});
Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames, $pivotPermission, $teams) {
$table->unsignedBigInteger($pivotPermission);
$table->string('model_type');
$table->unsignedBigInteger($columnNames['model_morph_key']);
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index');
$table->foreign($pivotPermission)
->references('id') // permission id
->on($tableNames['permissions'])
->onDelete('cascade');
if ($teams) {
$table->unsignedBigInteger($columnNames['team_foreign_key']);
$table->index($columnNames['team_foreign_key'], 'model_has_permissions_team_foreign_key_index');
$table->primary([$columnNames['team_foreign_key'], $pivotPermission, $columnNames['model_morph_key'], 'model_type'],
'model_has_permissions_permission_model_type_primary');
} else {
$table->primary([$pivotPermission, $columnNames['model_morph_key'], 'model_type'],
'model_has_permissions_permission_model_type_primary');
}
});
Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames, $pivotRole, $teams) {
$table->unsignedBigInteger($pivotRole);
$table->string('model_type');
$table->unsignedBigInteger($columnNames['model_morph_key']);
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index');
$table->foreign($pivotRole)
->references('id') // role id
->on($tableNames['roles'])
->onDelete('cascade');
if ($teams) {
$table->unsignedBigInteger($columnNames['team_foreign_key']);
$table->index($columnNames['team_foreign_key'], 'model_has_roles_team_foreign_key_index');
$table->primary([$columnNames['team_foreign_key'], $pivotRole, $columnNames['model_morph_key'], 'model_type'],
'model_has_roles_role_model_type_primary');
} else {
$table->primary([$pivotRole, $columnNames['model_morph_key'], 'model_type'],
'model_has_roles_role_model_type_primary');
}
});
Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames, $pivotRole, $pivotPermission) {
$table->unsignedBigInteger($pivotPermission);
$table->unsignedBigInteger($pivotRole);
$table->foreign($pivotPermission)
->references('id') // permission id
->on($tableNames['permissions'])
->onDelete('cascade');
$table->foreign($pivotRole)
->references('id') // role id
->on($tableNames['roles'])
->onDelete('cascade');
$table->primary([$pivotPermission, $pivotRole], 'role_has_permissions_permission_id_role_id_primary');
});
app('cache')
->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null)
->forget(config('permission.cache.key'));
}
/**
* Reverse the migrations.
*/
public function down(): void
{
$tableNames = config('permission.table_names');
if (empty($tableNames)) {
throw new \Exception('Error: config/permission.php not found and defaults could not be merged. Please publish the package configuration before proceeding, or drop the tables manually.');
}
Schema::drop($tableNames['role_has_permissions']);
Schema::drop($tableNames['model_has_roles']);
Schema::drop($tableNames['model_has_permissions']);
Schema::drop($tableNames['roles']);
Schema::drop($tableNames['permissions']);
}
};

View File

@ -0,0 +1,220 @@
<?php
namespace Database\Seeders;
use App\Models\Adcategories;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class AdsCategorySeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
Adcategories::create([
'category_id' => 1,
'title' => 'navbar',
'alias' => 'navbar',
'status' => 1,
'display_order' => 1,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 2,
'title' => 'header',
'alias' => 'header',
'status' => 1,
'display_order' => 2,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 3,
'title' => 'feature-news',
'alias' => 'feature-news',
'status' => 1,
'display_order' => 3,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 4,
'title' => 'province',
'alias' => 'province',
'status' => 1,
'display_order' => 4,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 5,
'title' => 'int-sidebar',
'alias' => 'int-sidebar',
'status' => 1,
'display_order' => 5,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 6,
'title' => 'politics',
'alias' => 'politics',
'status' => 1,
'display_order' => 6,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 7,
'title' => 'politics-sidebar',
'alias' => 'politics-sidebar',
'status' => 1,
'display_order' => 7,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 8,
'title' => 'economics',
'alias' => 'economics',
'status' => 1,
'display_order' => 8,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 9,
'title' => 'economics-sidebar',
'alias' => 'economics-sidebar',
'status' => 1,
'display_order' => 9,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 10,
'title' => 'cul-tech',
'alias' => 'cul-tech',
'status' => 1,
'display_order' => 10,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 11,
'title' => 'cul-tech-sidebar',
'alias' => 'cul-tech-sidebar',
'status' => 1,
'display_order' => 11,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 12,
'title' => 'feature',
'alias' => 'feature',
'status' => 1,
'display_order' => 12,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 13,
'title' => 'feature-sidebar',
'alias' => 'feature-sidebar',
'status' => 1,
'display_order' => 13,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 14,
'title' => 'video',
'alias' => 'video',
'status' => 1,
'display_order' => 14,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 15,
'title' => 'health',
'alias' => 'health',
'status' => 1,
'display_order' => 15,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 16,
'title' => 'inner-page-bottom',
'alias' => 'inner-page-bottom',
'status' => 1,
'display_order' => 16,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
Adcategories::create([
'category_id' => 17,
'title' => 'inner-page-header',
'alias' => 'inner-page-header',
'status' => 1,
'display_order' => 17,
'createdBy' => 1,
'updatedBy' => 1,
'created_at' => now(),
'updated_at' => now()
]);
}
}

View File

@ -12,11 +12,13 @@ class DatabaseSeeder extends Seeder
*/
public function run(): void
{
$this->call(RoleSeeder::class);
$this->call(UserSeeder::class);
$this->call(ProvinceSeeder::class);
$this->call(NewsTypeSeeder::class);
$this->call(NewsCategorySeeder::class);
$this->call(HoroscopeSeeder::class);
$this->call(WebsiteSettingSeeder::class);
$this->call(AdsCategorySeeder::class);
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$role = Role::create(['name' => 'admin']);
$role = Role::create(['name' => 'editor']);
$role = Role::create(['name' => 'user']);
}
}

View File

@ -17,10 +17,9 @@ class UserSeeder extends Seeder
'name' => 'Prajwal Adhikari',
'email' => 'prajwalbro@hotmail.com',
'username' => 'prajwalbro',
'password' => '$2y$10$3zlF9VeXexzWKRDPZuDio.W7RZIC3tU.cjwMoLzG8ki8bVwAQn1WW',
'password' => bcrypt('p@ssw0rd'),
'status' => 1,
'role' => 'super_admin'
]);
'email_verified_at' => now(),
])->assignRole('admin', 'editor');
}
}