diff --git a/app/model/productDescription.go b/app/model/productDescription.go
index 4781be5..985b819 100644
--- a/app/model/productDescription.go
+++ b/app/model/productDescription.go
@@ -18,9 +18,10 @@ type ProductDescription struct {
AvailableLater string `gorm:"column:available_later;type:varchar(255)" json:"available_later" form:"available_later"`
DeliveryInStock string `gorm:"column:delivery_in_stock;type:varchar(255)" json:"delivery_in_stock" form:"delivery_in_stock"`
DeliveryOutStock string `gorm:"column:delivery_out_stock;type:varchar(255)" json:"delivery_out_stock" form:"delivery_out_stock"`
- Usage string `gorm:"column:usage;type:text" json:"usage" form:"usage"`
+ Usage string `gorm:"column:_usage_;type:text" json:"usage" form:"usage"`
- ExistsInDatabase bool `gorm:"-" json:"exists_in_database"`
+ ImageLink string `gorm:"column:image_link" json:"image_link"`
+ ExistsInDatabase bool `gorm:"-" json:"exists_in_database"`
}
type ProductRow struct {
diff --git a/app/repos/productDescriptionRepo/productDescriptionRepo.go b/app/repos/productDescriptionRepo/productDescriptionRepo.go
index 4e42175..391ecb0 100644
--- a/app/repos/productDescriptionRepo/productDescriptionRepo.go
+++ b/app/repos/productDescriptionRepo/productDescriptionRepo.go
@@ -4,6 +4,7 @@ import (
"errors"
"fmt"
+ "git.ma-al.com/goc_daniel/b2b/app/config"
"git.ma-al.com/goc_daniel/b2b/app/db"
"git.ma-al.com/goc_daniel/b2b/app/model"
"git.ma-al.com/goc_daniel/b2b/app/model/dbmodel"
@@ -36,6 +37,27 @@ func (r *ProductDescriptionRepo) GetProductDescription(productID uint, productid
IDShop: int32(constdata.SHOP_ID),
IDLang: int32(productid_lang),
}).
+ Select(`
+ `+dbmodel.PsProductLangCols.IDProduct.TabCol()+` AS id_product,
+ `+dbmodel.PsProductLangCols.IDShop.TabCol()+` AS id_shop,
+ `+dbmodel.PsProductLangCols.IDLang.TabCol()+` AS id_lang,
+ `+dbmodel.PsProductLangCols.Description.TabCol()+` AS description,
+ `+dbmodel.PsProductLangCols.DescriptionShort.TabCol()+` AS description_short,
+ `+dbmodel.PsProductLangCols.LinkRewrite.TabCol()+` AS link_rewrite,
+ `+dbmodel.PsProductLangCols.MetaDescription.TabCol()+` AS meta_description,
+ `+dbmodel.PsProductLangCols.MetaKeywords.TabCol()+` AS meta_keywords,
+ `+dbmodel.PsProductLangCols.MetaTitle.TabCol()+` AS meta_title,
+ `+dbmodel.PsProductLangCols.Name.TabCol()+` AS name,
+ `+dbmodel.PsProductLangCols.AvailableNow.TabCol()+` AS available_now,
+ `+dbmodel.PsProductLangCols.AvailableLater.TabCol()+` AS available_later,
+ `+dbmodel.PsProductLangCols.DeliveryInStock.TabCol()+` AS delivery_in_stock,
+ `+dbmodel.PsProductLangCols.DeliveryOutStock.TabCol()+` AS delivery_out_stock,
+ `+dbmodel.PsProductLangCols.Usage.TabCol()+` AS _usage_,
+ CONCAT(?, '/', `+dbmodel.PsImageShopCols.IDImage.TabCol()+`, '-large_default/', `+dbmodel.PsProductLangCols.LinkRewrite.TabCol()+`, '.webp') AS image_link
+ `, config.Get().Image.ImagePrefix).
+ Joins("JOIN " + dbmodel.TableNamePsImageShop +
+ " ON " + dbmodel.PsImageShopCols.IDProduct.TabCol() + "=" + dbmodel.PsProductLangCols.IDProduct.TabCol() +
+ " AND " + dbmodel.PsImageShopCols.Cover.TabCol() + " = 1").
First(&ProductDescription).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
diff --git a/bo/components.d.ts b/bo/components.d.ts
index f0f9cc4..c9bf5aa 100644
--- a/bo/components.d.ts
+++ b/bo/components.d.ts
@@ -34,6 +34,7 @@ declare module 'vue' {
ProductCustomization: typeof import('./src/components/customer/components/ProductCustomization.vue')['default']
ProductDetailView: typeof import('./src/components/admin/ProductDetailView.vue')['default']
'ProductDetailView copy': typeof import('./src/components/admin/ProductDetailView copy.vue')['default']
+ ProductEditor: typeof import('./src/components/inner/ProductEditor.vue')['default']
ProductVariants: typeof import('./src/components/customer/components/ProductVariants.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
@@ -62,5 +63,6 @@ declare module 'vue' {
USidebar: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Sidebar.vue')['default']
UTable: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Table.vue')['default']
UTabs: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Tabs.vue')['default']
+ UTextarea: typeof import('./node_modules/@nuxt/ui/dist/runtime/components/Textarea.vue')['default']
}
}
diff --git a/bo/src/app.config.ts b/bo/src/app.config.ts
index 7e88496..e0c4961 100644
--- a/bo/src/app.config.ts
+++ b/bo/src/app.config.ts
@@ -56,6 +56,11 @@ export const uiOptions: NuxtUIOptions = {
content: 'border! border-(--border-light)! dark:border-(--border-dark)! outline-0! ring-0! bg-(--second-light) dark:bg-(--main-dark)',
}
+ },
+ textarea: {
+ slots: {
+ base: 'ring-0! outline-0! rounded-md border border-(--border-light)! dark:border-(--border-dark)! text-base!'
+ }
}
}
}
\ No newline at end of file
diff --git a/bo/src/assets/main.css b/bo/src/assets/main.css
index 3e1c5a6..8041d23 100644
--- a/bo/src/assets/main.css
+++ b/bo/src/assets/main.css
@@ -5,6 +5,10 @@ body {
font-family: "Inter", sans-serif;
}
+li {
+ margin-left: 20px
+}
+
.inter {
font-family: "Inter", sans-serif;
}
diff --git a/bo/src/components/admin/PageProducts.vue b/bo/src/components/admin/PageProducts.vue
index c6c7efb..c2d4e26 100644
--- a/bo/src/components/admin/PageProducts.vue
+++ b/bo/src/components/admin/PageProducts.vue
@@ -4,7 +4,7 @@
@@ -153,7 +153,7 @@ async function fetchProductList() {
}
}
-function goToProduct(productId: number) {
+function goToProduct(productId: number, linkRewrite: string) {
let path = {
name: route.name,
params: route.params,
@@ -162,7 +162,7 @@ function goToProduct(productId: number) {
localStorage.setItem('back_from_product', JSON.stringify(path))
router.push({
name: 'customer-product-details',
- params: { product_id: productId }
+ params: { product_id: productId, link_rewrite: linkRewrite }
})
}
@@ -281,7 +281,7 @@ const columns: TableColumn[] = [
cell: ({ row }) => {
return h(UButton, {
onClick: () => {
- goToProduct(row.original.product_id)
+ goToProduct(row.original.product_id, row.original.link_rewrite)
},
class: 'cursor-pointer',
color: 'info',
diff --git a/bo/src/components/admin/ProductDetailView.vue b/bo/src/components/admin/ProductDetailView.vue
index acd7556..62be34c 100644
--- a/bo/src/components/admin/ProductDetailView.vue
+++ b/bo/src/components/admin/ProductDetailView.vue
@@ -6,9 +6,8 @@
Back to products
-
-
+
+
@@ -18,7 +17,7 @@
Selected language
- {{langs.find(l => l.id === toLangId)?.name || 'Select language'}}
+ {{ selectedLangName }}
@@ -34,7 +33,8 @@
-
+
Change Text
@@ -45,13 +45,16 @@
{
- toLangId = settingStore.shopDefaultLanguage
+ handleCancel()
isTranslations = false
}" color="info" variant="outline">
- Cancel and back to Polish
+ Cancel
-
- Save translations
+ {
+ await productStore.saveProductDescription(productID, toLangId)
+ isTranslations = false
+ }">
+ Save
@@ -65,62 +68,59 @@
-
-
- Product Image
-
-
-
+
+
![]()
{
+ const target = e.target as HTMLImageElement
+ target.src = errorImg
+ }">
+
+
- {{ productStore.productDescription.name || 'Product Name' }}
+ {{ productStore.productDescription.name || 'Product name not provided' }}
+
+
-
+
Short description:
-
-
-
-
-
-
-
+
-
-
+
+
- {{ productStore.productDescription.available_now || 'Available now' }}
+ {{ productStore.productDescription.available_now }}
-
+
- {{ productStore.productDescription.delivery_in_stock || 'Delivery information' }}
+ {{ productStore.productDescription.delivery_in_stock }}
@@ -132,213 +132,49 @@
root: 'items-start!'
}">
-
-
-
-
-
-
-
-
-
+
+
-
-
-
- Change Text
-
-
-
-
- Save the edited text
-
-
-
- Cancel
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/bo/src/layouts/default.vue b/bo/src/layouts/default.vue
index 1ccbd9b..18dc7c8 100644
--- a/bo/src/layouts/default.vue
+++ b/bo/src/layouts/default.vue
@@ -50,7 +50,7 @@
-
@@ -168,6 +168,7 @@ const menu = ref
(null)
async function getTopMenu() {
try {
const { items } = await useFetchJson('/api/v1/restricted/menu/get-top-menu')
+
menu.value = items
} catch (err) {
console.log(err)
diff --git a/bo/src/router/langs.ts b/bo/src/router/langs.ts
index b39e195..78dee8c 100644
--- a/bo/src/router/langs.ts
+++ b/bo/src/router/langs.ts
@@ -47,6 +47,9 @@ export async function initCountryCurrency() {
}
defCountry.value = items.find((x) => x.id === defLang.value?.id)
currentCountry.value = idfromcookie ?? defCountry.value
+ console.log(defCountry.value);
+ console.log(currentCountry.value);
+
} catch (error) {
console.error('Failed to fetch languages:', error)
}
diff --git a/bo/src/stores/product.ts b/bo/src/stores/product.ts
index b4a4400..ee8408e 100644
--- a/bo/src/stores/product.ts
+++ b/bo/src/stores/product.ts
@@ -28,6 +28,7 @@ export const useProductStore = defineStore('product', () => {
const loading = ref(false)
const error = ref(null)
const productDescription = ref()
+ const copyProductDescription = ref()
async function getProductDescription(langId: number | null, productID: number) {
loading.value = true
@@ -36,8 +37,8 @@ export const useProductStore = defineStore('product', () => {
const response = await useFetchJson(
`/api/v1/restricted/product-translation/get-product-description?productID=${productID}&productLangID=${langId ? langId : settingStore.shopDefaultLanguage}`
)
- productDescription.value = response.items
-
+ productDescription.value = structuredClone(response.items)
+ copyProductDescription.value = structuredClone(response.items)
} catch (e: unknown) {
error.value = e instanceof Error ? e.message : 'Failed to load product description'
} finally {
@@ -45,7 +46,6 @@ export const useProductStore = defineStore('product', () => {
}
}
- const translat = ref()
const settingStore = useSettingsStore()
async function translateProductDescription(productID: number, toLangId: number, model: string = 'Google') {
loading.value = true
@@ -87,6 +87,8 @@ export const useProductStore = defineStore('product', () => {
})
}
)
+
+ await getProductDescription(langId, productID)
return data
} catch (e) {
console.error(e)
@@ -97,7 +99,7 @@ export const useProductStore = defineStore('product', () => {
productDescription,
loading,
error,
- translat,
+ copyProductDescription,
translateProductDescription,
getProductDescription,
saveProductDescription
diff --git a/bo/src/types/product.d.ts b/bo/src/types/product.d.ts
index 3753f73..99cba7b 100644
--- a/bo/src/types/product.d.ts
+++ b/bo/src/types/product.d.ts
@@ -7,6 +7,8 @@ export interface ProductDescription {
available_now: string
delivery_in_stock?: string
usage: string
+ image_link: string
+ link_rewrite: string
}
export interface Product {
diff --git a/i18n/migrations/20260302163100_routes.sql b/i18n/migrations/20260302163100_routes.sql
index 1f51f96..07ca0ca 100644
--- a/i18n/migrations/20260302163100_routes.sql
+++ b/i18n/migrations/20260302163100_routes.sql
@@ -10,35 +10,35 @@ CREATE TABLE IF NOT EXISTS b2b_routes (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-INSERT IGNORE INTO b2b_routes
- (name, path, component, meta, active)
-VALUES
- ('root', '', '', '{"trans": "route.root"}', 0),
- ('home', '', '/views/HomeView.vue', '{"trans": "route.home"}', 1),
- ('login', 'login', '/views/LoginView.vue', '{"guest":true}', 1),
- ('register', 'register', '/views/RegisterView.vue', '{"guest":true}', 1),
- ('password-recovery', 'password-recovery', '/views/PasswordRecoveryView.vue', '{"guest":true}', 1),
- ('reset-password', 'reset-password', '/views/ResetPasswordView.vue', '{"guest":true}', 1),
- ('verify-email', 'verify-email', '/views/VerifyEmailView.vue', '{"guest":true}', 1);
-
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (1, 'root', '', '', '{"trans": "route.root"}', 0);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (2, 'home', '', '/views/HomeView.vue', '{"trans": "route.home"}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (3, 'login', 'login', '/views/LoginView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (4, 'register', 'register', '/views/RegisterView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (5, 'password-recovery', 'password-recovery', '/views/PasswordRecoveryView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (6, 'reset-password', 'reset-password', '/views/ResetPasswordForm.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (7, 'verify-email', 'verify-email', '/views/VerifyEmailView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (8, 'category', 'category/:category_id-:link_rewrite', '/views/CategoryView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (9, 'admin-products-category', 'products/:category_id-:link_rewrite', '/components/admin/PageProducts.vue', '{
--- "guest": true
--- }', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (10, 'customer-addresses', 'addresses', '/components/customer/PageAddresses.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (11, 'customer-carts', 'carts', '/components/customer/PageCarts.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (12, 'customer-orders', 'orders', '/components/customer/PageOrders.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (13, 'customer-statistic', 'statistic', '/components/customer/PageStatistic.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (14, 'customer-product-details', 'products/:product_id', '/components/admin/ProductDetailView.vue', '{"guest":true}', 1);
--- INSERT INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES (15, 'admin-products', 'products', '/components/admin/PageProducts.vue', '{"guest":true}', 1);
+-- INSERT IGNORE INTO b2b_routes
+-- (name, path, component, meta, active)
+-- VALUES
+-- ('root', '', '', '{"trans": "route.root"}', 0),
+-- ('home', '', '/views/HomeView.vue', '{"trans": "route.home"}', 1),
+-- ('login', 'login', '/views/LoginView.vue', '{"guest":true}', 1),
+-- ('register', 'register', '/views/RegisterView.vue', '{"guest":true}', 1),
+-- ('password-recovery', 'password-recovery', '/views/PasswordRecoveryView.vue', '{"guest":true}', 1),
+-- ('reset-password', 'reset-password', '/views/ResetPasswordView.vue', '{"guest":true}', 1),
+-- ('verify-email', 'verify-email', '/views/VerifyEmailView.vue', '{"guest":true}', 1);
+INSERT IGNORE INTO `b2b_routes` (`id`, `name`, `path`, `component`, `meta`, `active`) VALUES
+(1, 'root', '', '', '{"trans": "route.root"}', 0),
+(2, 'home', '', '/views/HomeView.vue', '{"trans": "route.home"}', 1),
+(3, 'login', 'login', '/views/LoginView.vue', '{"guest":true}', 1),
+(4, 'register', 'register', '/views/RegisterView.vue', '{"guest":true}', 1),
+(5, 'password-recovery', 'password-recovery', '/views/PasswordRecoveryView.vue', '{"guest":true}', 1),
+(6, 'reset-password', 'reset-password', '/views/ResetPasswordForm.vue', '{"guest":true}', 1),
+(7, 'verify-email', 'verify-email', '/views/VerifyEmailView.vue', '{"guest":true}', 1),
+(8, 'category', 'category/:category_id-:link_rewrite', '/views/CategoryView.vue', '{"guest":true}', 1),
+(9, 'admin-products-category', 'products/:category_id-:link_rewrite', '/components/admin/PageProducts.vue', '{
+ "guest": true
+}', 1),
+(10, 'customer-addresses', 'addresses', '/components/customer/PageAddresses.vue', '{"guest":true}', 1),
+(11, 'customer-carts', 'carts', '/components/customer/PageCarts.vue', '{"guest":true}', 1),
+(12, 'customer-orders', 'orders', '/components/customer/PageOrders.vue', '{"guest":true}', 1),
+(13, 'customer-statistic', 'statistic', '/components/customer/PageStatistic.vue', '{"guest":true}', 1),
+(14, 'customer-product-details', 'products/:product_id/:link_rewrite', '/components/admin/ProductDetailView.vue', '{"guest":true}', 1),
+(15, 'admin-products', 'products', '/components/admin/PageProducts.vue', '{"guest":true}', 1);
CREATE TABLE IF NOT EXISTS b2b_top_menu (
menu_id INT AUTO_INCREMENT NOT NULL,
@@ -54,97 +54,91 @@ CREATE TABLE IF NOT EXISTS b2b_top_menu (
INDEX FK_b2b_top_menu_parent_id_idx (parent_id ASC)
) ENGINE = InnoDB;
-
-INSERT IGNORE INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES
-(1, JSON_COMPACT('{"name":"root","trans":{"pl":{"label":"Menu główne"},"en":{"label":"Main Menu"},"de":{"label":"Hauptmenü"}}}'),NULL,JSON_COMPACT('{}'),1,1),
-(3, JSON_COMPACT('{"name":"admin-products","trans":{"pl":{"label":"admin-products"},"en":{"label":"admin-products"},"de":{"label":"admin-products"}}}'),1,JSON_COMPACT('{}'),1,1),
-(9, JSON_COMPACT('{"name":"carts","trans":{"pl":{"label":"Koszyki"},"en":{"label":"Carts"},"de":{"label":"Warenkörbe"}}}'),3,JSON_COMPACT('{"route": {"name": "home", "params":{"locale": ""}}}'),1,1);
-
-
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (1, '{"name":"root","trans":{"pl":{"label":"Menu główne"},"en":{"label":"Main Menu"},"de":{"label":"Hauptmenü"}}}', NULL, '{}', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (2, '{
--- "name": "admin-products",
--- "trans": {
--- "pl": {
--- "label": "Products"
--- },
--- "en": {
--- "label": "Products"
--- },
--- "de": {
--- "label": "Products"
--- }
--- },
--- "icon" : "quill:list"
--- }', 1, '{"route":{"name":"admin-products","params":{"locale":""}}}', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (3, '{
--- "name": "customer-carts",
--- "trans": {
--- "pl": {
--- "label": "Carts"
--- },
--- "en": {
--- "label": "Carts"
--- },
--- "de": {
--- "label": "Carts"
--- }
--- },
--- "icon" : "proicons:cart"
--- }', 1, '{"route":{"name":"customer-carts","params":{"locale":""}}}', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (4, '{
--- "name": "customer-addresses",
--- "trans": {
--- "pl": {
--- "label": "Addresses"
--- },
--- "en": {
--- "label": "Addresses"
--- },
--- "de": {
--- "label": "Addresses"
--- }
--- },
--- "icon" : "ph:address-book"
--- }', 1, '{"route":{"name":"customer-addresses","params":{"locale":""}}}', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (5, '{
--- "name": "customer-orders",
--- "trans": {
--- "pl": {
--- "label": "Orders"
--- },
--- "en": {
--- "label": "Orders"
--- },
--- "de": {
--- "label": "Orders"
--- }
--- },
--- "icon" : "lsicon:order-integral-outline"
--- }', 1, '{"route":{"name":"customer-orders","params":{"locale":""}}}', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (6, '{
--- "name": "customer-statistic",
--- "trans": {
--- "pl": {
--- "label": "Statistic"
--- },
--- "en": {
--- "label": "Statistic"
--- },
--- "de": {
--- "label": "Statistic"
--- }
--- },
--- "icon" : "akar-icons:statistic-up"
--- }', 1, '{
--- "route": {
--- "name": "customer-statistic",
--- "params": {
--- "locale": ""
--- }
--- }
--- }', 1, 1);
--- INSERT INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES (9, '{"name":"carts","trans":{"pl":{"label":"Koszyki"},"en":{"label":"Carts"},"de":{"label":"Warenkörbe"}}}', 3, '{"route":{"name":"home","params":{"locale":""}}}', 1, 1);
+INSERT IGNORE INTO `b2b_top_menu` (`menu_id`, `label`, `parent_id`, `params`, `active`, `position`) VALUES
+(1, '{"name":"root","trans":{"pl":{"label":"Menu główne"},"en":{"label":"Main Menu"},"de":{"label":"Hauptmenü"}}}', NULL, '{}', 1, 1),
+(2, '{
+ "name": "admin-products",
+ "trans": {
+ "pl": {
+ "label": "Products"
+ },
+ "en": {
+ "label": "Products"
+ },
+ "de": {
+ "label": "Products"
+ }
+ },
+ "icon" : "quill:list"
+}', 1, '{"route":{"name":"admin-products","params":{"locale":""}}}', 1, 1),
+(3, '{
+ "name": "customer-carts",
+ "trans": {
+ "pl": {
+ "label": "Carts"
+ },
+ "en": {
+ "label": "Carts"
+ },
+ "de": {
+ "label": "Carts"
+ }
+ },
+ "icon" : "proicons:cart"
+}', 1, '{"route":{"name":"customer-carts","params":{"locale":""}}}', 1, 1),
+(4, '{
+ "name": "customer-addresses",
+ "trans": {
+ "pl": {
+ "label": "Addresses"
+ },
+ "en": {
+ "label": "Addresses"
+ },
+ "de": {
+ "label": "Addresses"
+ }
+ },
+ "icon" : "ph:address-book"
+}', 1, '{"route":{"name":"customer-addresses","params":{"locale":""}}}', 1, 1),
+(5, '{
+ "name": "customer-orders",
+ "trans": {
+ "pl": {
+ "label": "Orders"
+ },
+ "en": {
+ "label": "Orders"
+ },
+ "de": {
+ "label": "Orders"
+ }
+ },
+ "icon" : "lsicon:order-integral-outline"
+}', 1, '{"route":{"name":"customer-orders","params":{"locale":""}}}', 1, 1),
+(6, '{
+ "name": "customer-statistic",
+ "trans": {
+ "pl": {
+ "label": "Statistic"
+ },
+ "en": {
+ "label": "Statistic"
+ },
+ "de": {
+ "label": "Statistic"
+ }
+ },
+ "icon" : "akar-icons:statistic-up"
+}', 1, '{
+ "route": {
+ "name": "customer-statistic",
+ "params": {
+ "locale": ""
+ }
+ }
+}', 1, 1),
+(9, '{"name":"carts","trans":{"pl":{"label":"Koszyki"},"en":{"label":"Carts"},"de":{"label":"Warenkörbe"}}}', 3, '{"route":{"name":"home","params":{"locale":""}}}', 1, 1);
diff --git a/i18n/migrations/20260302163123_create_tables_data.sql b/i18n/migrations/20260302163123_create_tables_data.sql
index 88875c5..620fbb2 100644
--- a/i18n/migrations/20260302163123_create_tables_data.sql
+++ b/i18n/migrations/20260302163123_create_tables_data.sql
@@ -11,7 +11,6 @@ INSERT INTO `b2b_roles` (`name`, `id`) VALUES ('user','1');
INSERT INTO `b2b_roles` (`name`, `id`) VALUES ('admin','2');
INSERT INTO `b2b_roles` (`name`, `id`) VALUES ('super_admin','3');
-
-- insert sample admin user admin@ma-al.com/Maal12345678
INSERT IGNORE INTO b2b_customers (id, email, password, first_name, last_name, role_id, provider, provider_id, avatar_url, is_active, email_verified, email_verification_token, email_verification_expires, password_reset_token, password_reset_expires, last_password_reset_request, last_login_at, lang_id, country_id, created_at, updated_at, deleted_at)
VALUES
@@ -30,6 +29,4 @@ VALUES
(3, '🇨🇿', 16, 2),
(4, '🇩🇪', 1, 2);
-
-
-- +goose Down
\ No newline at end of file