diff --git a/angular.json b/angular.json index 60ddcdf..fa75383 100644 --- a/angular.json +++ b/angular.json @@ -148,13 +148,85 @@ "namedChunks": false, "extractLicenses": true, "serviceWorker": "ngsw-config.json" + }, + "lavero": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.lavero.ts" + }, + { + "replace": "src/app/brands/brand-routes.ts", + "with": "src/app/brands/brand-routes.lavero.ts" + } + ], + "index": "src/index.lavero.html", + "styles": [ + "src/styles.scss", + "src/styles/themes/lavero.theme.scss" + ], + "outputPath": "dist/laveromarket", + "optimization": false, + "extractLicenses": false, + "sourceMap": true + }, + "lavero-production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.lavero.production.ts" + }, + { + "replace": "src/app/brands/brand-routes.ts", + "with": "src/app/brands/brand-routes.lavero.ts" + } + ], + "index": "src/index.lavero.html", + "styles": [ + "src/styles.scss", + "src/styles/themes/lavero.theme.scss" + ], + "outputPath": "dist/laveromarket", + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kB", + "maximumError": "1MB" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "25kB", + "maximumError": "35kB" + } + ], + "outputHashing": "all", + "optimization": { + "scripts": true, + "styles": { + "minify": true, + "inlineCritical": true + }, + "fonts": { + "inline": true + } + }, + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "serviceWorker": "ngsw-config.json" } }, "defaultConfiguration": "production" }, "serve": { "options": { - "allowedHosts": ["novo.market", "dexarmarket.ru", "dexar.market","localhost"], + "allowedHosts": [ + "novo.market", + "dexarmarket.ru", + "dexar.market", + "localhost", + "lavero.store" + ], "proxyConfig": "proxy.conf.json" }, "builder": "@angular/build:dev-server", @@ -171,6 +243,13 @@ }, "novo-production": { "buildTarget": "Dexarmarket:build:novo-production" + }, + "lavero": { + "buildTarget": "Dexarmarket:build:lavero", + "proxyConfig": "proxy.conf.lavero.json" + }, + "lavero-production": { + "buildTarget": "Dexarmarket:build:lavero-production" } }, "defaultConfiguration": "development" @@ -181,5 +260,4 @@ } } } -} - +} \ No newline at end of file diff --git a/files/changes.txt b/files/changes.txt index 120eec6..d3ffc5c 100644 --- a/files/changes.txt +++ b/files/changes.txt @@ -1,748 +1,144 @@ -General Information -Information exchange with the SBP server is realized via RESTful API. All requests to the server must be executed via HTTPS using GET||POST||PUT||DELETE requests to the given ROOT address. Body of requests must be in JSON format. All not public requests must be signed by the client and the public key must be sent to the server for client identification and sign checking. -Header: -“Authorization”: {JSON WITH KEY AND PARTNERID} - “X-Region” : Moscow | Yerevan | ST. Petersburg - “X-Language” : RU | AM | EN - “WebSessionID” : f02fe5d6-c6ae-4b2e-9b4d-687534e11b01 - “Currency” :RUB | AMD | USD -Root: - API.dexarmarket.ru - - -General Information -Check if server is available -Get Marketplaces -Set Marketplaces -Get Item -Delete Item -New Item -New Callback -New Question -Get random Items -Get items in category -Get searched items -Get Categories -Delete Category -New Category -Create new websession -Check websession status -Delete websession status -Add to cart -Create New QR code for cart checkout -Check QR code -item structure -category structure -Check if server is available -Client needs to periodically check if the server is available by sending “ping” to the client. On error corresponding message must be shown. -Protocol: https -Type: GET -Path: /ping -Request Parameters: -{ - - -} -Response (Error): -{ -"message": "pong", -"status": "Wrong Header" -} -Response (OK): -{ -"message": "pong", -"status": "Correct Header" -} -________________ - - -Get Marketplaces -Get Available Marketplaces -Protocol: https -Type: GET -Path: /marketplaces -Request Parameters: -{ -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - [{“brand” : “dexar”, - “api”:”dexar.market”, - “bot”:”dexarmarket_bot”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”, ”St Petersburg - Russia”, ”Yerevan - Armenia”] - “currency”:[“RUB, ”AMD”, ”USD”] - “icon”:”./dexar.market.png”}, - {“brand” : “store”, - “api”:”dexarmarket.store”, - “bot”:”dexarstore_bot”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”,”St Petersburg - Russia”,”Yerevan - Armenia”] - “currency”:[“”RUB,”AMD”,”USD”] - “icon”:”./dexarmarket.store.png”}, - {“brand” : “Novo”, - “api”:”novo.market”, - “bot”:”novomarket_bot”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”, ”St Petersburg - Russia”,”Yerevan - Armenia”] - “currency”:[“”RUB,”AMD”,”USD”] - “icon”:”./novo.market.png”}] - - -} -________________ - - -Set Marketplaces -Get Available Marketplaces -Protocol: https -Type: PUT -Path: /marketplaces -Request Parameters: -{ - [{“brand” : “dexar”, - “api”:”dexar.market”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”,”St Petersburg - Russia”,”Yerevan - Armenia”] - “currency”:[“”RUB,”AMD”,”USD”] - “icon”:”./dexar.market.png”}, - {“brand” : “store”, - “api”:”dexarmarket.store”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”,”St Petersburg - Russia”,”Yerevan - Armenia”] - “currency”:[“”RUB,”AMD”,”USD”] - “icon”:”./dexarmarket.store.png”}, - {“brand” : “Novo”, - “api”:”novo.market”, - “languagies”:[“”am,”ru”,”en”], - “regions”:[“Mosocw - Russia”, ”St Petersburg - Russia”,”Yerevan - Armenia”] - “currency”:[“”RUB,”AMD”,”USD”] - “icon”:”./novo.market.png”}] - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “status”:”Marketplace updated” -} -________________ - - -Get Item -Get Item by ID -Protocol: https -Type: GET -Path: /items/:itemID -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “itemID”:... -} -________________ -Delete Item -Delete the item -Protocol: https -Type: Delete -Path: /items/:itemID -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “status”:”Item was deleted” -} -________________ -New Item -Create new Item -Protocol: https -Type: POST -Path: /items/:itemID -Request Parameters: -{ - “itemID”:... -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “itemID”:... -} -________________ -Update Item -Update the item -Protocol: https -Type: PUT -Path: /items/:itemID -Request Parameters: -{ - “itemID”:... -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “status”:”Item updated” -} -________________ - - -New Callback -Update the item -Protocol: https -Type: POST -Path: /items/:itemID/callback -Request Parameters: -{ - "rating": 5, - "comment": "Отличный товар!", - "sessionID": “ f02fe5d6-c6ae-4b2e-9b4d-687534e11b01” - "timestamp": "2026-02-28T12:00:00Z" -} -Response !=200(Error): -{ - "error": "wrong item" -} -Response =200(OK): -{ - “status”:”Callback added” -} -________________ -New Question -Update the item -Protocol: https -Type: POST -Path: /items/:itemID/questiion -Request Parameters: -{ - "question": "some question!", - "sessionID": “ f02fe5d6-c6ae-4b2e-9b4d-687534e11b01” - "timestamp": "2026-02-28T12:00:00Z" -} -Response !=200(Error): -{ - "error": "wrong item" -} -Response =200(OK): -{ - “status”:”Questiion added” -} -________________ - - -Get random Items -Get given number of items from random categorues -Protocol: https -Type: GET -Path: /items/randomitems?count=15 // 20 is the default -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - [“itemID”:...] -} -________________ -Get items in category -Get all items in category and in all subcategories inside the category -Protocol: https -Type: GET -Path: /category/:categoryID?count=30, skip=60 // default skip=0, default count=20 - - -Request Parameters: -{ -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - [“itemID”:...] -} -________________ - - -Get searched items -Get all items in category and in all subcategories inside the category -Protocol: https -Type: GET -Path: /searchitems -Parameters: -{ -search (string) — query text -categoryIDs (string) — e.g., 1,2,5 (includes all subcategories) -minPrice / maxPrice (float) — price range -tag (string) — e.g., sale -sort (string) — relevance (default), price_asc, price_desc, popular, rating -skip / count — default 0 / 20 -} -Examples: -* ?search=iphone&sort=popular -* ?categoryIDs=1,5&minPrice=100&maxPrice=500 -* ?tag=new&sort=price_asc&count=10 - - -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - "total": 12, - "skip": 0, - "count": 12, - "isGlobal": false, - "items": [ - { "itemID": 101, "name": "..." } - ] -} -________________ - - -Get Categories -Get all available categories -Protocol: https -Type: GET -Path: /category -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “categoryID”:... -} -________________ -Delete Category -Delete EMPTY category, no items and no subcategories must present -Protocol: https -Type: Delete -Path: /category/:categoryID -Request Parameters: -{ - - -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “status”:”Category was deleted” -} -________________ -New Category -Create new category -Protocol: https -Type: POST -Path: /category/ -Request Parameters: -{ - “CategoryID”:... -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “CategoryID”:... -} -________________ -Update Category -Update existing category -Protocol: https -Type: PUT -Path: /category/:categoryID -Request Parameters: -{ - “itemID”:... -} -Response !=200(Error): -{ - "error": "wrong header" -} -Response =200(OK): -{ - “status”:”Category was updated” -} -________________ -Create new websession -Creates a new websession for qr generation. By timeout a new websession must be requested, after the user shows some activity (click on qr). -Protocol: https -Type POST -Path /websession -Request Parameters: -{ - - -} -Response (OK): -{ -"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”, -"userId" : "", -"expires" : "sessionId", -"userSessionId": "", -"status": false - } -________________ -Check websession status -Check if the user is already logged in. a new websession for qr generation. By timeout a new websession must be requested, after the user shows some activity (click on qr). -Protocol: https -Type GET -Path /websession/:webSessionID -Request Parameters: -{ - - -} -Response (OK): -{ -"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”, -"userId" : "kHaAe9roaC2uq63AKGE/8+Ti/t/iFro68QhEZ1dRGLo", -"expires" : "sessionId", -"userSessionId": "8A94EFEFD003426A9B456C48CAC99BE6", -"x-Region" : "Moscow", -"x-Language" : "RU", -"currency" : "RUB", -"Status": true, -"cart": [ - { "itemID": 12, "quantity": 1, “colour”:”black”, “size”:”42”,"priice":230.50 }, - { "itemID": 13, "quantity": 2, “colour”:”dark”, “size”:”L”,"priice":250.50 }, - { "itemID": 14, "quantity": 3, “colour”:”blue”, “size”:”50”,"priice":290.50 }, -] -} -________________ -Delete websession status -Delete the session to log out from the system. -Protocol: https -Type DELETE -Path /websession/:webSessionID -Request Parameters: -{ -} -Response (OK): -{ - “status”:”User logged out” -} - -________________ -Add to cart -Add a all item to users (session) cart -Protocol: https -Type Post -Path /websession/:webSessionID -Request Parameters: -{ - [ - { "itemID": 12, "quantity": 1, “colour”:”black”, “size”:”42”,"priice":230.50 }, - { "itemID": 13, "quantity": 2, “colour”:”dark”, “size”:”L”,"priice":250.50 }, - { "itemID": 14, "quantity": 3, “colour”:”blue”, “size”:”50”,"priice":290.50 }, -] -} -Response (OK): -{ -"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”, -"userId" : "kHaAe9roaC2uq63AKGE/8+Ti/t/iFro68QhEZ1dRGLo", -"expires" : "sessionId", -"userSessionId": "8A94EFEFD003426A9B456C48CAC99BE6", -"Status": true, -"cart": [ - { "itemID": 12, "quantity": 1, “colour”:”black”, “size”:”42”,"priice":230.50 }, - { "itemID": 13, "quantity": 2, “colour”:”dark”, “size”:”L”,"priice":250.50 }, - { "itemID": 14, "quantity": 3, “colour”:”blue”, “size”:”50”,"priice":290.50 }, -] - } -________________ -Create New QR code for cart checkout -Create New QR for payment via SBP -Protocol: https -Type POST -Path /websession/:webSessionID/qr -Request Parameters: -{ -} - - -Response !=200(Error): -{ - "error": "wrong key" -} -Response =200(OK): -{ - "qrId": "BD10002CI1V3JP1T8QR8TIQ8K35RBVQB", - "qrStatus": "NEW", - "qrExpirationDate": "2025-11-20T10:10:44Z", - "Payload": "https://qr.nspk.ru/BD10002CI1V3JP1T8QR8TIQ8K35RBVQB?type=02&bank=100000000007&sum=1000&cur=RUB&crc=8ACC", - "qrUrl": "https://e-commerce.raiffeisen.ru/api/sbp/v1/qr/BD10002CI1V3JP1T8QR8TIQ8K35RBVQB/image" -} -________________ - - -Check QR code -Check QR status -Protocol: https -Type GET -Path /websession/:webSessionID/:qrID -Request Parameters: -{ -} - - -Response !=200(Error): -{ - "error": "Error from the bank " -} -Response =200(OK): -{ - "additionalInfo": "", - "paymentPurpose": "", - "amount": 10, - "code": "SUCCESS", - "createDate": "2025-11-20T13:17:20.453884+03:00", - "currency": "RUB", - "order": "102_540", - "paymentStatus": "NO_INFO", //check for SUCCESS - "qrId": "BD1000263VS7G81D8JCP5FHFTFEH38MT", - "transactionDate": "", - "transactionId": 0, - "qrExpirationDate": "2025-11-20T13:32:20+03:00" -} - - - - - - - - -## 8. Авторизация (вход через Telegram) - - -Авторизация **через Telegram** с **cookie-сессиями** (HttpOnly, Secure, SameSite=None). - - -Все auth-эндпоинты должны поддерживать CORS с `credentials: true`. - - -### Процесс авторизации - - -``` -1. Пользователь нажимает «Оформить заказ» → не авторизован → показывается диалог входа -2. Нажимает «Войти через Telegram» → открывается https://t.me/{bot}?start=auth_{callback} -3. Пользователь запускает бота в Telegram -4. Бот отправляет данные пользователя → бэкенд /auth/telegram/callback -5. Бэкенд создаёт сессию → устанавливает Set-Cookie -6. Фронтенд опрашивает GET /auth/session каждые 3 секунды -7. Сессия обнаружена → диалог закрывается → оформление заказа продолжается -``` - - ---- - - -### `GET /auth/session` — Проверить текущую сессию - - -**Запрос:** Только cookie (сессионная cookie, установленная бэкендом). - - -**Ответ `200`** (авторизован): -```json -{ - "sessionId": "sess_abc123", - "telegramUserId": 123456789, - "username": "john_doe", - "displayName": "John Doe", - "active": true, - "expiresAt": "2026-03-01T12:00:00Z" -} -``` - - -**Ответ `200`** (сессия истекла): -```json -{ - "sessionId": "sess_abc123", - "telegramUserId": 123456789, - "username": "john_doe", - "displayName": "John Doe", - "active": false, - "expiresAt": "2026-02-27T12:00:00Z" -} -``` - - -**Ответ `401`** (нет сессии): -```json -{ "error": "No active session" } -``` - - -**Объект AuthSession:** - - -| Поле | Тип | Обязат. | Описание | -|------------------|---------|---------|-------------------------------------------| -| `sessionId` | string | да | Уникальный ID сессии | -| `telegramUserId` | number | да | ID пользователя в Telegram | -| `username` | string? | нет | @username в Telegram (может быть null) | -| `displayName` | string | да | Отображаемое имя (имя + фамилия) | -| `active` | boolean | да | Действительна ли сессия | -| `expiresAt` | string | да | Дата истечения в формате ISO 8601 | - - ---- - - -### `GET /auth/telegram/callback` — Callback авторизации Telegram-бота - - -Вызывается Telegram-ботом после авторизации пользователя. - - -**Тело запроса (от бота):** -```json -{ - "id": 123456789, - "first_name": "John", - "last_name": "Doe", - "username": "john_doe", - "photo_url": "https://t.me/i/userpic/...", - "auth_date": 1709100000, - "hash": "abc123def456..." -} -``` - - - - -Бот должен: -1. Слушать команду `/start auth_{callbackUrl}` -2. Извлечь callback URL -3. Отправить данные пользователя (`id`, `first_name`, `username` и т.д.) на этот callback URL -4. Callback URL: `{apiUrl}/auth/telegram/callback` - - ---- - - -## Полный справочник эндпоинтов - - -### Новые эндпоинты - - -| Метод | Путь | Описание | Авторизация | -|--------|---------------------------|---------------------------------|-------------| -| `GET` | `/regions` | Список доступных регионов | Нет | -| `GET` | `/auth/session` | Проверка текущей сессии | Cookie | -| `GET` | `/auth/telegram/callback` | Callback авторизации через бота | Нет (бот) | -| `POST` | `/auth/logout` | Завершение сессии | Cookie | - - -________________ - - -item structure - CategoryID uint64 `json:"categoryID" binding:"required"` - ItemID uint64 `json:"itemID" binding:"required"` - Name string `json:"name" binding:"required"` - Description string `json:"description"` - Discount float32 `json:"discount" ` - Rating float32 `json:"rating" binding:"required"` - Visible bool `json:"rating"` - Priority uint64 `json:"priority"` - Tags []string `json:"tags"` - Badges []string `json:"badges"` - Details []itemdetail `json:"itemdetails"` - Colour string `json:"colour" binding:"required"` - Size string `json:"size" binding:"required"` - Price float32 `json:"price" binding:"required"` - Currency string `json:"currency" binding:"required"` - Remaining uint64 `json:"remaining" binding:"required"` - Names []itemname `json:"names"` - Language string `json:"language"` - Value string `json:"value"` - Descriptions []itemdescription `json:"descriptions" ` - Language string `json:"language"` - Value string `json:"value"` - Attributes []attribute `json:"attributes" binding:"required"` - Key string `json:"key"` - Value string `json:"value"` - Photos []photo `json:"photos"` - Type string `json:"type" binding:"required"` //video || photo - URL string `json:"url" binding:"required"` - Questions []question `json:"questions"` - Question string `json:"question" ` - Answer string `json:"answer" ` - Like uint64 `json:"like" ` - Dislike uint64 `json:"dislike" ` - Visits uint64 `json:"visits"` - Callbacks []callback `json:"callbacks" binding:"required"` - Rating float32 `json:"rating,omitempty"` - Content string `json:"content,omitempty"` - Userid string `json:"userID"` - Answer string `json:"answer"` - Timestamp string `json:"timestamp"` - PartnerID []string `json:"partnerID" binding:"required"` - - -category structure - CategoryID uint64 `json:"categoryID" binding:"required"` - ParentID uint64 `json:"parentID" binding:"required"` - Name string `json:"name" binding:"required"` - Visible bool `json:"visible" ` - Priority uint64 `json:"priority" ` - Icon string `json:"icon"` - WideIcon string `json:"wideicon"` - ItemsCount uint64 - CategoriesCount uint64 - Names []itemname `json:"names"` - Language string `json:"language"` - Value string `json:"value"` \ No newline at end of file + bro we need to add another project, under another port. it must be the same as dexar + here are infos: + colors: #FD7300 #3AAA35 #E24B00 + 1. lavero.store + 2. info@lavero.storre + 3. logo - public\assets\images\lavero\lavero-logo.png + + + info for legal: + "ՆՇԱԹԵՐԹ +պետական գրանցման +մասին տեղեկությունների +«ԼԱՎԵՐՈ» +Սահմանափակ +պատասխանատվությամբ ընկերություն +Գրանցված է Հայաստանի Հանրապետության +արդարադատության նախարարության իրավաբանական +անձանց պետական ռեգիստրի գործակալության կողմից +Գրանցված է` +Աշխատակից՝ +ՀՀ ԱՆ իրավաբանական անձանց պետական +ռեգիստրի գործակալություն +Ինքնաշխատ էլեկտրոնային գրանցում +Գրանցման ամսաթիվ՝ +Գրանցման համար՝ +ՀՎՀՀ՝ +18.05.2026 +999.110.1583686 +03590442 +Պետական գրանցման մասին տեղեկությունների նշաթերթը էլեկտրոնային եղանակով ձևավորված է ՀՀ ԱՆ +իրավաբանական անձանց պետական ռեգիստրի տեղեկատվական համակարգի կողմից և հանդիսանում է +«ԼԱՎԵՐՈ» Սահմանափակ պատասխանատվությամբ ընկերություն կանոնադրության անբաժանելի մասը։ +Սույն կանոնադրության գրանցումը հավաստվում է համակարգի կողմից գեներացված RBBE-3D66 +EF54-3DAE ծածկագրով քաղվածքով, որի իսկությունը և արդիականությունը կարող է ստուգվել +փաստաթղթերի վավերականության ստուգման միասնական համակարգում (e-verify.am): +Սույն կանոնադրությունը կազմված է 2026-05-18 և բաղկացած է 4 թերթից: +Հ Ա Ս Տ Ա Տ Վ Ա Ծ Է +«ԼԱՎԵՐՈ» +սահմանափակ +պատասխանատվությամբ +ընկերության հիմնադիրների +2026-05-18 կայացրած +Հիմնադիր ժողովի որոշմամբ +արձանագրություն թիվ` 1 +տնօրեն` ԳԵՎՈՐԳ ՄԱԹԵՎՈՍՅԱՆ +Գ Ր Ա Ն Ց Վ Ա Ծ Է +ՀԱՅԱՍՏԱՆԻ ՀԱՆՐԱՊԵՏՈՒԹՅԱՆ +ԱՐԴԱՐԱԴԱՏՈՒԹՅԱՆ ՆԱԽԱՐԱՐՈՒԹՅԱՆ +ԻՐԱՎԱԲԱՆԱԿԱՆ ԱՆՁԱՆՑ +ՊԵՏԱԿԱՆ ՌԵԳԻՍՏՐԻ ԳՈՐԾԱԿԱԼՈՒԹՅԱՆ +ԿՈՂՄԻՑ +Աշխատակից՝ ՀՀ ԻԱ Պետական ռեգիստրի էլ․ +համակարգ +Գրանցման հ/հ՝ - 999.110.1583686 +Գրանցման ամսաթիվ՝ 18.05.2026 +Հարկ վճարողի հաշվառման +համար (ՀՎՀՀ)` 03590442 +«ԼԱՎԵՐՈ» +ՍԱՀՄԱՆԱՓԱԿ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅԱՄԲ ԸՆԿԵՐՈՒԹՅԱՆ +ԿԱՆՈՆԱԴՐՈՒԹՅՈՒՆ +2026 +Էջ 1 4-ից +Սույն կանոնադրությունը կազմված է 2026-05-18 և բաղկացած է 4 թերթից: +1. ԸՆԴՀԱՆՈՒՐ ԴՐՈՒՅԹՆԵՐ +1.1. «ԼԱՎԵՐՈ» սահմանափակ պատասխանատվությամբ ընկերությունը (հետագայում` Ընկերություն) +համարվում է շահույթ ստանալու նպատակով հիմնադրված առևտրային կազմակերպություն +հանդիսացող իրավաբանական անձ, որի կանոնադրական կապիտալը բաժանված է սույն +կանոնադրությամբ սահմանված չափերով բաժնեմասերի: +1.2. Ընկերությունն իր գործունեության ընթացքում ղեկավարվում է Հայաստանի Հանրապետության +Քաղաքացիական Օրենսդրությամբ, այլ իրավական ակտերով և սույն կանոնադրությամբ: +1.3. Ընկերության ֆիրմային անվանումն է` +հայերեն լրիվ՝ «ԼԱՎԵՐՈ» սահմանափակ պատասխանատվությամբ ընկերություն +կրճատ՝ «ԼԱՎԵՐՈ» ՍՊԸ +ռուսերեն լրիվ՝ «ЛАВЕРО» Общество с Ограничеенной Ответственностью +կրճատ՝ «ЛАВЕРО» ՕՕՕ +անգլերեն լրիվ՝ «LAVERO» LIMITED LIABILITY COMPANY +կրճատ՝ «LAVERO» LLC +1.4. Ընկերության գտնվելու վայրը և իրավաբանական (փոստային) հասցեն է` ԿՈՏԱՅՔ, ԱԲՈՎՅԱՆ, ՎԵՐԻՆ +ՊՏՂՆԻ, 3-րդ փողոց, 28, Տ Փ/Դ՝ 2228: +2. ԸՆԿԵՐՈՒԹՅԱՆ ՄԱՍՆԱԿԻՑՆԵՐԸ, ՆՐԱՆՑ ԻՐԱՎՈՒՆՔՆԵՐՆ ՈՒ ՊԱՐՏԱԿԱՆՈՒԹՅՈՒՆՆԵՐԸ +2.1. Անձը համարվում է ընկերության մասնակից իրավաբանական անձանց պետական գրանցումն +իրականացնող մարմնի կողմից Ընկերության մասնակիցների գրանցամատյանում նրա որպես այդպիսին +գրանցվելու պահից: +2.2. Ընկերության կանոնադրական կապիտալում բաժնեմասը փոխանցելը. +2.2.1.Ընկերության մասնակիցն իրավունք ունի իր բաժնեմասը (դրա մասը) վաճառել կամ այլ` օրենքով +չարգելված ձևով, օտարել Ընկերության մեկ կամ մի քանի մասնակիցների, ինչպես նաև երրորդ անձանց: +Ընդ որում, մյուս մասնակիցներն ունեն այդ բաժնեմասը նույն գնով ձեռքբերման նախապատվության +իրավունք՝ Ընկերության կանոնադրական կապիտալում իրենց բաժնեմասերին համամասնորեն: Եթե +Ընկերության մյուս մասնակիցները չեն օգտագործել բաժնեմասը (դրա մասը) գնելու իրենց +նախապատվության իրավունքը կամ այն օգտագործել են մասամբ, ապա Ընկերությունն ունի այդ +բաժնեմասը նույն գնով ձեռքբերման նախապատվության իրավունք: +2.2.2.Երրորդ անձանց օտարման անհնարինության դեպքում մասնակցի պահանջով Ընկերությունն ինքը +պարտավոր է ձեռք բերել մասնակցի բաժնեմասը, այն իրացնել մեկ տարվա ընթացքում այլ +մասնակիցների կամ երրորդ անձանց կամ որոշում ընդունել բաժնեմասի չբաշխված մասի մարման +ճանապարհով Ընկերության կանոնադրական կապիտալի նվազեցման մասին: +2.2.3.Նախապատվության իրավունքի (այլ մասնակիցների կողմից վաճառվող բաժնեմասերի ձեռքբերման) +իրականացման ժամկետը սահմանվում է մեկ ամիս: +2.3. Ընկերությունից դուրս եկող մասնակցի բաժնեմասը դուրս գալու դիմումը ներկայացնելու պահից +փոխանցվում է ընկերությանը: +2.4. Ընկերության մասնակիցները կարող են տեղեկություններ ստանալ, ընկերության գործունեության մասին +գաղտնի փաստաթղթերից բացի, ծանոթանալ հաշվապահական հաշվառման, հաշվետվության, +ընկերության արտադրատնտեսական գործունեության այլ փաստաթղթերի հետ: +2.5. Ընկերության մասնակիցները պարտավոր են`– Ընկերության մասնակիցների ընդհանուր ժողովի սահմանված կարգի համաձայն կատարել +ներդրումներ Ընկերության կանոնադրական կապիտալում: +3. ԸՆԿԵՐՈՒԹՅԱՆ ԿԱՆՈՆԱԴՐԱԿԱՆ ԿԱՊԻՏԱԼԸ +3.1. Ընկերության կանոնադրական կապիտալը կազմում է 1000 դրամ: +Կանոնադրական կապիտալը սահմանում է պարտատերերի շահերը երաշխավորող ընկերության գույքի +նվազագույն չափը: +Ընկերության 100% բաժնեմասերը տեղաբաշխված են, լրիվ վճարված և պատկանում են սույն +կանոնադրության հավելվածում նշված մասնակցին (մասնակիցներին): +Էջ 2 4-ից +Սույն կանոնադրությունը կազմված է 2026-05-18 և բաղկացած է 4 թերթից: +4. ԸՆԿԵՐՈՒԹՅԱՆ ԿԱՌԱՎԱՐՈՒՄԸ +4.1. Ընկերության կառավարման մարմիններն են Ընկերության մասնակիցների ընդհանուր ժողովը և +Ընկերության գործադիր մարմինը՝ տնօրենը: +4.2. Ընկերության կառավարման բարձրագույն մարմինը Ընկերության մասնակիցների ընդհանուր ժողովն է, +որն ունի Ընկերության կառավարման և գործունեության ցանկացած հարցի վերջնական լուծման +իրավունք: +4.3. Ընկերության մասնակիցների հերթական ընդհանուր ժողովը հրավիրում է Ընկերության տնօրենի կողմից +տարեկան մեկ անգամ ֆինանսական տարվա ավարտից ոչ շուտ, քան երկու ամիս ոչ ուշ, քան չորս ամիս +անց: Ընկերությունը պարտավոր է ամեն տարի գումարել մասնակիցների հերթական ընդհանուր ժողովը` +Ընկերության գործունեության տարեկան արդյունքները հաստատելու համար: +4.4. Ընկերության ընթացիկ գործունեության ղեկավարումն իրականացնում է տնօրենը, որն ընտրվում է +Ընկերության մասնակիցների ընդհանուր ժողովի կողմից: +Տնօրենը իրավունք ունի առանց լիազորության գործարքներ կատարել Ընկերության անունից, եթե +գործարքի գումարը չի գերազանցում ընկերության զուտ ակտիվների մեծության 25%-ից: +Էջ 3 4-ից +Սույն կանոնադրությունը կազմված է 2026-05-18 և բաղկացած է 4 թերթից: +«ԼԱՎԵՐՈ» +ՍԱՀՄԱՆԱՓԱԿ ՊԱՏԱՍԽԱՆԱՏՎՈՒԹՅԱՄԲ ԸՆԿԵՐՈՒԹՅԱՆ +մասնակիցների ցուցակ +Մասնակցի քաղաքացիությունը, անունը, ազգանունը (պետությունը +որտեղ հիմնադրվել է, անվանումը) անձնագրի(գրանցման) տվյալները +հասցեն (գտնվելու վայրը) +Բաժնեմասի +չափը - % +Բաժնեմասը +ՀՀ դրամով +ԳԵՎՈՐԳ ՄԱԹԵՎՈՍՅԱՆ ՀԱՄԼԵՏԻ +Քաղաքացիություն՝ ՀԱՅԱՍՏԱՆ +ՀԾՀ` 2723060837 +ՀԱՅԱՍՏԱՆ ԿՈՏԱՅՔ ԱԲՈՎՅԱՆ ՎԵՐԻՆ ՊՏՂՆԻ 3 Փ. Տ 28 2228 +100.0 % 1000.0 +Էջ 4 4-ից" \ No newline at end of file diff --git a/package.json b/package.json index d487789..252416a 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,10 @@ "build:dexar": "ng build --configuration=production", "build:novo": "ng build --configuration=novo-production", "watch": "ng build --watch --configuration development", - "test": "ng test" + "test": "ng test", + "lavero": "ng serve --configuration=lavero --port 4202 --proxy-config proxy.conf.lavero.json", + "start:lavero": "ng serve --configuration=lavero --port 4202", + "build:lavero": "ng build --configuration=lavero-production" }, "private": true, "dependencies": { @@ -46,5 +49,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.9.3" } -} - +} \ No newline at end of file diff --git a/proxy.conf.lavero.json b/proxy.conf.lavero.json new file mode 100644 index 0000000..a12631d --- /dev/null +++ b/proxy.conf.lavero.json @@ -0,0 +1,11 @@ +{ + "/api": { + "target": "https://api.lavero.store:555", + "secure": false, + "changeOrigin": true, + "pathRewrite": { + "^/api": "" + }, + "logLevel": "debug" + } +} diff --git a/public/assets/images/lavero/lavero-logo.png b/public/assets/images/lavero/lavero-logo.png new file mode 100644 index 0000000..5b67ef5 Binary files /dev/null and b/public/assets/images/lavero/lavero-logo.png differ diff --git a/src/app/brands/brand-routes.lavero.ts b/src/app/brands/brand-routes.lavero.ts new file mode 100644 index 0000000..1e604fd --- /dev/null +++ b/src/app/brands/brand-routes.lavero.ts @@ -0,0 +1,49 @@ +// Lavero brand routes +// Loaded via angular.json fileReplacements when building for novo +import { Routes } from '@angular/router'; + +export const brandInfoRoutes: Routes = [ + { + path: 'about', + loadComponent: () => import('./lavero/pages/info/about/about.component').then(m => m.AboutLaveroComponent) + }, + { + path: 'contacts', + loadComponent: () => import('./lavero/pages/info/contacts/contacts.component').then(m => m.ContactsLaveroComponent) + }, + { + path: 'faq', + loadComponent: () => import('./lavero/pages/info/faq/faq.component').then(m => m.FaqLaveroComponent) + }, + { + path: 'delivery', + loadComponent: () => import('./lavero/pages/info/delivery/delivery.component').then(m => m.DeliveryLaveroComponent) + }, + { + path: 'guarantee', + loadComponent: () => import('./lavero/pages/info/guarantee/guarantee.component').then(m => m.GuaranteeLaveroComponent) + } +]; + +export const brandLegalRoutes: Routes = [ + { + path: 'company-details', + loadComponent: () => import('./lavero/pages/legal/company-details/company-details.component').then(m => m.CompanyDetailsLaveroComponent) + }, + { + path: 'payment-terms', + loadComponent: () => import('./lavero/pages/legal/payment-terms/payment-terms.component').then(m => m.PaymentTermsLaveroComponent) + }, + { + path: 'return-policy', + loadComponent: () => import('./lavero/pages/legal/return-policy/return-policy.component').then(m => m.ReturnPolicyLaveroComponent) + }, + { + path: 'public-offer', + loadComponent: () => import('./lavero/pages/legal/public-offer/public-offer.component').then(m => m.PublicOfferLaveroComponent) + }, + { + path: 'privacy-policy', + loadComponent: () => import('./lavero/pages/legal/privacy-policy/privacy-policy.component').then(m => m.PrivacyPolicyLaveroComponent) + } +]; diff --git a/src/app/brands/lavero/pages/info/about/about.component.html b/src/app/brands/lavero/pages/info/about/about.component.html new file mode 100644 index 0000000..1a78582 --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/about.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/info/about/about.component.ts b/src/app/brands/lavero/pages/info/about/about.component.ts new file mode 100644 index 0000000..d44a75c --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/about.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { AboutLaveroRuComponent } from './ru/about-ru.component'; +import { AboutLaveroEnComponent } from './en/about-en.component'; +import { AboutLaveroHyComponent } from './hy/about-hy.component'; + +@Component({ + selector: 'app-about-lavero', + imports: [AboutLaveroRuComponent, AboutLaveroEnComponent, AboutLaveroHyComponent], + templateUrl: './about.component.html', + styleUrls: ['../../../../../pages/info/about/about.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AboutLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/info/about/en/about-en.component.html b/src/app/brands/lavero/pages/info/about/en/about-en.component.html new file mode 100644 index 0000000..2a31714 --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/en/about-en.component.html @@ -0,0 +1,99 @@ + diff --git a/src/app/brands/lavero/pages/info/about/en/about-en.component.ts b/src/app/brands/lavero/pages/info/about/en/about-en.component.ts new file mode 100644 index 0000000..d9fe35c --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/en/about-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-about-lavero-en', + templateUrl: './about-en.component.html', + styleUrls: ['../../../../../../pages/info/about/about.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AboutLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/about/hy/about-hy.component.html b/src/app/brands/lavero/pages/info/about/hy/about-hy.component.html new file mode 100644 index 0000000..b4850b9 --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/hy/about-hy.component.html @@ -0,0 +1,99 @@ + diff --git a/src/app/brands/lavero/pages/info/about/hy/about-hy.component.ts b/src/app/brands/lavero/pages/info/about/hy/about-hy.component.ts new file mode 100644 index 0000000..e20dd19 --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/hy/about-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-about-lavero-hy', + templateUrl: './about-hy.component.html', + styleUrls: ['../../../../../../pages/info/about/about.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AboutLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/about/ru/about-ru.component.html b/src/app/brands/lavero/pages/info/about/ru/about-ru.component.html new file mode 100644 index 0000000..65e9bad --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/ru/about-ru.component.html @@ -0,0 +1,99 @@ + diff --git a/src/app/brands/lavero/pages/info/about/ru/about-ru.component.ts b/src/app/brands/lavero/pages/info/about/ru/about-ru.component.ts new file mode 100644 index 0000000..947e9f7 --- /dev/null +++ b/src/app/brands/lavero/pages/info/about/ru/about-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-about-lavero-ru', + templateUrl: './about-ru.component.html', + styleUrls: ['../../../../../../pages/info/about/about.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AboutLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/contacts/contacts.component.html b/src/app/brands/lavero/pages/info/contacts/contacts.component.html new file mode 100644 index 0000000..f2c8222 --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/contacts.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/info/contacts/contacts.component.ts b/src/app/brands/lavero/pages/info/contacts/contacts.component.ts new file mode 100644 index 0000000..3d3ac34 --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/contacts.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { ContactsLaveroRuComponent } from './ru/contacts-ru.component'; +import { ContactsLaveroEnComponent } from './en/contacts-en.component'; +import { ContactsLaveroHyComponent } from './hy/contacts-hy.component'; + +@Component({ + selector: 'app-contacts-lavero', + imports: [ContactsLaveroRuComponent, ContactsLaveroEnComponent, ContactsLaveroHyComponent], + templateUrl: './contacts.component.html', + styleUrls: ['../../../../../pages/info/contacts/contacts.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ContactsLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.html b/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.html new file mode 100644 index 0000000..404bea8 --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.html @@ -0,0 +1,49 @@ + diff --git a/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.ts b/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.ts new file mode 100644 index 0000000..1306d15 --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/en/contacts-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-contacts-lavero-en', + templateUrl: './contacts-en.component.html', + styleUrls: ['../../../../../../pages/info/contacts/contacts.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ContactsLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.html b/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.html new file mode 100644 index 0000000..bcf7a7a --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.html @@ -0,0 +1,49 @@ + diff --git a/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.ts b/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.ts new file mode 100644 index 0000000..f0168eb --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/hy/contacts-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-contacts-lavero-hy', + templateUrl: './contacts-hy.component.html', + styleUrls: ['../../../../../../pages/info/contacts/contacts.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ContactsLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.html b/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.html new file mode 100644 index 0000000..be476f0 --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.html @@ -0,0 +1,49 @@ + diff --git a/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.ts b/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.ts new file mode 100644 index 0000000..5a0a40d --- /dev/null +++ b/src/app/brands/lavero/pages/info/contacts/ru/contacts-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-contacts-lavero-ru', + templateUrl: './contacts-ru.component.html', + styleUrls: ['../../../../../../pages/info/contacts/contacts.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ContactsLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/delivery/delivery.component.html b/src/app/brands/lavero/pages/info/delivery/delivery.component.html new file mode 100644 index 0000000..15c294e --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/delivery.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/info/delivery/delivery.component.ts b/src/app/brands/lavero/pages/info/delivery/delivery.component.ts new file mode 100644 index 0000000..67d8822 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/delivery.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { DeliveryLaveroRuComponent } from './ru/delivery-ru.component'; +import { DeliveryLaveroEnComponent } from './en/delivery-en.component'; +import { DeliveryLaveroHyComponent } from './hy/delivery-hy.component'; + +@Component({ + selector: 'app-delivery-lavero', + imports: [DeliveryLaveroRuComponent, DeliveryLaveroEnComponent, DeliveryLaveroHyComponent], + templateUrl: './delivery.component.html', + styleUrls: ['../../../../../pages/info/delivery/delivery.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DeliveryLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.html b/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.html new file mode 100644 index 0000000..7258216 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.html @@ -0,0 +1,78 @@ + diff --git a/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.ts b/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.ts new file mode 100644 index 0000000..0ed8547 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/en/delivery-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-delivery-lavero-en', + templateUrl: './delivery-en.component.html', + styleUrls: ['../../../../../../pages/info/delivery/delivery.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DeliveryLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.html b/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.html new file mode 100644 index 0000000..f38be50 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.html @@ -0,0 +1,78 @@ + diff --git a/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.ts b/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.ts new file mode 100644 index 0000000..1ca4b52 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/hy/delivery-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-delivery-lavero-hy', + templateUrl: './delivery-hy.component.html', + styleUrls: ['../../../../../../pages/info/delivery/delivery.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DeliveryLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.html b/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.html new file mode 100644 index 0000000..1661fb0 --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.html @@ -0,0 +1,78 @@ + diff --git a/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.ts b/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.ts new file mode 100644 index 0000000..ea3872c --- /dev/null +++ b/src/app/brands/lavero/pages/info/delivery/ru/delivery-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-delivery-lavero-ru', + templateUrl: './delivery-ru.component.html', + styleUrls: ['../../../../../../pages/info/delivery/delivery.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DeliveryLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/faq/en/faq-en.component.html b/src/app/brands/lavero/pages/info/faq/en/faq-en.component.html new file mode 100644 index 0000000..f846c8e --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/en/faq-en.component.html @@ -0,0 +1,93 @@ + diff --git a/src/app/brands/lavero/pages/info/faq/en/faq-en.component.ts b/src/app/brands/lavero/pages/info/faq/en/faq-en.component.ts new file mode 100644 index 0000000..bc13f27 --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/en/faq-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-faq-lavero-en', + templateUrl: './faq-en.component.html', + styleUrls: ['../../../../../../pages/info/faq/faq.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FaqLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/faq/faq.component.html b/src/app/brands/lavero/pages/info/faq/faq.component.html new file mode 100644 index 0000000..78edde9 --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/faq.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/info/faq/faq.component.ts b/src/app/brands/lavero/pages/info/faq/faq.component.ts new file mode 100644 index 0000000..5bb6a95 --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/faq.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { FaqLaveroRuComponent } from './ru/faq-ru.component'; +import { FaqLaveroEnComponent } from './en/faq-en.component'; +import { FaqLaveroHyComponent } from './hy/faq-hy.component'; + +@Component({ + selector: 'app-faq-lavero', + imports: [FaqLaveroRuComponent, FaqLaveroEnComponent, FaqLaveroHyComponent], + templateUrl: './faq.component.html', + styleUrls: ['../../../../../pages/info/faq/faq.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FaqLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.html b/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.html new file mode 100644 index 0000000..1545489 --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.html @@ -0,0 +1,93 @@ + diff --git a/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.ts b/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.ts new file mode 100644 index 0000000..a6f72dd --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/hy/faq-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-faq-lavero-hy', + templateUrl: './faq-hy.component.html', + styleUrls: ['../../../../../../pages/info/faq/faq.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FaqLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.html b/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.html new file mode 100644 index 0000000..6f29aed --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.html @@ -0,0 +1,93 @@ + diff --git a/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.ts b/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.ts new file mode 100644 index 0000000..0a9c7ff --- /dev/null +++ b/src/app/brands/lavero/pages/info/faq/ru/faq-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-faq-lavero-ru', + templateUrl: './faq-ru.component.html', + styleUrls: ['../../../../../../pages/info/faq/faq.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class FaqLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.html b/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.html new file mode 100644 index 0000000..76f5021 --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.html @@ -0,0 +1,92 @@ + diff --git a/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.ts b/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.ts new file mode 100644 index 0000000..c3e3ca7 --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/en/guarantee-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-guarantee-lavero-en', + templateUrl: './guarantee-en.component.html', + styleUrls: ['../../../../../../pages/info/guarantee/guarantee.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class GuaranteeLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/guarantee/guarantee.component.html b/src/app/brands/lavero/pages/info/guarantee/guarantee.component.html new file mode 100644 index 0000000..3da7f61 --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/guarantee.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/info/guarantee/guarantee.component.ts b/src/app/brands/lavero/pages/info/guarantee/guarantee.component.ts new file mode 100644 index 0000000..79010f6 --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/guarantee.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { GuaranteeLaveroRuComponent } from './ru/guarantee-ru.component'; +import { GuaranteeLaveroEnComponent } from './en/guarantee-en.component'; +import { GuaranteeLaveroHyComponent } from './hy/guarantee-hy.component'; + +@Component({ + selector: 'app-guarantee-lavero', + imports: [GuaranteeLaveroRuComponent, GuaranteeLaveroEnComponent, GuaranteeLaveroHyComponent], + templateUrl: './guarantee.component.html', + styleUrls: ['../../../../../pages/info/guarantee/guarantee.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class GuaranteeLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.html b/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.html new file mode 100644 index 0000000..b1caafa --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.html @@ -0,0 +1,92 @@ + diff --git a/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.ts b/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.ts new file mode 100644 index 0000000..e13e82d --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/hy/guarantee-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-guarantee-lavero-hy', + templateUrl: './guarantee-hy.component.html', + styleUrls: ['../../../../../../pages/info/guarantee/guarantee.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class GuaranteeLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.html b/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.html new file mode 100644 index 0000000..a13ebaf --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.html @@ -0,0 +1,92 @@ + diff --git a/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.ts b/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.ts new file mode 100644 index 0000000..9623c23 --- /dev/null +++ b/src/app/brands/lavero/pages/info/guarantee/ru/guarantee-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-guarantee-lavero-ru', + templateUrl: './guarantee-ru.component.html', + styleUrls: ['../../../../../../pages/info/guarantee/guarantee.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class GuaranteeLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/company-details/company-details.component.html b/src/app/brands/lavero/pages/legal/company-details/company-details.component.html new file mode 100644 index 0000000..b9aa415 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/company-details.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/legal/company-details/company-details.component.ts b/src/app/brands/lavero/pages/legal/company-details/company-details.component.ts new file mode 100644 index 0000000..f47427d --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/company-details.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { CompanyDetailsLaveroRuComponent } from './ru/company-details-ru.component'; +import { CompanyDetailsLaveroEnComponent } from './en/company-details-en.component'; +import { CompanyDetailsLaveroHyComponent } from './hy/company-details-hy.component'; + +@Component({ + selector: 'app-company-details-lavero', + imports: [CompanyDetailsLaveroRuComponent, CompanyDetailsLaveroEnComponent, CompanyDetailsLaveroHyComponent], + templateUrl: './company-details.component.html', + styleUrls: ['../../../../../pages/legal/company-details/company-details.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class CompanyDetailsLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.html b/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.html new file mode 100644 index 0000000..787f72f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.html @@ -0,0 +1,54 @@ + diff --git a/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.ts b/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.ts new file mode 100644 index 0000000..73cbc00 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/en/company-details-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-company-details-lavero-en', + templateUrl: './company-details-en.component.html', + styleUrls: ['../../../../../../pages/legal/company-details/company-details.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class CompanyDetailsLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.html b/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.html new file mode 100644 index 0000000..787f72f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.html @@ -0,0 +1,54 @@ + diff --git a/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.ts b/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.ts new file mode 100644 index 0000000..c5d4f7f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/hy/company-details-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-company-details-lavero-hy', + templateUrl: './company-details-hy.component.html', + styleUrls: ['../../../../../../pages/legal/company-details/company-details.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class CompanyDetailsLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.html b/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.html new file mode 100644 index 0000000..787f72f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.html @@ -0,0 +1,54 @@ + diff --git a/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.ts b/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.ts new file mode 100644 index 0000000..fbf4c73 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/company-details/ru/company-details-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-company-details-lavero-ru', + templateUrl: './company-details-ru.component.html', + styleUrls: ['../../../../../../pages/legal/company-details/company-details.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class CompanyDetailsLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.html b/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.html new file mode 100644 index 0000000..dc94c27 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.html @@ -0,0 +1,162 @@ + diff --git a/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.ts b/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.ts new file mode 100644 index 0000000..6646de0 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/en/payment-terms-en.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-payment-terms-lavero-en', + imports: [RouterLink, LangRoutePipe], + templateUrl: './payment-terms-en.component.html', + styleUrls: ['../../../../../../pages/legal/payment-terms/payment-terms.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PaymentTermsLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.html b/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.html new file mode 100644 index 0000000..56663b0 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.html @@ -0,0 +1,162 @@ + \ No newline at end of file diff --git a/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.ts b/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.ts new file mode 100644 index 0000000..3a2ab33 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/hy/payment-terms-hy.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-payment-terms-lavero-hy', + imports: [RouterLink, LangRoutePipe], + templateUrl: './payment-terms-hy.component.html', + styleUrls: ['../../../../../../pages/legal/payment-terms/payment-terms.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PaymentTermsLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.html b/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.html new file mode 100644 index 0000000..544247a --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.ts b/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.ts new file mode 100644 index 0000000..0d7b886 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/payment-terms.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { PaymentTermsLaveroRuComponent } from './ru/payment-terms-ru.component'; +import { PaymentTermsLaveroEnComponent } from './en/payment-terms-en.component'; +import { PaymentTermsLaveroHyComponent } from './hy/payment-terms-hy.component'; + +@Component({ + selector: 'app-payment-terms-lavero', + imports: [PaymentTermsLaveroRuComponent, PaymentTermsLaveroEnComponent, PaymentTermsLaveroHyComponent], + templateUrl: './payment-terms.component.html', + styleUrls: ['../../../../../pages/legal/payment-terms/payment-terms.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PaymentTermsLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.html b/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.html new file mode 100644 index 0000000..616153f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.html @@ -0,0 +1,162 @@ + diff --git a/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.ts b/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.ts new file mode 100644 index 0000000..5b80ee2 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/payment-terms/ru/payment-terms-ru.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-payment-terms-lavero-ru', + imports: [RouterLink, LangRoutePipe], + templateUrl: './payment-terms-ru.component.html', + styleUrls: ['../../../../../../pages/legal/payment-terms/payment-terms.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PaymentTermsLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.html b/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.html new file mode 100644 index 0000000..ab070f0 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.html @@ -0,0 +1,277 @@ + diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.ts b/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.ts new file mode 100644 index 0000000..3f47dac --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/en/privacy-policy-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-privacy-policy-lavero-en', + templateUrl: './privacy-policy-en.component.html', + styleUrls: ['../../../../../../pages/legal/privacy-policy/privacy-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PrivacyPolicyLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.html b/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.html new file mode 100644 index 0000000..75a6142 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.html @@ -0,0 +1,8 @@ + diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.ts b/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.ts new file mode 100644 index 0000000..57a4e37 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/hy/privacy-policy-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-privacy-policy-lavero-hy', + templateUrl: './privacy-policy-hy.component.html', + styleUrls: ['../../../../../../pages/legal/privacy-policy/privacy-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PrivacyPolicyLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.html b/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.html new file mode 100644 index 0000000..5773087 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} \ No newline at end of file diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.ts b/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.ts new file mode 100644 index 0000000..8eaa884 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/privacy-policy.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { PrivacyPolicyLaveroRuComponent } from './ru/privacy-policy-ru.component'; +import { PrivacyPolicyLaveroEnComponent } from './en/privacy-policy-en.component'; +import { PrivacyPolicyLaveroHyComponent } from './hy/privacy-policy-hy.component'; + +@Component({ + selector: 'app-privacy-policy-lavero', + imports: [PrivacyPolicyLaveroRuComponent, PrivacyPolicyLaveroEnComponent, PrivacyPolicyLaveroHyComponent], + templateUrl: './privacy-policy.component.html', + styleUrls: ['../../../../../pages/legal/privacy-policy/privacy-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PrivacyPolicyLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.html b/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.html new file mode 100644 index 0000000..d38bc2f --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.html @@ -0,0 +1,277 @@ + diff --git a/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.ts b/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.ts new file mode 100644 index 0000000..9a5370e --- /dev/null +++ b/src/app/brands/lavero/pages/legal/privacy-policy/ru/privacy-policy-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-privacy-policy-lavero-ru', + templateUrl: './privacy-policy-ru.component.html', + styleUrls: ['../../../../../../pages/legal/privacy-policy/privacy-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PrivacyPolicyLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.html b/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.html new file mode 100644 index 0000000..0dd004a --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.html @@ -0,0 +1,265 @@ + diff --git a/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.ts b/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.ts new file mode 100644 index 0000000..0f0d456 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/en/public-offer-en.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-public-offer-lavero-en', + imports: [RouterLink, LangRoutePipe], + templateUrl: './public-offer-en.component.html', + styleUrls: ['../../../../../../pages/legal/public-offer/public-offer.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PublicOfferLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.html b/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.html new file mode 100644 index 0000000..3aa999d --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.html @@ -0,0 +1,265 @@ + diff --git a/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.ts b/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.ts new file mode 100644 index 0000000..bc14515 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/hy/public-offer-hy.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-public-offer-lavero-hy', + imports: [RouterLink, LangRoutePipe], + templateUrl: './public-offer-hy.component.html', + styleUrls: ['../../../../../../pages/legal/public-offer/public-offer.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PublicOfferLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.html b/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.html new file mode 100644 index 0000000..420d0d3 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} \ No newline at end of file diff --git a/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.ts b/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.ts new file mode 100644 index 0000000..0648ae3 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/public-offer.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { PublicOfferLaveroRuComponent } from './ru/public-offer-ru.component'; +import { PublicOfferLaveroEnComponent } from './en/public-offer-en.component'; +import { PublicOfferLaveroHyComponent } from './hy/public-offer-hy.component'; + +@Component({ + selector: 'app-public-offer-lavero', + imports: [PublicOfferLaveroRuComponent, PublicOfferLaveroEnComponent, PublicOfferLaveroHyComponent], + templateUrl: './public-offer.component.html', + styleUrls: ['../../../../../pages/legal/public-offer/public-offer.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PublicOfferLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.html b/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.html new file mode 100644 index 0000000..e90aed5 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.html @@ -0,0 +1,265 @@ + diff --git a/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.ts b/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.ts new file mode 100644 index 0000000..0a8fff8 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/public-offer/ru/public-offer-ru.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; +import { RouterLink } from '@angular/router'; +import { LangRoutePipe } from '../../../../../../pipes/lang-route.pipe'; + +@Component({ + selector: 'app-public-offer-lavero-ru', + imports: [RouterLink, LangRoutePipe], + templateUrl: './public-offer-ru.component.html', + styleUrls: ['../../../../../../pages/legal/public-offer/public-offer.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PublicOfferLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.html b/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.html new file mode 100644 index 0000000..e766ba9 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.html @@ -0,0 +1,175 @@ + diff --git a/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.ts b/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.ts new file mode 100644 index 0000000..0b3fc90 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/en/return-policy-en.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-return-policy-lavero-en', + templateUrl: './return-policy-en.component.html', + styleUrls: ['../../../../../../pages/legal/return-policy/return-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ReturnPolicyLaveroEnComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.html b/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.html new file mode 100644 index 0000000..c24c688 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.html @@ -0,0 +1,175 @@ + diff --git a/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.ts b/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.ts new file mode 100644 index 0000000..6455512 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/hy/return-policy-hy.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-return-policy-lavero-hy', + templateUrl: './return-policy-hy.component.html', + styleUrls: ['../../../../../../pages/legal/return-policy/return-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ReturnPolicyLaveroHyComponent { + protected readonly env = environment; +} diff --git a/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.html b/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.html new file mode 100644 index 0000000..182e336 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.html @@ -0,0 +1,5 @@ +@switch (lang()) { + @case ('ru') { } + @case ('en') { } + @case ('hy') { } +} diff --git a/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.ts b/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.ts new file mode 100644 index 0000000..00c4435 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/return-policy.component.ts @@ -0,0 +1,16 @@ +import { Component, ChangeDetectionStrategy, inject } from '@angular/core'; +import { LanguageService } from '../../../../../services/language.service'; +import { ReturnPolicyLaveroRuComponent } from './ru/return-policy-ru.component'; +import { ReturnPolicyLaveroEnComponent } from './en/return-policy-en.component'; +import { ReturnPolicyLaveroHyComponent } from './hy/return-policy-hy.component'; + +@Component({ + selector: 'app-return-policy-lavero', + imports: [ReturnPolicyLaveroRuComponent, ReturnPolicyLaveroEnComponent, ReturnPolicyLaveroHyComponent], + templateUrl: './return-policy.component.html', + styleUrls: ['../../../../../pages/legal/return-policy/return-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ReturnPolicyLaveroComponent { + lang = inject(LanguageService).currentLanguage; +} diff --git a/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.html b/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.html new file mode 100644 index 0000000..cba1029 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.html @@ -0,0 +1,175 @@ + diff --git a/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.ts b/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.ts new file mode 100644 index 0000000..f9b8eb0 --- /dev/null +++ b/src/app/brands/lavero/pages/legal/return-policy/ru/return-policy-ru.component.ts @@ -0,0 +1,12 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; +import { environment } from '../../../../../../../environments/environment'; + +@Component({ + selector: 'app-return-policy-lavero-ru', + templateUrl: './return-policy-ru.component.html', + styleUrls: ['../../../../../../pages/legal/return-policy/return-policy.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ReturnPolicyLaveroRuComponent { + protected readonly env = environment; +} diff --git a/src/app/services/language.service.ts b/src/app/services/language.service.ts index 612327f..9c155a0 100644 --- a/src/app/services/language.service.ts +++ b/src/app/services/language.service.ts @@ -1,5 +1,6 @@ -import { Injectable, signal } from '@angular/core'; +import { Injectable, signal } from '@angular/core'; import { Router } from '@angular/router'; +import { environment } from '../../environments/environment'; export interface Language { code: string; @@ -19,7 +20,8 @@ export interface Currency { providedIn: 'root' }) export class LanguageService { - private currentLanguageSignal = signal('ru'); + // @ts-ignore + private currentLanguageSignal = signal(environment.defaultLanguage || 'ru'); private currentCurrencySignal = signal('RUB'); languages: Language[] = [ diff --git a/src/environments/environment.lavero.production.ts b/src/environments/environment.lavero.production.ts new file mode 100644 index 0000000..e726238 --- /dev/null +++ b/src/environments/environment.lavero.production.ts @@ -0,0 +1,20 @@ +// Lavero Store Production Configuration +export const environment = { + production: true, + brandName: 'Lavero Store', + brandFullName: 'Lavero Store', + theme: 'lavero', + apiUrl: '/api', + logo: '/assets/images/lavero/lavero-logo.png', + contactEmail: 'info@lavero.store', + supportEmail: 'info@lavero.store', + domain: 'lavero.store', + telegram: '@laveromarket', + telegramBot: 'laveroSupportbot', + phones: { + russia: '+7 916 109 10 32', + support: '+7 916 109 10 32' + }, + phoneTel: 'tel:+79161091032', + useMockData: false, defaultLanguage: 'hy' +}; diff --git a/src/environments/environment.lavero.ts b/src/environments/environment.lavero.ts new file mode 100644 index 0000000..508a1bc --- /dev/null +++ b/src/environments/environment.lavero.ts @@ -0,0 +1,20 @@ +// Lavero Store Configuration +export const environment = { + production: false, + brandName: 'Lavero Store', + brandFullName: 'Lavero Store', + theme: 'lavero', + apiUrl: '/api', + logo: '/assets/images/lavero/lavero-logo.png', + contactEmail: 'info@lavero.store', + supportEmail: 'info@lavero.store', + domain: 'lavero.store', + telegram: '@laveromarket', + telegramBot: 'laveroSupportbot', + phones: { + russia: '+7 916 109 10 32', + support: '+7 916 109 10 32' + }, + phoneTel: 'tel:+79161091032', + useMockData: false, defaultLanguage: 'hy' +}; diff --git a/src/index.lavero.html b/src/index.lavero.html new file mode 100644 index 0000000..4973cca --- /dev/null +++ b/src/index.lavero.html @@ -0,0 +1,83 @@ + + + + + Lavero Store - Маркетплейс цифровых товаров + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/styles/themes/lavero.theme.scss b/src/styles/themes/lavero.theme.scss new file mode 100644 index 0000000..407f405 --- /dev/null +++ b/src/styles/themes/lavero.theme.scss @@ -0,0 +1,38 @@ +// Lavero Store Theme - Orange/Green Colors +:root { + --primary-color: #FD7300; + --primary-hover: #E24B00; + --secondary-color: #3AAA35; + --secondary-hover: #2d8429; + --accent-color: #ff943d; + --accent-hover: #FD7300; + + --gradient-primary: linear-gradient(135deg, #FD7300 0%, #3AAA35 100%); + --gradient-secondary: linear-gradient(135deg, #ff943d 0%, #FD7300 100%); + --gradient-hero: linear-gradient(135deg, #FD7300 0%, #E24B00 100%); + + --text-primary: #1f2937; + --text-secondary: #4b5563; + --text-light: #9ca3af; + + --bg-primary: #ffffff; + --bg-secondary: #f0fdf4; + --bg-tertiary: #d1fae5; + + --success-color: #FD7300; + --warning-color: #f59e0b; + --error-color: #ef4444; + --info-color: #3b82f6; + + --border-color: #e5e7eb; + --border-dark: #4b5563; + --bg-header: rgba(253, 115, 0, 0.05); + --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.1); + --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.08); + --shadow-lg: 0 12px 40px rgba(253, 115, 0, 0.25); + + --radius-sm: 8px; + --radius-md: 12px; + --radius-lg: 16px; + --radius-xl: 20px; +}