diff --git a/content/books/2.md b/content/books/2.md
index 9a469dd..d99f7a3 100644
--- a/content/books/2.md
+++ b/content/books/2.md
@@ -14,9 +14,11 @@ _Гарвард_
Механизмы мужской и женской влюбленностей несколько разнятся. Т.е. мужчины и женщины, парни и девушки влюбляются по-разному. У девушек крышу сразу не сносит, а у парней крышу сносит именно сразу. В этом и заключается принципиальное различие в механизмах. Безусловно, эта разница — классика, поэтому на этот счет есть вариации. Однако, по своей сути, так оно и есть. На первых порах отношений девушка способна трезво оценивать парня. Она еще не влюбилась, она оценивает, присматривается, приценивается к парню. Он ей нравится, но она может трезво мыслить. Видишь эти два графика ниже по тексту[2]? Теперь ты понимаешь различие в механизмах.
Когда отношения с девушкой только начинаются, когда еще не было секса, парень испытывает некое подобие эйфории и одновременной зависимости от девушки. Я опять же говорю о классическом случае. Парень пытается быть максимально хорошим для нее. Она ему нравится, он запал на нее. Все его мысли — о ней. Девушка же влюбляется с задержкой по времени, когда парень пройдет ее фильтры. Когда у нее “щелкнет” в голове, тогда она и влюбляется.
+

Рисунок 5 — Различия между мужской и женской схемами влюбления
_Иллюстрация создана автором книги_
+
Смотри, как выгодно для тебя устроила природа. Ты еще ничего не сделала в плане развития отношений, но уже имеешь бонус. Красота!! Спасибо матери-природе. Такой механизм — следствие заботы о выживании рода, вида. Вид должен выжить. Поэтому тебе дается время на фильтрацию самцов, чтобы ты могла выбрать лучшего и получить его семя. Самый живучий самец, самец, обошедший своих сородичей, самый жизнеспобный, способен дать тебе лучшее семя среди своих представителей. Так ты сможешь родить наиболее жизнеспособного ребенка, самого живучего. Забеременев же от слабого самца, ты родишь слабое потомство. Именно из-за такого механизма выживания вида парень сразу испытывает влечение к девушке, но после первого секса сразу же остывает к ней. Его задача выполнена, он оплодотворил самку. Его следующая задача — найти новую самку и оплодотворить ее. Поэтому он также быстро “западает” на следующую, трахает ее, остывает к ней и ищет новую. Парень выполняет задачу продолжения рода: совокупляется с максимальным количеством девушек.
Но для нас с тобой сейчас самое важное — работать в зоне t — фильтрации. Как раз в период, который тебе подарила мать-природа, ты должна работать над отношениями. Тебе дали бонус в виде времени, не просри его. Те фишки, которые я тебе даю, имеют максимальную эффективность как раз в период фильтрации самцов. Как только вы переспите, период фильтрации закончится. И эффективность любых манипулятивных фишек, даже от Вино Галанте, упадет в разы. Это же так просто!! Ты пропустила парня через свои фильтры. Мать-природа позаботилась о том, чтобы сразу после этого ему захотелось другую самку. Как только ему захотелось другую, тебе становится архисложно влиять на парня. Природа, природа, против нее не поспоришь.
diff --git a/frontend.env.example b/frontend.env.example
deleted file mode 100644
index a57c961..0000000
--- a/frontend.env.example
+++ /dev/null
@@ -1,2 +0,0 @@
-VITE_MODE=DEVELOP
-VITE_API_BASE_PATH=http://localhost:5173/
diff --git a/layouts/UiHeader/_data/header-navigation.data.ts b/layouts/UiHeader/_data/header-navigation.data.ts
index 02dad34..61524a7 100644
--- a/layouts/UiHeader/_data/header-navigation.data.ts
+++ b/layouts/UiHeader/_data/header-navigation.data.ts
@@ -13,7 +13,7 @@ const headerNavigation = [
},
{
name: 'Купить',
- path: '/buy',
+ path: '/cart',
},
{
name: 'Отзывы',
diff --git a/nuxt.config.ts b/nuxt.config.ts
index f277112..63275ec 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -25,11 +25,13 @@ export default defineNuxtConfig({
css: ['@/assets/css/tailwind.css'],
...config,
+
htmlValidator: {
usePrettier: true,
logLevel: 'error',
failOnError: false,
},
+
app: {
head: {
title: 'Vino Galante',
@@ -39,4 +41,13 @@ export default defineNuxtConfig({
...head,
},
},
+
+ runtimeConfig: {
+ smtpHost: process.env.SMTP_HOST,
+ smtpPort: process.env.SMTP_PORT,
+ smtpUser: process.env.SMTP_USER,
+ smtpPass: process.env.SMTP_PASS,
+ },
+
+ modules: [...config.modules],
})
diff --git a/package.json b/package.json
index dc3f5f2..80fead1 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"format": "node_modules/.bin/prettier --write ./"
},
"dependencies": {
+ "@a2seven/yoo-checkout": "^1.1.4",
"@nuxt/content": "^3.6.0",
"@nuxt/fonts": "^0.11.4",
"@nuxt/icon": "^1.13.0",
@@ -22,10 +23,15 @@
"@nuxtjs/sitemap": "^7.4.0",
"@pinia/nuxt": "^0.5.5",
"@tailwindcss/postcss": "^4.1.10",
- "better-sqlite3": "^11.10.0",
+ "better-sqlite3": "^12",
+ "crypto-js": "^4.2.0",
+ "date-fns": "^4.1.0",
"husky": "^9.1.7",
+ "nodemailer": "^7.0.3",
"nuxt": "^3.17.5",
"nuxt-schema-org": "^5.0.5",
+ "pg": "^8.16.2",
+ "postgres": "^3.4.7",
"swiper": "^11.2.8",
"vue": "^3.5.16"
},
@@ -34,6 +40,8 @@
"@nuxt/test-utils": "^3.11.3",
"@nuxtjs/tailwindcss": "^6.11.4",
"@types/node": "^22.0.0",
+ "@types/nodemailer": "^6.4.17",
+ "@types/pg": "^8.15.4",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.5.0",
"autoprefixer": "^10.4.18",
diff --git a/pages/books/[slug].vue b/pages/books/[slug].vue
index 37221d2..d9a6293 100644
--- a/pages/books/[slug].vue
+++ b/pages/books/[slug].vue
@@ -33,7 +33,7 @@
-
+
@@ -41,7 +41,12 @@
-
+
{{ book.buttonText }}
@@ -81,20 +86,29 @@
-
+
- -
+
-
-
+
Читай отрывок
- -
-
+
-
+
Скачай отрывок
-
+
- -
+
-
import { ref, computed, watch } from 'vue'
-import { useRoute } from '#app'
+import { useRoute, useRouter } from '#app'
import UiHeading from '@/components/Typography/UiHeading.vue'
import UiParagraph from '@/components/Typography/UiParagraph.vue'
import UiButton from '@/components/UiButton/UiButton.vue'
@@ -178,10 +192,13 @@ interface BookDetail {
}>
href: string
hrefTitles: string
+ download: string
}
const route = useRoute()
+const router = useRouter()
+
const currentBookData = ref(null)
const book = computed(() => currentBookData.value)
@@ -196,6 +213,10 @@ const loadBookData = async (slug: string) => {
}
}
+const handleSelect = () => {
+ router.push('/cart/')
+}
+
watch(
() => route.params.slug,
async (newSlug) => {
diff --git a/pages/books/[titlesSlug]/[titlesSlug].vue b/pages/books/[titlesSlug]/[titlesSlug].vue
index f34dbcf..7b1a2a1 100644
--- a/pages/books/[titlesSlug]/[titlesSlug].vue
+++ b/pages/books/[titlesSlug]/[titlesSlug].vue
@@ -1,19 +1,23 @@
-
+
{{ titles.title }}
-
+
{{ section.title }}
-
+
-
+
{{ subsection.title.text }}
-
+
{{ subsection.title }}
-
@@ -38,34 +36,34 @@