@ozdao/prometheus-framework 0.2.92 → 0.2.94

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. package/dist/events.server.js +14 -6
  2. package/dist/events.server.mjs +14 -6
  3. package/dist/main-CX2ISR43.mjs +13629 -0
  4. package/dist/main-cffh4bbv.js +92 -0
  5. package/dist/main.css +1 -1
  6. package/dist/orders.server.js +37 -23
  7. package/dist/orders.server.mjs +37 -23
  8. package/dist/organizations.server.js +2 -1
  9. package/dist/organizations.server.mjs +2 -1
  10. package/dist/prometheus-framework/src/components/Address/Address.vue2.cjs +1 -1
  11. package/dist/prometheus-framework/src/components/Address/Address.vue2.js +46 -48
  12. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  13. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +25 -20
  14. package/dist/prometheus-framework/src/components/Map/Map.vue.cjs +1 -1
  15. package/dist/prometheus-framework/src/components/Map/Map.vue.js +36 -26
  16. package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -1
  17. package/dist/prometheus-framework/src/components/Select/Select.vue.js +103 -1
  18. package/dist/prometheus-framework/src/components/Select/Select.vue2.cjs +1 -1
  19. package/dist/prometheus-framework/src/components/Select/Select.vue2.js +1 -103
  20. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.cjs +1 -1
  21. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue.js +36 -1
  22. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.cjs +1 -1
  23. package/dist/prometheus-framework/src/components/Spoiler/Spoiler.vue2.js +1 -36
  24. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  25. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +1 -1
  26. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
  27. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
  28. package/dist/prometheus-framework/src/modules/constructor/components/elements/VideoPlayer.vue.cjs +1 -1
  29. package/dist/prometheus-framework/src/modules/constructor/components/elements/VideoPlayer.vue.js +11 -11
  30. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  31. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  32. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
  33. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +1 -1
  34. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
  35. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +45 -45
  36. package/dist/prometheus-framework/src/modules/orders/components/blocks/StatusHistory.vue.cjs +2 -2
  37. package/dist/prometheus-framework/src/modules/orders/components/blocks/StatusHistory.vue.js +39 -65
  38. package/dist/prometheus-framework/src/modules/orders/components/pages/Order.vue.cjs +1 -1
  39. package/dist/prometheus-framework/src/modules/orders/components/pages/Order.vue.js +31 -31
  40. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -0
  41. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +242 -0
  42. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue2.cjs +1 -0
  43. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue2.js +1 -0
  44. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  45. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.js +62 -62
  46. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  47. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +28 -28
  48. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  49. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.js +99 -70
  50. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  51. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  52. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  53. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  54. package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  55. package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.js +10 -10
  56. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  57. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  58. package/dist/prometheus-framework/src/modules/orders/router/orders.backoffice.router.cjs +1 -1
  59. package/dist/prometheus-framework/src/modules/orders/router/orders.backoffice.router.js +1 -1
  60. package/dist/prometheus-framework/src/modules/orders/router/orders.router.cjs +1 -1
  61. package/dist/prometheus-framework/src/modules/orders/router/orders.router.js +2 -2
  62. package/dist/prometheus-framework/src/modules/orders/store/orders.cjs +1 -1
  63. package/dist/prometheus-framework/src/modules/orders/store/orders.js +33 -34
  64. package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs +1 -1
  65. package/dist/prometheus-framework/src/modules/orders/store/shopcart.js +42 -42
  66. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
  67. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +28 -26
  68. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.cjs +1 -1
  69. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.js +11 -11
  70. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
  71. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +47 -44
  72. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  73. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +162 -168
  74. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  75. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +27 -26
  76. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  77. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +7 -7
  78. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  79. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  80. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  81. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  82. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  83. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  84. package/dist/prometheus-framework/src/modules/organizations/store/memberships.cjs +1 -1
  85. package/dist/prometheus-framework/src/modules/organizations/store/memberships.js +1 -1
  86. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  87. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  88. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
  89. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +13 -13
  90. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  91. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  92. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
  93. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
  94. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  95. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +14 -15
  96. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +1 -1
  97. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +22 -20
  98. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  99. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
  100. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  101. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  102. package/dist/prometheus-framework/src/modules/products/store/products.cjs +1 -1
  103. package/dist/prometheus-framework/src/modules/products/store/products.js +59 -38
  104. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  105. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  106. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  107. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +23 -22
  108. package/dist/prometheus-framework/src/modules/users/components/blocks/CardUser.vue.cjs +1 -1
  109. package/dist/prometheus-framework/src/modules/users/components/blocks/CardUser.vue.js +17 -14
  110. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  111. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  112. package/dist/prometheus-framework.cjs.js +1 -1
  113. package/dist/prometheus-framework.es.js +1 -1
  114. package/dist/style.css +1 -1
  115. package/dist/web-CQQEUA9l.js +1 -0
  116. package/dist/web-D2Em-p-C.mjs +54 -0
  117. package/package.json +1 -1
  118. package/src/components/Address/Address.vue +23 -34
  119. package/src/components/LocationMarker/LocationMarker.vue +6 -1
  120. package/src/components/LocationSelection/LocationSelection.vue +4 -0
  121. package/src/components/Map/Map.vue +29 -15
  122. package/src/modules/constructor/components/elements/VideoPlayer.vue +2 -2
  123. package/src/modules/events/controllers/events.controller.js +4 -4
  124. package/src/modules/globals/components/blocks/CardHeader.vue +2 -2
  125. package/src/modules/integrations/stripe/controllers/services/stripe.service.js +17 -6
  126. package/src/modules/landing/components/pages/Farming.vue +226 -0
  127. package/src/modules/landing/components/pages/Governance.vue +3 -5
  128. package/src/modules/landing/components/pages/Home.vue +0 -3
  129. package/src/modules/landing/components/pages/Hotel.vue +1 -3
  130. package/src/modules/landing/components/pages/Page.vue +0 -3
  131. package/src/modules/landing/components/sections/Examples.vue +4 -56
  132. package/src/modules/landing/components/sections/SectionFeature.vue +41 -0
  133. package/src/modules/landing/components/sections/SectionFeaturesImages.vue +122 -0
  134. package/src/modules/landing/components/sections/SectionFocus.vue +59 -0
  135. package/src/modules/landing/components/sections/SectionHeroVideo.vue +164 -0
  136. package/src/modules/landing/router/landing.js +11 -0
  137. package/src/modules/marketplace/components/sections/Filters.vue +26 -23
  138. package/src/modules/orders/components/blocks/CardOrderItem.vue +8 -0
  139. package/src/modules/orders/components/blocks/StatusHistory.vue +25 -53
  140. package/src/modules/orders/components/pages/Order.vue +2 -6
  141. package/src/modules/orders/components/pages/OrderBackoffice.vue +393 -0
  142. package/src/modules/orders/components/pages/OrderCreate.vue +5 -4
  143. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +2 -3
  144. package/src/modules/orders/components/pages/Orders.vue +60 -11
  145. package/src/modules/orders/components/sections/FormDelivery.vue +2 -2
  146. package/src/modules/orders/controllers/orders.controller.js +30 -19
  147. package/src/modules/orders/models/order.model.js +8 -2
  148. package/src/modules/orders/router/orders.backoffice.router.js +1 -1
  149. package/src/modules/orders/router/orders.router.js +2 -2
  150. package/src/modules/orders/store/orders.js +3 -7
  151. package/src/modules/orders/store/shopcart.js +1 -1
  152. package/src/modules/organizations/components/blocks/CardDepartment.vue +2 -0
  153. package/src/modules/organizations/components/pages/Department.vue +5 -1
  154. package/src/modules/organizations/components/pages/DepartmentEdit.vue +65 -27
  155. package/src/modules/organizations/components/pages/Members.vue +2 -1
  156. package/src/modules/organizations/components/pages/Organization.vue +1 -1
  157. package/src/modules/organizations/controllers/memberships.controller.js +3 -1
  158. package/src/modules/organizations/store/memberships.js +1 -1
  159. package/src/modules/products/components/blocks/CardProduct.vue +2 -3
  160. package/src/modules/products/components/pages/ProductEdit.vue +10 -13
  161. package/src/modules/products/components/pages/Products.vue +2 -0
  162. package/src/modules/products/store/products.js +25 -2
  163. package/src/modules/spots/components/blocks/CardSpot.vue +2 -2
  164. package/src/modules/users/components/blocks/CardUser.vue +1 -0
  165. package/src/modules/landing/components/sections/AboutSection.vue +0 -69
@@ -9,7 +9,7 @@
9
9
  <!-- ////////////////////////// -->
10
10
  <!-- Input -->
11
11
  <!-- ////////////////////////// -->
12
- <input
12
+ <input
13
13
  ref="addressInput"
14
14
  class="w-100"
15
15
  :placeholder="placeholder"
@@ -39,7 +39,8 @@
39
39
 
40
40
  <script setup>
41
41
  import { ref, onMounted, watchEffect } from 'vue';
42
- import { Loader } from "@googlemaps/js-api-loader";
42
+
43
+ import { Loader as GMLoader } from "@googlemaps/js-api-loader";
43
44
 
44
45
  const props = defineProps({
45
46
  apiKey: {
@@ -57,38 +58,21 @@ const props = defineProps({
57
58
  type: String,
58
59
  default: ""
59
60
  },
61
+ locale: {
62
+ type: String,
63
+ default: 'en'
64
+ }
60
65
  });
61
66
 
62
67
  const emit = defineEmits(['update:address', 'update:location', 'update:country', 'update:state', 'update:city']);
63
68
 
64
-
65
69
  const addressInput = ref(null);
66
70
 
67
71
  let autocomplete;
68
72
 
69
- const initAutocomplete = () => {
70
- const loader = new Loader({
71
- apiKey: props.apiKey,
72
- version: "weekly",
73
- libraries: ["places"]
74
- });
75
-
76
- loader.load().then(() => {
77
- autocomplete = new google.maps.places.Autocomplete(addressInput.value);
78
- autocomplete.addListener('place_changed', onPlaceChanged);
79
- }).catch(e => {
80
- console.error(e);
81
- });
82
- };
83
-
84
- const onInput = () => {
85
- if (!autocomplete) {
86
- initAutocomplete();
87
- }
88
- };
89
-
90
73
  const onPlaceChanged = () => {
91
74
  const place = autocomplete.getPlace();
75
+
92
76
  if (!place.geometry || !place.address_components) {
93
77
  return;
94
78
  }
@@ -97,9 +81,8 @@ const onPlaceChanged = () => {
97
81
 
98
82
  for (let i = 0; i < place.address_components.length; i++) {
99
83
 
100
- console.log(place.address_components)
101
-
102
84
  let addr = place.address_components[i];
85
+
103
86
  if (addr.types.includes('country')) {
104
87
  country = addr.long_name;
105
88
  }
@@ -113,6 +96,7 @@ const onPlaceChanged = () => {
113
96
 
114
97
  const newAddress = place.formatted_address;
115
98
  const newLocation = { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() };
99
+
116
100
  emit('update:address', newAddress);
117
101
  emit('update:location', newLocation);
118
102
 
@@ -122,14 +106,19 @@ const onPlaceChanged = () => {
122
106
  emit('update:city', city);
123
107
  };
124
108
 
109
+ onMounted(() => {
110
+ const loader = new GMLoader({
111
+ apiKey: props.apiKey,
112
+ version: "weekly",
113
+ libraries: ["places"],
114
+ // language: props.locale,
115
+ });
125
116
 
126
- watchEffect(() => {
127
- if (props.address !== addressInput.value) {
128
- addressInput.value = props.address;
129
- }
130
- });
131
-
132
- onMounted(() => {
133
- initAutocomplete();
117
+ loader.load().then(() => {
118
+ autocomplete = new google.maps.places.Autocomplete(addressInput.value);
119
+ autocomplete.addListener('place_changed', onPlaceChanged);
120
+ }).catch(e => {
121
+ console.error(e);
122
+ });
134
123
  });
135
124
  </script>
@@ -34,6 +34,10 @@ const props = defineProps({
34
34
  default: null
35
35
  },
36
36
  apiKey: String,
37
+ locale: {
38
+ type: String,
39
+ default: 'en'
40
+ }
37
41
  })
38
42
 
39
43
  const emit = defineEmits(['update:location', 'update:address', 'update:country', 'update:state', 'update:city']);
@@ -47,7 +51,8 @@ onMounted(() => {
47
51
  const loader = new GMLoader({
48
52
  apiKey: props.apiKey,
49
53
  version: "weekly",
50
- libraries: ["places"]
54
+ libraries: ["places"],
55
+ // language: props.locale,
51
56
  });
52
57
 
53
58
  loader.load().then(() => {
@@ -7,6 +7,8 @@
7
7
 
8
8
  <Address
9
9
  :apiKey="GOOGLE_MAPS_API_KEY"
10
+
11
+ :locale="$i18n.locale"
10
12
 
11
13
  :address="position.address"
12
14
  :location="position.location"
@@ -36,6 +38,8 @@
36
38
 
37
39
  <LocationMarker
38
40
  :apiKey="GOOGLE_MAPS_API_KEY"
41
+ :locale="$i18n.locale"
42
+
39
43
 
40
44
  :address="position.address"
41
45
  :location="position.location"
@@ -1,12 +1,18 @@
1
1
  <template>
2
2
  <div ref="gmap" class="gmap"></div>
3
+
3
4
  </template>
4
5
 
5
6
  <script setup>
6
7
  import { ref, onMounted, watch } from 'vue';
7
8
 
9
+
10
+ import { Loader as GMLoader } from "@googlemaps/js-api-loader";
11
+
12
+
8
13
  const props = defineProps({
9
14
  location: Object,
15
+ apiKey: String,
10
16
  });
11
17
 
12
18
  let gmap = ref(null);
@@ -14,25 +20,33 @@ let map = null;
14
20
  let marker = null;
15
21
 
16
22
  onMounted(async () => {
17
- // Инициализировать карту
18
- map = new google.maps.Map(gmap.value, {
19
- zoom: 13,
20
- center: {
21
- lat: props.location.lat,
22
- lng: props.location.lng,
23
- },
23
+ const loader = new GMLoader({
24
+ apiKey: props.apiKey,
25
+ version: "weekly",
26
+ libraries: ["places"]
24
27
  });
25
28
 
26
- // Добавить маркер
27
- marker = new google.maps.Marker({
28
- position: {
29
- lat: props.location.lat,
30
- lng: props.location.lng,
31
- },
32
- map: map,
29
+ loader.load().then(() => {
30
+ map = new google.maps.Map(gmap.value, {
31
+ zoom: 13,
32
+ center: {
33
+ lat: props.location.lat,
34
+ lng: props.location.lng,
35
+ },
36
+ });
37
+
38
+ // Добавить маркер
39
+ marker = new google.maps.Marker({
40
+ position: {
41
+ lat: props.location.lat,
42
+ lng: props.location.lng,
43
+ },
44
+ map: map,
45
+ });
46
+ }).catch(e => {
47
+ console.error(e);
33
48
  });
34
49
  });
35
-
36
50
  watch(() => props.location, () => {
37
51
  if (map && marker) {
38
52
  // Обновить позицию маркера
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <div
3
- class="mn-b-thin w-100 pd-medium bg-white radius-medium"
3
+ class="mn-b-thin w-100 pd-medium bg-black radius-medium"
4
4
  >
5
5
 
6
6
  <div v-if="prop.content" class="flex-center flex">
7
- <video controls class="w-100">
7
+ <video controls class="w-100 h-max-30r">
8
8
  <source :src="prop.content" type="video/mp4">
9
9
  Your browser does not support the video tag.
10
10
  </video>
@@ -151,7 +151,7 @@ const middlewareFactory = (db) => {
151
151
  const deleteMethod = async (req, res) => {
152
152
  try {
153
153
  const event = await Event.findOneAndDelete({
154
- id: req.body.id
154
+ _id: req.body._id
155
155
  }).exec();
156
156
 
157
157
  if (!event) {
@@ -159,9 +159,9 @@ const middlewareFactory = (db) => {
159
159
  message: "Event is not deleted."
160
160
  });
161
161
  }
162
-
163
- await serviceStripe.deactivateProduct(event);
164
-
162
+ if (event.special) {
163
+ await serviceStripe.deactivateProduct(event);
164
+ }
165
165
  res.status(200).send(event);
166
166
  } catch (err) {
167
167
  return res.status(500).send({
@@ -47,7 +47,7 @@
47
47
  }
48
48
  })"
49
49
  >
50
- {{owner.target?.profile?.name}}
50
+ {{owner.target?.profile?.name || creator.target?.username || 'Anonymous'}}
51
51
  </span>
52
52
 
53
53
  <span
@@ -59,7 +59,7 @@
59
59
  }
60
60
  })"
61
61
  >
62
- · by {{creator.target?.profile?.name}}
62
+ · by {{creator.target?.profile?.name || creator.target?.username || 'Anonymous'}}
63
63
  </span>
64
64
 
65
65
  <span v-if="date" class="pos-relative">
@@ -104,13 +104,24 @@ class servicePaymentStripe extends servicePayment {
104
104
  return { product, price: newPrice, paymentLink };
105
105
  }
106
106
 
107
- async deactivateProduct(event) {
108
- // Retrieve the default price and deactivate it
109
- const product = await stripe.products.retrieve(event._id);
107
+ async deactivateProduct(event) {
108
+ try {
109
+ // Попытка получить продукт по ID
110
+ const product = await stripe.products.retrieve(event._id.toString());
111
+
112
+ // Если продукт найден, деактивировать его цену
113
+ if (product && product.default_price) {
114
+ await stripe.prices.update(product.default_price, {
115
+ active: false
116
+ });
117
+ }
118
+ } catch (error) {
119
+ // Обработка ошибки, если продукт не найден или другая ошибка API
120
+ console.error("Ошибка при деактивации продукта:", error.message);
121
+ // Можно здесь добавить дополнительную логику, если нужно
110
122
 
111
- await stripe.prices.update(product.default_price, {
112
- active: false
113
- });
123
+ // Ошибка игнорируется, чтобы пропустить этот шаг
124
+ }
114
125
  }
115
126
 
116
127
  async createPaymentLink(event) {
@@ -0,0 +1,226 @@
1
+ <template>
2
+ <div class="pd-thin">
3
+ <SectionHeroVideo class="mn-b-thin h-min-100"/>
4
+ <SectionFocus class="mn-b-big"/>
5
+
6
+ <SectionFeaturesImages
7
+ class="mn-b-big"
8
+ :textData="{
9
+ messages: {
10
+ en: {
11
+ title: 'What We Can Offer??',
12
+ subtitle: 'WDT – the foundation of the Weeder community. It serves as a currency, a DAO instrument, and for many other purposes:',
13
+ features: [
14
+ {
15
+ image: '/images/howitworks/step1.png',
16
+ title: 'Guidelines and Regulations',
17
+ text: 'WDT can be used as a digital currency within the Weeder ecosystem, allowing users to purchase products such as cannabis, advertising spaces, and other premium features on the platform.',
18
+ },
19
+ {
20
+ image: '/images/howitworks/step2.png',
21
+ title: 'Building Services',
22
+ text: 'As a DAO (Decentralized Autonomous Organization) instrument, WDT enables community governance and decision-making, allowing token holders to propose, discuss, and vote on various initiatives and developments within the Weeder ecosystem.',
23
+ },
24
+ {
25
+ image: '/images/howitworks/step3.png',
26
+ title: 'Digital and Marketing',
27
+ text: 'Holding WDT tokens can provide potential investment returns as the Weeder ecosystem grows and gains value. Additionally, WDT serves for dividend distribution – those who stake their tokens earn income from the platform.'
28
+ },
29
+ ]
30
+ },
31
+ ru: {
32
+ title: 'Что такое Weeder Token?',
33
+ subtitle: 'WDT – основа сообщества Weeder. Он выступает в качестве валюты, инструмента DAO и многих других целей:',
34
+ features: [
35
+ {
36
+ image: '/images/howitworks/step1.png',
37
+ title: 'Валюта',
38
+ text: 'WDT можно использовать как цифровую валюту в экосистеме Weeder, позволяя пользователям покупать товары, такие как марихуана, рекламные места и другие премиальные возможности на платформе.',
39
+ },
40
+ {
41
+ image: '/images/howitworks/step2.png',
42
+ title: 'Инструмент',
43
+ text: 'В качестве инструмента DAO (Децентрализованной Автономной Организации), WDT позволяет управлять сообществом и принимать решения, давая держателям токенов возможность предлагать, обсуждать и голосовать за различные инициативы и развитие в рамках экосистемы Weeder.',
44
+ },
45
+ {
46
+ image: '/images/howitworks/step3.png',
47
+ title: 'Инвестиции',
48
+ text: 'Хранение токенов WDT может обеспечить потенциальный инвестиционный доход по мере роста и увеличения стоимости экосистемы Weeder. Кроме того, WDT служит для распределения дивидендов – те, кто стейкают свои токены, получают доход с платформы.',
49
+ },
50
+ ]
51
+ }
52
+ }
53
+ }"
54
+ />
55
+
56
+ <section class="section">
57
+ <div class="mn-b-big t-center title">
58
+ <h2 class="mn-b-small">From Seed To Cash</h2>
59
+ <p class="w-m-60r mn-b-big mn-auto t-transp p-big">
60
+ We master all steps of the process and ready to share our experience
61
+ </p>
62
+ </div>
63
+
64
+ </section>
65
+
66
+ <SectionFeature
67
+ image="/images/farming/1.jpeg"
68
+ title="Guidelines and Regulations"
69
+ description="WDT can be used as a digital currency within the Weeder ecosystem, allowing users to purchase products such as cannabis, advertising spaces, and other premium features on the platform."
70
+ class="mn-b-thin"
71
+ />
72
+ <SectionFeature
73
+ image="/images/farming/3.jpeg"
74
+ title="Guidelines and Regulations"
75
+ description="WDT can be used as a digital currency within the Weeder ecosystem, allowing users to purchase products such as cannabis, advertising spaces, and other premium features on the platform."
76
+ class="mn-b-thin"
77
+ />
78
+ <SectionFeature
79
+ image="/images/farming/4.jpeg"
80
+ title="Guidelines and Regulations"
81
+ description="WDT can be used as a digital currency within the Weeder ecosystem, allowing users to purchase products such as cannabis, advertising spaces, and other premium features on the platform."
82
+ class="mn-b-big"
83
+ />
84
+
85
+
86
+ <Examples/>
87
+
88
+ <SectionFeatures
89
+ :textData="{
90
+ messages: {
91
+ en: {
92
+ title: 'How Its Works?',
93
+ subtitle: 'Earn Weeder Tokens while you get lit on our dank buds. Use them to buy more weed or cash out and spend it on snacks.',
94
+ features: [{
95
+ icon: '1',
96
+ title: 'Join Our Stoned Community',
97
+ description: 'Find the dankest strains on the market and start your journey to the clouds!',
98
+ },{
99
+ icon: '2',
100
+ title: 'Shop While You are High',
101
+ description: 'Order our premium bud and accessories with just a few clicks and get them delivered right to your door!',
102
+ },{
103
+ icon: '3',
104
+ title: 'Get Your Share',
105
+ description: 'As a loyal customer, you earn exclusive Weeder tokens as cashback. Get high and get paid!',
106
+ }]
107
+ },
108
+ ru: {
109
+ title: 'Как Это Работает?',
110
+ subtitle: 'Зарабатывайте токены Weeder, когда вы курите наши лучшие сорта травы. Используйте их, чтобы купить еще травы или выведите и купите себе вкусняшки.',
111
+ features: [{
112
+ icon: '1',
113
+ title: 'Присоединяйтесь к нашему сообществу',
114
+ description: 'Найдите лучшие сорта травы на рынке и начните свой путь к облакам!',
115
+ },{
116
+ icon: '2',
117
+ title: 'Закупатейсь с удобством',
118
+ description: 'Закажите нашу премиум-траву и аксессуары всего несколькими кликами и получите их доставку прямо к двери!',
119
+ },{
120
+ icon: '3',
121
+ title: 'Получите свою долю от прибыли',
122
+ description: 'Как лояльный клиент, вы зарабатываете эксклюзивные токены Weeder на свой кошелек в качестве кэшбэка. Курите и зарабатывайте!',
123
+ }]
124
+ }
125
+ }
126
+ }"
127
+ />
128
+ <SectionGuide
129
+ :textData="{
130
+ messages: {
131
+ en: {
132
+ title: 'If you still wonder?',
133
+ FAQ: [{
134
+ title: 'How does Weeder Token support the Weeder ecosystem?',
135
+ description: 'Weeder Token (WDT) is a fundamental component of the Weeder ecosystem, ensuring its operation, integration, and development. WDT tokens are used to pay for goods and services, participate in platform governance, and attract investments.'
136
+ },{
137
+ title: ' What security measures are in place to protect WDT tokens?',
138
+ description: 'WDT tokens are protected by modern cryptographic algorithms and blockchain technologies (Polygon Network), ensuring transaction security and asset storage. Users should also use reliable wallets and follow security recommendations for maximum protection of their tokens.'
139
+ },{
140
+ title: 'Can I use WDT tokens to pay on other platforms?',
141
+ description: 'Currently, WDT tokens are primarily used within the Weeder ecosystem. However, their use may be expanded to third-party platforms and services that Weeder collaborates or plans to collaborate with in the future.'
142
+ },{
143
+ title: 'What is the role of WDT in governing the Weeder platform?',
144
+ description: 'Weeder Token allows token holders to actively participate in platform governance. With its help, users can vote on various proposals, initiatives, and developments, influencing the future development of the Weeder ecosystem.'
145
+ },{
146
+ title: 'What are the benefits of using WDT for platform users?',
147
+ description: 'Using Weeder Token provides users with a range of benefits, such as the ability to purchase goods and services on the platform, participate in platform governance, invest in the Weeder ecosystem, and earn income from staking.'
148
+ },{
149
+ title: 'What is the perspective for WDT growth and development in the future?',
150
+ description: 'The growth and development of Weeder Token in the future depend on the success and expansion of the Weeder ecosystem. An increase in user numbers, collaboration with partners, and the implementation of new features and services can significantly increase the value and utility of Weeder Token.'
151
+ }]
152
+ },
153
+ ru: {
154
+ title: 'У вас еще есть вопросы?',
155
+ FAQ: [{
156
+ title: 'Как Weeder Token поддерживает экосистему Weeder?',
157
+ description: 'Weeder Token (WDT) является основным компонентом экосистемы Weeder, обеспечивая ее функционирование, интеграцию и развитие. Токены WDT используются для оплаты товаров и услуг, участия в управлении платформы и привлечения инвестиций.'
158
+ },{
159
+ title: 'Какие меры безопасности применяются для защиты токенов WDT?',
160
+ description: 'Токены WDT защищены современными криптографическими алгоритмами и технологиями блокчейна, обеспечивающими безопасность транзакций и хранения средств. Пользователи также должны использовать надежные кошельки и следовать рекомендациям по безопасности для максимальной защиты своих токенов.'
161
+ },{
162
+ title: 'Могу ли я использовать токены WDT для оплаты на других платформах?',
163
+ description: 'В настоящее время токены WDT преимущественно используются в рамках экосистемы Weeder. Однако в будущем их использование может быть расширено на сторонние платформы и сервисы, с которыми Weeder сотрудничает или планирует сотрудничать.'
164
+ },{
165
+ title: 'Какова роль WDT в управлении платформой Weeder?',
166
+ description: 'Weeder Token позволяет держателям токенов активно участвовать в управлении платформой. С его помощью пользователи могут голосовать по различным предложениям, инициативам и разработкам, влияя на будущее развитие экосистемы Weeder.'
167
+ },{
168
+ title: 'В чем преимущества использования WDT для пользователей платформы?',
169
+ description: 'Использование Weeder Token предоставляет пользователям ряд преимуществ, таких как возможность покупать товары и услуги на платформе, участвовать в управлении платформой, инвестировать в экосистему Weeder и получать доход от стейкинга.'
170
+ },{
171
+ title: 'Какова перспектива развития и роста WDT в будущем?',
172
+ description: 'Рост и развитие Weeder Token в будущем зависят от успешности и расширения экосистемы Weeder. Увеличение количества пользователей, сотрудничество с партнерами и внедрение новых возможностей и услуг могут существенно повысить спрос к токенам.'
173
+ }]
174
+ }
175
+ }
176
+ }"
177
+ />
178
+ </div>
179
+ </template>
180
+
181
+ <script setup>
182
+ import { computed } from 'vue'
183
+
184
+ import SectionHeroVideo from '@pf/src/modules/landing/components/sections/SectionHeroVideo.vue'
185
+ import SectionFocus from '@pf/src/modules/landing/components/sections/SectionFocus.vue'
186
+
187
+ import SectionHeroToken from '@pf/src/modules/landing/components/sections/SectionHeroToken.vue'
188
+
189
+ import SectionFeature from '@pf/src/modules/landing/components/sections/SectionFeature.vue'
190
+ import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
191
+ import SectionFeaturesImages from '@pf/src/modules/landing/components/sections/SectionFeaturesImages.vue'
192
+
193
+
194
+ import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
195
+ import SectionRoadmap from '@pf/src/modules/landing/components/sections/SectionRoadmap.vue'
196
+
197
+ import HowToBuyWDR from '@pf/src/modules/landing/components/sections/HowToBuyWDR.vue'
198
+ import Examples from '@pf/src/modules/landing/components/sections/Examples.vue'
199
+
200
+
201
+ import { useI18n } from 'vue-i18n'
202
+
203
+ const description = {
204
+ messages: {
205
+ en: {
206
+ meta: {
207
+ title: "Governance – Fin.Kan House is Cannabis friendly hotel in Phuket",
208
+ description: "At Fingan House, we encourage the exploration of Phuket’s finest cannabis products and are proud to provide a fully stocked bar of our signature product offerings to those looking to enjoy their experience to the fullest.",
209
+
210
+ },
211
+ },
212
+ ru: {
213
+ meta: {
214
+ title: "Управление – Fin.Kan House это каннабис-френдли отель на Пхукете",
215
+ description: "Приходите полюбоваться удивительными закатами в 18:00 или увидеть ночные огни Пхукета во всей красе после захода солнца. Купите немного каннабиса и наслаждайтесь видами — это действительно так просто!",
216
+ }
217
+ }
218
+ }
219
+ }
220
+
221
+ const { t } = useI18n(description)
222
+ </script>
223
+
224
+ <style lang="scss">
225
+
226
+ </style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="pd-thin">
3
3
  <SectionHeroToken class="mn-b-extra h-min-100"/>
4
- <WhatIsWDRSection class="mn-b-thin"/>
4
+ <SectionFeaturesImages class="mn-b-thin"/>
5
5
  <SectionFeatures
6
6
  :textData="{
7
7
  messages: {
@@ -99,7 +99,6 @@
99
99
  }"
100
100
  />
101
101
  <!-- Partials (need to remove) -->
102
- <Footer/>
103
102
  </div>
104
103
  </template>
105
104
 
@@ -110,11 +109,10 @@
110
109
  import SectionFeatures from '@pf/src/modules/landing/components/sections/SectionFeatures.vue'
111
110
  import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
112
111
  import SectionRoadmap from '@pf/src/modules/landing/components/sections/SectionRoadmap.vue'
113
-
114
- import WhatIsWDRSection from '@pf/src/modules/landing/components/sections/WhatIsWDRSection.vue'
112
+ import SectionFeaturesImages from '@pf/src/modules/landing/components/sections/SectionFeaturesImages.vue'
113
+
115
114
  import HowToBuyWDR from '@pf/src/modules/landing/components/sections/HowToBuyWDR.vue'
116
115
 
117
- import Footer from '@pf/src/components/Footer/Footer.vue'
118
116
 
119
117
  import { useI18n } from 'vue-i18n'
120
118
 
@@ -16,7 +16,6 @@
16
16
  <!-- <FeatureSection /> -->
17
17
  <!-- <HowItWorksSection /> -->
18
18
  <!-- <HeroSection /> -->
19
- <Footer/>
20
19
  </div>
21
20
  </template>
22
21
 
@@ -41,8 +40,6 @@
41
40
  // import HowItWorksSection from '@pf/src/modules/landing/components/sections/HowItWorksSection.vue'
42
41
  import MapSection from '@pf/src/modules/landing/components/sections/MapSection.vue'
43
42
 
44
- import Footer from '@pf/src/components/Footer/Footer.vue'
45
-
46
43
 
47
44
  </script>
48
45
 
@@ -4,7 +4,6 @@
4
4
  <AboutSection />
5
5
  <SectionGuide />
6
6
  <!-- Partials (need to remove) -->
7
- <Footer/>
8
7
  </div>
9
8
  </template>
10
9
 
@@ -14,8 +13,7 @@
14
13
  import AboutSection from '@pf/src/modules/landing/components/sections/AboutSection.vue'
15
14
  import SectionGuide from '@pf/src/modules/landing/components/sections/SectionGuide.vue'
16
15
  import MapSection from '@pf/src/modules/landing/components/sections/MapSection.vue'
17
- import Footer from '@pf/src/components/Footer/Footer.vue'
18
-
16
+
19
17
  import { useI18n } from 'vue-i18n'
20
18
 
21
19
 
@@ -44,8 +44,6 @@
44
44
 
45
45
  </section>
46
46
  </div>
47
- <!-- Partials (need to remove) -->
48
- <Footer/>
49
47
 
50
48
  </div>
51
49
  </template>
@@ -58,7 +56,6 @@
58
56
  import { useI18n } from 'vue-i18n'
59
57
 
60
58
  import * as marked from 'marked';
61
- import Footer from '@pf/src/components/Footer/Footer.vue'
62
59
 
63
60
 
64
61
  // const renderer = {