@fleetbase/storefront-engine 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/.php-cs-fixer.php +29 -0
  2. package/LICENSE.md +16 -4
  3. package/README.md +106 -13
  4. package/composer.json +88 -0
  5. package/extension.json +10 -0
  6. package/package.json +6 -6
  7. package/phpstan.neon.dist +8 -0
  8. package/phpunit.xml.dist +16 -0
  9. package/server/.gitattributes +14 -0
  10. package/server/README.md +40 -0
  11. package/server/config/api.php +101 -0
  12. package/server/config/database.connections.php +57 -0
  13. package/server/config/storefront.php +19 -0
  14. package/server/config/twilio-notification-channel.php +36 -0
  15. package/server/migrations/2023_05_03_025307_create_carts_table.php +44 -0
  16. package/server/migrations/2023_05_03_025307_create_checkouts_table.php +51 -0
  17. package/server/migrations/2023_05_03_025307_create_gateways_table.php +48 -0
  18. package/server/migrations/2023_05_03_025307_create_network_stores_table.php +36 -0
  19. package/server/migrations/2023_05_03_025307_create_networks_table.php +56 -0
  20. package/server/migrations/2023_05_03_025307_create_notification_channels_table.php +43 -0
  21. package/server/migrations/2023_05_03_025307_create_payment_methods_table.php +44 -0
  22. package/server/migrations/2023_05_03_025307_create_product_addon_categories_table.php +38 -0
  23. package/server/migrations/2023_05_03_025307_create_product_addons_table.php +43 -0
  24. package/server/migrations/2023_05_03_025307_create_product_hours_table.php +37 -0
  25. package/server/migrations/2023_05_03_025307_create_product_store_locations_table.php +34 -0
  26. package/server/migrations/2023_05_03_025307_create_product_variant_options_table.php +40 -0
  27. package/server/migrations/2023_05_03_025307_create_product_variants_table.php +44 -0
  28. package/server/migrations/2023_05_03_025307_create_products_table.php +59 -0
  29. package/server/migrations/2023_05_03_025307_create_reviews_table.php +41 -0
  30. package/server/migrations/2023_05_03_025307_create_store_hours_table.php +37 -0
  31. package/server/migrations/2023_05_03_025307_create_store_locations_table.php +38 -0
  32. package/server/migrations/2023_05_03_025307_create_stores_table.php +57 -0
  33. package/server/migrations/2023_05_03_025307_create_votes_table.php +39 -0
  34. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_carts_table.php +40 -0
  35. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_checkouts_table.php +48 -0
  36. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_gateways_table.php +40 -0
  37. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_network_stores_table.php +40 -0
  38. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_networks_table.php +42 -0
  39. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_notification_channels_table.php +40 -0
  40. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_payment_methods_table.php +40 -0
  41. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_addon_categories_table.php +38 -0
  42. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_addons_table.php +38 -0
  43. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_hours_table.php +32 -0
  44. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_store_locations_table.php +34 -0
  45. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_variant_options_table.php +32 -0
  46. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_product_variants_table.php +32 -0
  47. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_products_table.php +44 -0
  48. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_reviews_table.php +38 -0
  49. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_store_hours_table.php +32 -0
  50. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_store_locations_table.php +40 -0
  51. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_stores_table.php +42 -0
  52. package/server/migrations/2023_05_03_025310_add_foreign_keys_to_votes_table.php +38 -0
  53. package/server/src/Auth/Schemas/Storefront.php +95 -0
  54. package/server/src/Console/Commands/NotifyStorefrontOrderNearby.php +86 -0
  55. package/server/src/Expansions/EntityExpansion.php +44 -0
  56. package/server/src/Http/Controllers/ActionController.php +119 -0
  57. package/server/src/Http/Controllers/AddonCategoryController.php +13 -0
  58. package/server/src/Http/Controllers/CustomerController.php +13 -0
  59. package/server/src/Http/Controllers/GatewayController.php +13 -0
  60. package/server/src/Http/Controllers/MetricsController.php +71 -0
  61. package/server/src/Http/Controllers/NetworkController.php +170 -0
  62. package/server/src/Http/Controllers/NotificationChannelController.php +13 -0
  63. package/server/src/Http/Controllers/OrderController.php +154 -0
  64. package/server/src/Http/Controllers/ProductAddonCategoryController.php +14 -0
  65. package/server/src/Http/Controllers/ProductAddonController.php +14 -0
  66. package/server/src/Http/Controllers/ProductController.php +123 -0
  67. package/server/src/Http/Controllers/ProductHourController.php +13 -0
  68. package/server/src/Http/Controllers/ProductVariantController.php +13 -0
  69. package/server/src/Http/Controllers/ProductVariantOptionController.php +13 -0
  70. package/server/src/Http/Controllers/ReviewController.php +13 -0
  71. package/server/src/Http/Controllers/StoreController.php +26 -0
  72. package/server/src/Http/Controllers/StoreHourController.php +13 -0
  73. package/server/src/Http/Controllers/StoreLocationController.php +13 -0
  74. package/server/src/Http/Controllers/StorefrontController.php +15 -0
  75. package/server/src/Http/Controllers/VoteController.php +13 -0
  76. package/server/src/Http/Controllers/v1/CartController.php +161 -0
  77. package/server/src/Http/Controllers/v1/CategoryController.php +138 -0
  78. package/server/src/Http/Controllers/v1/CheckoutController.php +957 -0
  79. package/server/src/Http/Controllers/v1/CustomerController.php +482 -0
  80. package/server/src/Http/Controllers/v1/GatewayControllerController.php +11 -0
  81. package/server/src/Http/Controllers/v1/NetworkController.php +281 -0
  82. package/server/src/Http/Controllers/v1/PaymentMethodController.php +11 -0
  83. package/server/src/Http/Controllers/v1/ProductController.php +94 -0
  84. package/server/src/Http/Controllers/v1/ReviewController.php +270 -0
  85. package/server/src/Http/Controllers/v1/ServiceQuoteController.php +402 -0
  86. package/server/src/Http/Controllers/v1/StoreController.php +176 -0
  87. package/server/src/Http/Filter/AddonCategoryFilter.php +19 -0
  88. package/server/src/Http/Filter/CustomerFilter.php +18 -0
  89. package/server/src/Http/Filter/GatewayFilter.php +13 -0
  90. package/server/src/Http/Filter/NetworkFilter.php +18 -0
  91. package/server/src/Http/Filter/NotificationChannelFilter.php +13 -0
  92. package/server/src/Http/Filter/OrderFilter.php +46 -0
  93. package/server/src/Http/Filter/ProductFilter.php +28 -0
  94. package/server/src/Http/Filter/StoreFilter.php +42 -0
  95. package/server/src/Http/Filter/StoreLocationFilter.php +23 -0
  96. package/server/src/Http/Middleware/SetStorefrontSession.php +130 -0
  97. package/server/src/Http/Requests/AddStoreToNetworkCategory.php +45 -0
  98. package/server/src/Http/Requests/CaptureOrderRequest.php +30 -0
  99. package/server/src/Http/Requests/CreateCustomerRequest.php +44 -0
  100. package/server/src/Http/Requests/CreateReviewRequest.php +34 -0
  101. package/server/src/Http/Requests/GetServiceQuoteFromCart.php +40 -0
  102. package/server/src/Http/Requests/InitializeCheckoutRequest.php +38 -0
  103. package/server/src/Http/Requests/NetworkActionRequest.php +43 -0
  104. package/server/src/Http/Requests/VerifyCreateCustomerRequest.php +31 -0
  105. package/server/src/Http/Resources/Cart.php +31 -0
  106. package/server/src/Http/Resources/Category.php +48 -0
  107. package/server/src/Http/Resources/Customer.php +36 -0
  108. package/server/src/Http/Resources/Gateway.php +32 -0
  109. package/server/src/Http/Resources/Media.php +29 -0
  110. package/server/src/Http/Resources/Network.php +48 -0
  111. package/server/src/Http/Resources/Product.php +209 -0
  112. package/server/src/Http/Resources/Review.php +45 -0
  113. package/server/src/Http/Resources/ReviewCustomer.php +60 -0
  114. package/server/src/Http/Resources/Store.php +76 -0
  115. package/server/src/Http/Resources/StoreHour.php +29 -0
  116. package/server/src/Http/Resources/StoreLocation.php +33 -0
  117. package/server/src/Imports/ProductsImport.php +20 -0
  118. package/server/src/Jobs/DownloadProductImageUrl.php +60 -0
  119. package/server/src/Listeners/HandleOrderCompleted.php +31 -0
  120. package/server/src/Listeners/HandleOrderDispatched.php +34 -0
  121. package/server/src/Listeners/HandleOrderDriverAssigned.php +37 -0
  122. package/server/src/Listeners/HandleOrderStarted.php +27 -0
  123. package/server/src/Mail/StorefrontNetworkInvite.php +48 -0
  124. package/server/src/Models/AddonCategory.php +30 -0
  125. package/server/src/Models/Cart.php +691 -0
  126. package/server/src/Models/Checkout.php +166 -0
  127. package/server/src/Models/Customer.php +88 -0
  128. package/server/src/Models/Gateway.php +165 -0
  129. package/server/src/Models/Network.php +300 -0
  130. package/server/src/Models/NetworkStore.php +86 -0
  131. package/server/src/Models/NotificationChannel.php +147 -0
  132. package/server/src/Models/PaymentMethod.php +99 -0
  133. package/server/src/Models/Product.php +315 -0
  134. package/server/src/Models/ProductAddon.php +128 -0
  135. package/server/src/Models/ProductAddonCategory.php +90 -0
  136. package/server/src/Models/ProductHour.php +59 -0
  137. package/server/src/Models/ProductStoreLocation.php +77 -0
  138. package/server/src/Models/ProductVariant.php +125 -0
  139. package/server/src/Models/ProductVariantOption.php +86 -0
  140. package/server/src/Models/Review.php +127 -0
  141. package/server/src/Models/Store.php +478 -0
  142. package/server/src/Models/StoreHour.php +59 -0
  143. package/server/src/Models/StoreLocation.php +126 -0
  144. package/server/src/Models/StorefrontModel.php +22 -0
  145. package/server/src/Models/Vote.php +84 -0
  146. package/server/src/Notifications/StorefrontOrderCanceled.php +196 -0
  147. package/server/src/Notifications/StorefrontOrderCompleted.php +201 -0
  148. package/server/src/Notifications/StorefrontOrderCreated.php +157 -0
  149. package/server/src/Notifications/StorefrontOrderDriverAssigned.php +200 -0
  150. package/server/src/Notifications/StorefrontOrderEnroute.php +199 -0
  151. package/server/src/Notifications/StorefrontOrderNearby.php +201 -0
  152. package/server/src/Notifications/StorefrontOrderPreparing.php +202 -0
  153. package/server/src/Notifications/StorefrontOrderReadyForPickup.php +202 -0
  154. package/server/src/Observers/NetworkObserver.php +40 -0
  155. package/server/src/Observers/ProductObserver.php +118 -0
  156. package/server/src/Providers/EventServiceProvider.php +23 -0
  157. package/server/src/Providers/StorefrontServiceProvider.php +103 -0
  158. package/server/src/Support/Metrics.php +193 -0
  159. package/server/src/Support/OrderConfig.php +13 -0
  160. package/server/src/Support/QPay.php +208 -0
  161. package/server/src/Support/Storefront.php +201 -0
  162. package/server/src/routes.php +180 -0
  163. package/server/tests/Feature.php +5 -0
@@ -0,0 +1,51 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('checkouts', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('public_id', 191)->nullable()->index();
20
+ $table->char('company_uuid', 36)->nullable()->index('checkouts_company_uuid_foreign');
21
+ $table->char('order_uuid', 36)->nullable()->index('checkouts_order_uuid_foreign');
22
+ $table->char('cart_uuid', 36)->nullable()->index('checkouts_cart_uuid_foreign');
23
+ $table->char('store_uuid', 36)->nullable()->index('checkouts_store_uuid_foreign');
24
+ $table->char('network_uuid', 36)->nullable()->index('checkouts_network_uuid_foreign');
25
+ $table->char('gateway_uuid', 36)->nullable()->index('checkouts_gateway_uuid_foreign');
26
+ $table->char('service_quote_uuid', 36)->nullable()->index('checkouts_service_quote_uuid_foreign');
27
+ $table->char('owner_uuid', 36)->nullable();
28
+ $table->string('owner_type')->nullable();
29
+ $table->string('token')->nullable();
30
+ $table->integer('amount')->nullable();
31
+ $table->string('currency')->nullable();
32
+ $table->boolean('is_cod')->default(false);
33
+ $table->boolean('is_pickup')->default(false);
34
+ $table->json('options')->nullable();
35
+ $table->json('cart_state')->nullable();
36
+ $table->boolean('captured')->default(false);
37
+ $table->softDeletes();
38
+ $table->timestamps();
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Reverse the migrations.
44
+ *
45
+ * @return void
46
+ */
47
+ public function down()
48
+ {
49
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('checkouts');
50
+ }
51
+ };
@@ -0,0 +1,48 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('gateways', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('public_id', 191)->nullable()->index();
20
+ $table->char('company_uuid', 36)->nullable()->index('gateways_company_uuid_foreign');
21
+ $table->char('created_by_uuid', 36)->nullable()->index('gateways_created_by_uuid_foreign');
22
+ $table->char('logo_file_uuid', 36)->nullable()->index('gateways_logo_file_uuid_foreign');
23
+ $table->char('owner_uuid', 36)->nullable();
24
+ $table->string('owner_type')->nullable();
25
+ $table->string('name')->nullable();
26
+ $table->string('description')->nullable();
27
+ $table->string('code')->nullable();
28
+ $table->string('type')->nullable();
29
+ $table->boolean('sandbox')->default(false)->index();
30
+ $table->json('meta')->nullable();
31
+ $table->json('config')->nullable();
32
+ $table->string('return_url')->nullable();
33
+ $table->string('callback_url')->nullable();
34
+ $table->softDeletes();
35
+ $table->timestamps();
36
+ });
37
+ }
38
+
39
+ /**
40
+ * Reverse the migrations.
41
+ *
42
+ * @return void
43
+ */
44
+ public function down()
45
+ {
46
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('gateways');
47
+ }
48
+ };
@@ -0,0 +1,36 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('network_stores', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('network_uuid', 191)->nullable()->index('network_stores_network_uuid_foreign');
20
+ $table->string('store_uuid', 191)->nullable()->index('network_stores_store_uuid_foreign');
21
+ $table->char('category_uuid', 36)->nullable()->index('network_stores_category_uuid_foreign');
22
+ $table->softDeletes();
23
+ $table->timestamps();
24
+ });
25
+ }
26
+
27
+ /**
28
+ * Reverse the migrations.
29
+ *
30
+ * @return void
31
+ */
32
+ public function down()
33
+ {
34
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('network_stores');
35
+ }
36
+ };
@@ -0,0 +1,56 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('networks', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('public_id', 191)->nullable()->index();
19
+ $table->char('uuid', 36)->nullable()->unique();
20
+ $table->string('created_by_uuid', 191)->nullable()->index('networks_created_by_uuid_foreign');
21
+ $table->string('company_uuid', 191)->nullable()->index('networks_company_uuid_foreign');
22
+ $table->char('logo_uuid', 36)->nullable()->index('networks_logo_uuid_foreign');
23
+ $table->char('backdrop_uuid', 36)->nullable()->index('networks_backdrop_uuid_foreign');
24
+ $table->string('name')->nullable();
25
+ $table->longText('key')->nullable();
26
+ $table->boolean('online')->default(true)->index();
27
+ $table->string('currency')->nullable();
28
+ $table->string('timezone')->nullable();
29
+ $table->string('pod_method')->nullable();
30
+ $table->json('options')->nullable();
31
+ $table->json('alertable')->nullable();
32
+ $table->string('description')->nullable();
33
+ $table->string('phone')->nullable();
34
+ $table->string('email')->nullable();
35
+ $table->string('website')->nullable();
36
+ $table->string('facebook')->nullable();
37
+ $table->string('instagram')->nullable();
38
+ $table->string('twitter')->nullable();
39
+ $table->json('tags')->nullable();
40
+ $table->json('translations')->nullable();
41
+ $table->string('slug', 191)->nullable()->index();
42
+ $table->softDeletes();
43
+ $table->timestamps();
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Reverse the migrations.
49
+ *
50
+ * @return void
51
+ */
52
+ public function down()
53
+ {
54
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('networks');
55
+ }
56
+ };
@@ -0,0 +1,43 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('notification_channels', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->index();
19
+ $table->char('company_uuid', 36)->nullable()->index('notification_channels_company_uuid_foreign');
20
+ $table->char('created_by_uuid', 36)->nullable()->index('notification_channels_created_by_uuid_foreign');
21
+ $table->string('owner_uuid')->nullable();
22
+ $table->string('owner_type')->nullable();
23
+ $table->char('certificate_uuid', 36)->nullable()->index('notification_channels_certificate_uuid_foreign');
24
+ $table->json('config')->nullable();
25
+ $table->json('options')->nullable();
26
+ $table->string('name')->nullable();
27
+ $table->string('scheme')->nullable();
28
+ $table->string('app_key')->nullable();
29
+ $table->softDeletes();
30
+ $table->timestamps();
31
+ });
32
+ }
33
+
34
+ /**
35
+ * Reverse the migrations.
36
+ *
37
+ * @return void
38
+ */
39
+ public function down()
40
+ {
41
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('notification_channels');
42
+ }
43
+ };
@@ -0,0 +1,44 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('payment_methods', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('public_id', 191)->nullable()->index();
20
+ $table->char('company_uuid', 36)->nullable()->index('payment_methods_company_uuid_foreign');
21
+ $table->char('store_uuid', 36)->nullable()->index('payment_methods_store_uuid_foreign');
22
+ $table->char('gateway_uuid', 36)->nullable()->index('payment_methods_gateway_uuid_foreign');
23
+ $table->char('owner_uuid', 36)->nullable();
24
+ $table->string('owner_type')->nullable();
25
+ $table->string('gateway_id')->nullable();
26
+ $table->string('type')->nullable();
27
+ $table->string('brand')->nullable();
28
+ $table->string('last4')->nullable();
29
+ $table->json('meta')->nullable();
30
+ $table->softDeletes();
31
+ $table->timestamps();
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Reverse the migrations.
37
+ *
38
+ * @return void
39
+ */
40
+ public function down()
41
+ {
42
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('payment_methods');
43
+ }
44
+ };
@@ -0,0 +1,38 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_addon_categories', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('product_uuid', 191)->nullable()->index('product_addon_categories_product_uuid_foreign');
20
+ $table->string('category_uuid', 191)->nullable()->index('product_addon_categories_category_uuid_foreign');
21
+ $table->json('excluded_addons')->nullable();
22
+ $table->mediumInteger('max_selectable')->nullable();
23
+ $table->boolean('is_required')->nullable();
24
+ $table->softDeletes();
25
+ $table->timestamps();
26
+ });
27
+ }
28
+
29
+ /**
30
+ * Reverse the migrations.
31
+ *
32
+ * @return void
33
+ */
34
+ public function down()
35
+ {
36
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_addon_categories');
37
+ }
38
+ };
@@ -0,0 +1,43 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_addons', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('public_id', 191)->nullable()->index();
19
+ $table->char('uuid', 36)->nullable()->unique();
20
+ $table->string('created_by_uuid', 191)->nullable()->index('product_addons_created_by_uuid_foreign');
21
+ $table->string('category_uuid', 191)->nullable()->index('product_addons_category_uuid_foreign');
22
+ $table->string('name')->nullable();
23
+ $table->string('description')->nullable();
24
+ $table->json('translations')->nullable();
25
+ $table->integer('price')->default(0);
26
+ $table->integer('sale_price')->default(0);
27
+ $table->boolean('is_on_sale')->nullable();
28
+ $table->string('slug', 191)->nullable()->index();
29
+ $table->softDeletes();
30
+ $table->timestamps();
31
+ });
32
+ }
33
+
34
+ /**
35
+ * Reverse the migrations.
36
+ *
37
+ * @return void
38
+ */
39
+ public function down()
40
+ {
41
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_addons');
42
+ }
43
+ };
@@ -0,0 +1,37 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_hours', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('product_uuid')->nullable()->index('product_hours_product_uuid_foreign');
20
+ $table->string('day_of_week')->nullable();
21
+ $table->time('start');
22
+ $table->time('end');
23
+ $table->softDeletes();
24
+ $table->timestamps();
25
+ });
26
+ }
27
+
28
+ /**
29
+ * Reverse the migrations.
30
+ *
31
+ * @return void
32
+ */
33
+ public function down()
34
+ {
35
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_hours');
36
+ }
37
+ };
@@ -0,0 +1,34 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_store_locations', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('product_uuid', 191)->nullable()->index('product_store_locations_product_uuid_foreign');
19
+ $table->string('store_location_uuid', 191)->nullable()->index('product_store_locations_store_location_uuid_foreign');
20
+ $table->softDeletes();
21
+ $table->timestamps();
22
+ });
23
+ }
24
+
25
+ /**
26
+ * Reverse the migrations.
27
+ *
28
+ * @return void
29
+ */
30
+ public function down()
31
+ {
32
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_store_locations');
33
+ }
34
+ };
@@ -0,0 +1,40 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_variant_options', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('public_id', 191)->nullable()->index();
19
+ $table->char('uuid', 36)->nullable()->unique();
20
+ $table->string('product_variant_uuid', 191)->nullable()->index('product_variant_options_product_variant_uuid_foreign');
21
+ $table->string('name')->nullable();
22
+ $table->string('description')->nullable();
23
+ $table->json('translations')->nullable();
24
+ $table->json('meta')->nullable();
25
+ $table->integer('additional_cost')->default(0);
26
+ $table->softDeletes();
27
+ $table->timestamps();
28
+ });
29
+ }
30
+
31
+ /**
32
+ * Reverse the migrations.
33
+ *
34
+ * @return void
35
+ */
36
+ public function down()
37
+ {
38
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_variant_options');
39
+ }
40
+ };
@@ -0,0 +1,44 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('product_variants', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('public_id', 191)->nullable()->index();
19
+ $table->char('uuid', 36)->nullable()->unique();
20
+ $table->string('product_uuid', 191)->nullable()->index('product_variants_product_uuid_foreign');
21
+ $table->string('name')->nullable();
22
+ $table->string('description')->nullable();
23
+ $table->json('translations')->nullable();
24
+ $table->json('meta')->nullable();
25
+ $table->boolean('is_multiselect')->default(false);
26
+ $table->boolean('is_required')->default(false);
27
+ $table->mediumInteger('min')->default(0);
28
+ $table->mediumInteger('max')->default(1);
29
+ $table->string('slug', 191)->nullable()->index();
30
+ $table->softDeletes();
31
+ $table->timestamps();
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Reverse the migrations.
37
+ *
38
+ * @return void
39
+ */
40
+ public function down()
41
+ {
42
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('product_variants');
43
+ }
44
+ };
@@ -0,0 +1,59 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('products', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->string('public_id', 191)->nullable()->index();
19
+ $table->char('uuid', 36)->nullable()->unique();
20
+ $table->string('company_uuid', 191)->nullable()->index('products_company_uuid_foreign');
21
+ $table->string('created_by_uuid', 191)->nullable()->index('products_created_by_uuid_foreign');
22
+ $table->string('primary_image_uuid', 191)->nullable()->index('products_primary_image_uuid_foreign');
23
+ $table->string('store_uuid', 191)->nullable()->index('products_store_uuid_foreign');
24
+ $table->string('category_uuid', 191)->nullable()->index('products_category_uuid_foreign');
25
+ $table->string('name')->nullable();
26
+ $table->longText('description')->nullable();
27
+ $table->json('tags')->nullable();
28
+ $table->json('meta')->nullable();
29
+ $table->json('translations')->nullable();
30
+ $table->mediumText('qr_code')->nullable();
31
+ $table->mediumText('barcode')->nullable();
32
+ $table->json('youtube_urls')->nullable();
33
+ $table->string('sku')->nullable();
34
+ $table->integer('price')->default(0);
35
+ $table->integer('sale_price')->default(0);
36
+ $table->boolean('is_on_sale')->nullable();
37
+ $table->boolean('is_service')->nullable()->index();
38
+ $table->boolean('is_bookable')->default(false);
39
+ $table->boolean('is_available')->default(true)->index();
40
+ $table->boolean('is_recommended')->nullable();
41
+ $table->boolean('can_pickup')->default(false);
42
+ $table->string('currency', 191)->nullable()->index();
43
+ $table->string('status', 191)->nullable()->index();
44
+ $table->string('slug', 191)->nullable()->index();
45
+ $table->softDeletes();
46
+ $table->timestamps();
47
+ });
48
+ }
49
+
50
+ /**
51
+ * Reverse the migrations.
52
+ *
53
+ * @return void
54
+ */
55
+ public function down()
56
+ {
57
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('products');
58
+ }
59
+ };
@@ -0,0 +1,41 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('reviews', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->string('public_id')->nullable()->unique();
20
+ $table->string('created_by_uuid')->nullable()->index('reviews_created_by_uuid_foreign');
21
+ $table->char('customer_uuid', 36)->nullable()->index('reviews_customer_uuid_foreign');
22
+ $table->char('subject_uuid', 36)->nullable();
23
+ $table->string('subject_type')->nullable();
24
+ $table->mediumInteger('rating')->nullable();
25
+ $table->text('content')->nullable();
26
+ $table->boolean('rejected')->default(false);
27
+ $table->softDeletes();
28
+ $table->timestamps();
29
+ });
30
+ }
31
+
32
+ /**
33
+ * Reverse the migrations.
34
+ *
35
+ * @return void
36
+ */
37
+ public function down()
38
+ {
39
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('reviews');
40
+ }
41
+ };
@@ -0,0 +1,37 @@
1
+ <?php
2
+
3
+ use Illuminate\Database\Migrations\Migration;
4
+ use Illuminate\Database\Schema\Blueprint;
5
+ use Illuminate\Support\Facades\Schema;
6
+
7
+ return new class extends Migration
8
+ {
9
+ /**
10
+ * Run the migrations.
11
+ *
12
+ * @return void
13
+ */
14
+ public function up()
15
+ {
16
+ Schema::connection(config('storefront.connection.db'))->create('store_hours', function (Blueprint $table) {
17
+ $table->bigIncrements('id');
18
+ $table->char('uuid', 36)->nullable()->unique();
19
+ $table->char('store_location_uuid', 36)->nullable()->index();
20
+ $table->string('day_of_week')->nullable();
21
+ $table->time('start');
22
+ $table->time('end');
23
+ $table->softDeletes();
24
+ $table->timestamps();
25
+ });
26
+ }
27
+
28
+ /**
29
+ * Reverse the migrations.
30
+ *
31
+ * @return void
32
+ */
33
+ public function down()
34
+ {
35
+ Schema::connection(config('storefront.connection.db'))->dropIfExists('store_hours');
36
+ }
37
+ };