From 3c9bbbb392ad950c007f6be069b2f62aa6acf16e Mon Sep 17 00:00:00 2001 From: merdan Date: Sat, 3 Sep 2022 16:48:04 +0500 Subject: [PATCH] menus & translations ready --- .../2022_09_03_130148_create_menus_table.php | 60 +++++++++++++++++++ packages/Sarga/Shop/src/Contracts/Menu.php | 8 +++ .../Shop/src/Contracts/MenuTranslation.php | 8 +++ packages/Sarga/Shop/src/Models/Menu.php | 34 +++++++++++ packages/Sarga/Shop/src/Models/MenuProxy.php | 8 +++ .../Sarga/Shop/src/Models/MenuTranslation.php | 16 +++++ .../src/Providers/ModuleServiceProvider.php | 3 + .../Shop/src/Repositories/MenuRepository.php | 11 ++++ 8 files changed, 148 insertions(+) create mode 100644 packages/Sarga/Admin/src/Database/Migrations/2022_09_03_130148_create_menus_table.php create mode 100644 packages/Sarga/Shop/src/Contracts/Menu.php create mode 100644 packages/Sarga/Shop/src/Contracts/MenuTranslation.php create mode 100644 packages/Sarga/Shop/src/Models/Menu.php create mode 100644 packages/Sarga/Shop/src/Models/MenuProxy.php create mode 100644 packages/Sarga/Shop/src/Models/MenuTranslation.php create mode 100644 packages/Sarga/Shop/src/Repositories/MenuRepository.php diff --git a/packages/Sarga/Admin/src/Database/Migrations/2022_09_03_130148_create_menus_table.php b/packages/Sarga/Admin/src/Database/Migrations/2022_09_03_130148_create_menus_table.php new file mode 100644 index 000000000..89b7ac905 --- /dev/null +++ b/packages/Sarga/Admin/src/Database/Migrations/2022_09_03_130148_create_menus_table.php @@ -0,0 +1,60 @@ +increments('id'); + $table->integer('position')->default(0); + $table->boolean('status')->default(0); + $table->timestamps(); + }); + + Schema::create('menu_brands',function (Blueprint $table) { + $table->integer('menu_id')->unsigned(); + $table->integer('brand_id')->unsigned(); + $table->foreign('menu_id')->references('id')->on('menus'); + $table->foreign('brand_id')->references('id')->on('brands'); + }); + + Schema::create('menu_categories',function (Blueprint $table) { + $table->integer('menu_id')->unsigned(); + $table->integer('category_id')->unsigned(); + $table->foreign('menu_id')->references('id')->on('menus'); + $table->foreign('category_id')->references('id')->on('categories'); + }); + + Schema::create('menu_translations',function (Blueprint $table) { + $table->increments('id'); + $table->text('name'); + $table->text('description')->nullable(); + $table->integer('menu_id')->unsigned(); + $table->string('locale'); + $table->unique(['menu_id', 'locale']); + $table->foreign('menu_id')->references('id')->on('menus')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('menu_brands'); + Schema::dropIfExists('menu_categories'); + Schema::dropIfExists('menus_translations'); + Schema::dropIfExists('menus'); + } +} diff --git a/packages/Sarga/Shop/src/Contracts/Menu.php b/packages/Sarga/Shop/src/Contracts/Menu.php new file mode 100644 index 000000000..8b3c504f4 --- /dev/null +++ b/packages/Sarga/Shop/src/Contracts/Menu.php @@ -0,0 +1,8 @@ +belongsToMany(BrandProxy::modelClass(),'menu_brands'); + } + + public function categories():BelongsToMany + { + return $this->belongsToMany(CategoryProxy::modelClass(), 'menu_categories'); + } +} \ No newline at end of file diff --git a/packages/Sarga/Shop/src/Models/MenuProxy.php b/packages/Sarga/Shop/src/Models/MenuProxy.php new file mode 100644 index 000000000..68f0cd682 --- /dev/null +++ b/packages/Sarga/Shop/src/Models/MenuProxy.php @@ -0,0 +1,8 @@ +