Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7fe00dc75 | ||
|
|
3fd4ef72c6 | ||
|
|
e90368fc9d | ||
|
|
dc9208485c | ||
|
|
2b276c0c16 | ||
|
|
62a319ca47 | ||
|
|
091956ade4 | ||
|
|
9fc8bfa94d | ||
|
|
486ef55349 | ||
|
|
6853d782a6 | ||
|
|
2f0b72c387 | ||
|
|
24237652db | ||
|
|
b6855bc2a7 | ||
|
|
4699f2ed86 | ||
|
|
3123ff8727 | ||
| d22ee8c678 |
12
.env
@@ -1,15 +1,5 @@
|
|||||||
VITE_BASE_URL=http://localhost:3000
|
VITE_BASE_URL=http://localhost:3000
|
||||||
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||||
SMTP_USER=rentalservicekg@yandex.ru
|
SMTP_USER=rentalservicekg@yandex.ru
|
||||||
SMTP_APP_PASSWORD=uljislsoihthciju
|
SMTP_PASS=uljislsoihthciju
|
||||||
|
|
||||||
|
|
||||||
# This was inserted by `prisma init`:
|
|
||||||
# Environment variables declared in this file are NOT automatically loaded by Prisma.
|
|
||||||
# Please add `import "dotenv/config";` to your `prisma.config.ts` file, or use the Prisma CLI with Bun
|
|
||||||
# to load environment variables from .env files: https://pris.ly/prisma-config-env-vars.
|
|
||||||
|
|
||||||
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
|
|
||||||
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
|
|
||||||
|
|
||||||
DATABASE_URL="file:./database.db"
|
DATABASE_URL="file:./database.db"
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
VITE_BASE_URL=http://localhost:3000
|
VITE_BASE_URL=http://localhost:3000
|
||||||
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||||
|
SMTP_USER=rentalservicekg@yandex.ru
|
||||||
|
SMTP_PASS=uljislsoihthciju
|
||||||
|
DATABASE_URL="file:./database.db"
|
||||||
@@ -14,7 +14,8 @@ ENV PORT=80
|
|||||||
ENV VITE_BASE_URL=https://rental.koptilnya.xyz
|
ENV VITE_BASE_URL=https://rental.koptilnya.xyz
|
||||||
ENV VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
ENV VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||||
ENV SMTP_USER=rentalservicekg@yandex.ru
|
ENV SMTP_USER=rentalservicekg@yandex.ru
|
||||||
ENV SMTP_APP_PASSWORD=uljislsoihthciju
|
ENV SMTP_PASS=uljislsoihthciju
|
||||||
|
ENV DATABASE_URL="file:./database.db"
|
||||||
|
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
4
assets/my-icons/main-logo.svg
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
@@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<UFooter
|
<UFooter
|
||||||
class="border-t border-gray-200 mt-10"
|
class="border-t border-default mt-10"
|
||||||
:ui="{
|
:ui="{
|
||||||
center: 'w-full',
|
center: 'w-full',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="w-full py-6 grid grid-cols-1 md:grid-cols-3 gap-10 text-sm">
|
<div class="w-full py-6 grid grid-cols-1 md:grid-cols-4 gap-10 text-sm">
|
||||||
<div id="footer-contacts">
|
<div id="footer-contacts">
|
||||||
<h3 class="font-semibold text-base mb-3">
|
<h3 class="font-semibold text-base mb-3">
|
||||||
Контакты
|
Контакты
|
||||||
@@ -13,19 +13,45 @@
|
|||||||
<ul class="space-y-2 opacity-80">
|
<ul class="space-y-2 opacity-80">
|
||||||
<li>
|
<li>
|
||||||
<span class="font-medium">Телефон:</span><br>
|
<span class="font-medium">Телефон:</span><br>
|
||||||
<a href="tel:+74951234567" class="hover:opacity-100 opacity-70">
|
<a href="tel:+996504280490" class="hover:opacity-100 opacity-70">
|
||||||
+7 (495) 123-45-67
|
+9 (965) 042-80-490
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="font-medium">Email:</span><br>
|
<span class="font-medium">Email:</span><br>
|
||||||
<a href="mailto:info@rental-concierge.com" class="hover:opacity-100 opacity-70">
|
<a href="mailto:atgoldenkg@gmail.com" class="hover:opacity-100 opacity-70">
|
||||||
info@rental-concierge.com
|
atgoldenkg@gmail.com
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="font-medium">Адрес:</span><br>
|
<span class="font-medium">Адрес:</span><br>
|
||||||
Москва, Тверская улица, 1
|
<p class="opacity-70">
|
||||||
|
Адрес Бишкек, Свердловский район,
|
||||||
|
ул. Ибраимова, дом 115/4
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer-contacts">
|
||||||
|
<h3 class="font-semibold text-base mb-3">
|
||||||
|
Реквизиты
|
||||||
|
</h3>
|
||||||
|
<ul class="space-y-2 opacity-80">
|
||||||
|
<li>
|
||||||
|
<p class="opacity-70">
|
||||||
|
Общество с ограниченной ответственностью "АТ Голден"
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p class="opacity-70">
|
||||||
|
ИНН 00406202010276
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p class="opacity-70">
|
||||||
|
Регистрационный номер 190962-3301-ООО
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,15 +64,16 @@
|
|||||||
<li><a href="/" class="hover:opacity-100 opacity-70">Главная</a></li>
|
<li><a href="/" class="hover:opacity-100 opacity-70">Главная</a></li>
|
||||||
<li><a href="/nedvizhimost" class="hover:opacity-100 opacity-70">Недвижимость</a></li>
|
<li><a href="/nedvizhimost" class="hover:opacity-100 opacity-70">Недвижимость</a></li>
|
||||||
<li><a href="/transport" class="hover:opacity-100 opacity-70">Авто</a></li>
|
<li><a href="/transport" class="hover:opacity-100 opacity-70">Авто</a></li>
|
||||||
|
<li><a href="/about-us" class="hover:opacity-100 opacity-70">О нас</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="md:text-right opacity-70 flex flex-col justify-between">
|
<div class="md:text-right opacity-70 flex flex-col justify-between">
|
||||||
<div class="text-lg font-bold">
|
<div class="text-lg font-bold">
|
||||||
Rental
|
AT Golden
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4 md:mt-0">
|
<div class="mt-4 md:mt-0">
|
||||||
© {{ new Date().getFullYear() }} Rental.
|
© {{ new Date().getFullYear() }} AT Golden.
|
||||||
Все права защищены.
|
Все права защищены.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ function desktopAnimation() {
|
|||||||
trigger: benefitsRef.value,
|
trigger: benefitsRef.value,
|
||||||
start: 'top 80%',
|
start: 'top 80%',
|
||||||
toggleActions: 'play none none reverse',
|
toggleActions: 'play none none reverse',
|
||||||
|
once: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -94,7 +95,7 @@ const benefits = [
|
|||||||
{
|
{
|
||||||
icon: '🏆',
|
icon: '🏆',
|
||||||
title: 'Опыт и экспертиза',
|
title: 'Опыт и экспертиза',
|
||||||
description: 'Более 10 лет на рынке консьерж-услуг',
|
description: 'Более 5 лет на рынке консьерж-услуг',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-2xl font-semibold">
|
<div class="text-2xl font-semibold">
|
||||||
Начните работу с Rental
|
Начните работу с AT Golden
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-base text-gray-300 mt-2">
|
<div class="text-base text-gray-300 mt-2">
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
<form name="contacts" method="POST" @submit.prevent="onSubmit">
|
<form name="contacts" method="POST" @submit.prevent="onSubmit">
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
Как к вам обращаться
|
Как к вам обращаться ?
|
||||||
<UInput
|
<UInput
|
||||||
id="name"
|
id="name"
|
||||||
v-model="name"
|
v-model="name"
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
:items="services"
|
:items="services"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
size="xl"
|
size="xl"
|
||||||
placeholder="выберите услугу"
|
placeholder="Выберите услугу"
|
||||||
:ui="{ content: 'max-h-70' }"
|
:ui="{ content: 'max-h-70' }"
|
||||||
:overlay="{ scrollLock: false }"
|
:overlay="{ scrollLock: false }"
|
||||||
/>
|
/>
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
v-bind="commentAttrs"
|
v-bind="commentAttrs"
|
||||||
name="comment"
|
name="comment"
|
||||||
size="xl"
|
size="xl"
|
||||||
placeholder="расскажите о ваших требованиях.."
|
placeholder="Расскажите о ваших требованиях..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -132,41 +132,53 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { useSessionStorage } from '@vueuse/core'
|
||||||
|
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const contacts = [
|
const contacts = [
|
||||||
{
|
{
|
||||||
label: 'Телефон',
|
label: 'Телефон',
|
||||||
value: '+7 (495) 123-45-67',
|
value: '+9 (965) 042-80-490',
|
||||||
icon: 'i-lucide:phone',
|
icon: 'i-lucide:phone',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Email',
|
label: 'Email',
|
||||||
value: 'info@rental-concierge.com',
|
value: 'atgoldenkg@gmail.com',
|
||||||
icon: 'i-lucide:mail',
|
icon: 'i-lucide:mail',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Адрес',
|
label: 'Адрес',
|
||||||
value: 'Москва, Тверская улица, 1',
|
value: 'Адрес Бишкек, Свердловский район ул. Ибраимова, дом 115/4',
|
||||||
icon: 'i-lucide:map-pin',
|
icon: 'i-lucide:map-pin',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const services = [
|
const services = [
|
||||||
'покупка авто',
|
'Покупка авто',
|
||||||
'продажа авто',
|
'Продажа авто',
|
||||||
'аренда авто',
|
'Аренда авто',
|
||||||
'покупка недвижимости',
|
'Покупка недвижимости',
|
||||||
'продажа недвижимости',
|
'Продажа недвижимости',
|
||||||
'аренда недвижимости',
|
'Аренда недвижимости',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const state = useSessionStorage('contacts', {
|
||||||
|
contacts:
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
phone: '',
|
||||||
|
service: '',
|
||||||
|
comment: '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
const { errors, handleSubmit, defineField } = useForm({
|
const { errors, handleSubmit, defineField } = useForm({
|
||||||
initialValues: {
|
initialValues: {
|
||||||
name: '',
|
name: '',
|
||||||
phone: '',
|
phone: '',
|
||||||
service: '',
|
service: state?.value?.contacts?.service || '',
|
||||||
comment: '',
|
comment: '',
|
||||||
},
|
},
|
||||||
validationSchema: {
|
validationSchema: {
|
||||||
@@ -216,6 +228,11 @@ const onSubmit = handleSubmit(async (values) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
watch(() => state.value, () => {
|
||||||
|
if (state.value.contacts.service)
|
||||||
|
service.value = state.value.contacts.service
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
:key="item.title"
|
:key="item.title"
|
||||||
class="how-work"
|
class="how-work"
|
||||||
:ui="cardUi"
|
:ui="cardUi"
|
||||||
|
variant="subtle"
|
||||||
>
|
>
|
||||||
<div class="how-work__number">
|
<div class="how-work__number">
|
||||||
{{ item.number }}
|
{{ item.number }}
|
||||||
@@ -59,6 +60,7 @@ function desktopAnimation() {
|
|||||||
trigger: howWorksRef.value,
|
trigger: howWorksRef.value,
|
||||||
start: 'top 50%',
|
start: 'top 50%',
|
||||||
toggleActions: 'play none none reverse',
|
toggleActions: 'play none none reverse',
|
||||||
|
once: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -120,7 +122,7 @@ const items = [
|
|||||||
.how-work {
|
.how-work {
|
||||||
&__number {
|
&__number {
|
||||||
font-size: 48px;
|
font-size: 48px;
|
||||||
opacity: 0.1;
|
opacity: 0.3;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
117
components/PromotionModal.vue
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
<template>
|
||||||
|
<UModal
|
||||||
|
v-model:open="open"
|
||||||
|
:ui="modalUi"
|
||||||
|
title="Авто из Кыргызстана - под ключ !"
|
||||||
|
scrollable
|
||||||
|
>
|
||||||
|
<template #body>
|
||||||
|
<div class="promotion-modal">
|
||||||
|
<div class="grid gap-4 sm:grid-cols-2">
|
||||||
|
<UCard
|
||||||
|
v-for="car in cars"
|
||||||
|
:key="car.mark"
|
||||||
|
class="backdrop-blur-md bg-white/10 border border-white/20"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<UIcon name="i-lucide-car" class="text-xl" />
|
||||||
|
<h3 class="text-lg font-semibold">
|
||||||
|
{{ car.mark }}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
<span
|
||||||
|
v-for="model in car.models"
|
||||||
|
:key="model"
|
||||||
|
class="
|
||||||
|
px-3 py-1 text-sm
|
||||||
|
rounded-full
|
||||||
|
bg-white/15
|
||||||
|
hover:bg-white/25
|
||||||
|
cursor-pointer
|
||||||
|
transition
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{ model }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</UCard>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<UAccordion v-model="active" :items="items" />
|
||||||
|
|
||||||
|
<UButton size="xl" href="#contacts" @click="openContacts()">
|
||||||
|
Подробнее
|
||||||
|
</UButton>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</UModal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import type { AccordionItem } from '@nuxt/ui'
|
||||||
|
import { useSessionStorage } from '@vueuse/core'
|
||||||
|
|
||||||
|
const open = defineModel('modelValue', { type: Boolean, default: true })
|
||||||
|
const active = ref()
|
||||||
|
|
||||||
|
const modalUi = {
|
||||||
|
content:
|
||||||
|
'bg-[linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(/changan.jpg)] bg-cover bg-center bg-no-repeat',
|
||||||
|
}
|
||||||
|
|
||||||
|
const items: AccordionItem[] = [
|
||||||
|
{
|
||||||
|
label: 'Подбор автомобиля',
|
||||||
|
icon: 'i-lucide-car',
|
||||||
|
content: 'Помощь в выборе автомобиля, консультация независимого эксперта.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Юридическое оформление',
|
||||||
|
icon: 'i-lucide-file-text',
|
||||||
|
content: 'Оформление покупки с учетом требований действующего законодательства.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Доставка и страхование',
|
||||||
|
icon: 'i-lucide-truck',
|
||||||
|
content: 'Организация доставки автомобиля и страхового сопровождения.',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const cars = [
|
||||||
|
{
|
||||||
|
mark: 'Changan',
|
||||||
|
models: ['CS55PLUS', 'UNI-K', 'X5 PLUS', 'UNI-Z', 'Deepel', 'Другие'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mark: 'Geely',
|
||||||
|
models: ['Monharo', 'Emgrand', 'Galaxy Starship 7', 'Atlsa', 'Другие'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const state = useSessionStorage('contacts', {
|
||||||
|
contacts:
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
phone: '',
|
||||||
|
service: '',
|
||||||
|
comment: '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
function openContacts() {
|
||||||
|
open.value = false
|
||||||
|
state.value.contacts.service = 'покупка авто'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.promotion-modal {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<UPageSection
|
<UPageSection
|
||||||
id="services"
|
id="services"
|
||||||
title="Что мы предлагаем"
|
title="Что мы предлагаем"
|
||||||
description="Полный спектр консьерж-услуг для работы с недвижимостью и автомобилями"
|
description="Полный спектр консьерж-услуг для работы с недвижимостью и автомобилями в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген)"
|
||||||
:ui="{ container: '!p-0' }"
|
:ui="{ container: '!p-0' }"
|
||||||
>
|
>
|
||||||
<template #body>
|
<template #body>
|
||||||
@@ -70,6 +70,7 @@ function servicesAnimation() {
|
|||||||
trigger: card,
|
trigger: card,
|
||||||
start: 'top 70%',
|
start: 'top 70%',
|
||||||
toggleActions: 'play none none reverse',
|
toggleActions: 'play none none reverse',
|
||||||
|
once: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -366,6 +366,271 @@ export const useMock = () => {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 84893245,
|
||||||
|
title: 'BMW : 2015 г., 4.4 л, Автомат, Бензин, Купе',
|
||||||
|
shortTitle: 'BMW : 2015 г., 4.4 л',
|
||||||
|
description: '🔥 BMW Coupe 2015 — мощь, стиль и характер 🔥\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Этот BMW — не просто автомобиль, а настоящее воплощение драйва и премиального комфорта 🚀\n'
|
||||||
|
+ 'Под капотом — внушительный бензиновый двигатель 4.4 л, который дарит уверенное ускорение и яркие эмоции при каждом нажатии на педаль газа ⚡ Автоматическая коробка передач обеспечивает плавный ход как в городском потоке, так и на трассе.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🚗 Кузов купе подчёркивает спортивный характер автомобиля: динамичные линии, агрессивный силуэт и безупречная посадка на дороге притягивают взгляды и выделяют его среди потока. Это автомобиль для тех, кто ценит стиль и уверенность в каждом движении.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '✨ Салон премиум-класса — комфорт и качество в каждой детали. Эргономичные сиденья с отличной боковой поддержкой, продуманная архитектура панели и атмосфера, в которой каждая поездка превращается в удовольствие. Здесь одинаково приятно как отправиться в дальнее путешествие, так и наслаждаться короткими городскими маршрутами.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🔊 Современные технологии, качественная мультимедиа и продуманная шумоизоляция делают поездку максимально комфортной\n'
|
||||||
|
+ '🛣️ Отличная управляемость и фирменная BMW-динамика дарят полный контроль над дорогой\n'
|
||||||
|
+ '💎 Автомобиль ухожен и готов радовать нового владельца без лишних вложений\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Этот BMW — идеальный выбор для тех, кто хочет получать эмоции от вождения, ценит мощь, статус и безупречный дизайн. Сел за руль — и понял, что это именно он 😎',
|
||||||
|
type: 'sale',
|
||||||
|
category: 'transport',
|
||||||
|
previewImage: {
|
||||||
|
src: '/bmv888_1.jpeg',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/bmv888_2.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_3.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_4.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_5.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_6.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_7.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_8.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_9.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmv888_10.jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 123432176545467,
|
||||||
|
title: 'Mercedes-Benz S-Class: 2023 г., 4 л, Автомат, Бензин, Седан',
|
||||||
|
shortTitle: 'Mercedes-Benz S-Class: 2023 г.',
|
||||||
|
description: '👑 **Аренда Mercedes-Benz S-Class 2023 — эталон роскоши и статуса** 👑\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Этот Mercedes-Benz S-Class — вершина инженерного искусства и символ безупречного вкуса ✨ Автомобиль создан для тех, кто ценит абсолютный комфорт, тишину и уверенность на дороге. Идеальный вариант как для деловых поездок, так и для особых мероприятий.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🚘 Под капотом — мощный бензиновый двигатель **4.0 л**, который в паре с автоматической коробкой передач обеспечивает плавное, уверенное и практически бесшумное движение. Каждая поездка ощущается как путешествие первым классом ✈️\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '💎 **Премиальный салон** впечатляет с первого взгляда: высококачественные материалы отделки, продуманная эргономика и внимание к каждой детали. Мягкие сиденья с множеством регулировок, атмосфера уюта и инновационные технологии создают ощущение максимального комфорта для водителя и пассажиров.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🧠 Интеллектуальные системы помощи водителю повышают безопасность и уверенность за рулём\n'
|
||||||
|
+ '🎵 Современная мультимедиа и превосходная шумоизоляция — тишина и удовольствие в каждой поездке\n'
|
||||||
|
+ '🌙 Элегантный дизайн и статусный внешний вид подчёркивают ваш имидж\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '📌 **Аренда Mercedes-Benz S-Class 2023** — это возможность позволить себе премиум-класс без компромиссов. Идеально подходит для встреч, торжеств, трансферов и комфортного передвижения по городу и за его пределами.\n'
|
||||||
|
+ 'Садитесь в салон — и мир вокруг становится спокойнее 😌\n',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'transport',
|
||||||
|
previewImage: {
|
||||||
|
src: '/bbbenz_1.jpeg',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/bbbenz_2.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_3.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_4.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_5.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_6.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_7.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bbbenz_8.jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3245432889098,
|
||||||
|
title: 'BMW X6 M: 2021 г., 4.4 л, Автомат, Бензин, Кроссовер',
|
||||||
|
shortTitle: 'BMW X6 M: 2021 г., 4.4 л',
|
||||||
|
description: '🔥 **Аренда BMW X6 M 2021 — мощь, статус и максимум эмоций** 🔥\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'BMW X6 M — это идеальное сочетание спортивного характера и премиального комфорта 🚀 Автомобиль для тех, кто хочет чувствовать абсолютную уверенность на дороге и привлекать внимание с первого взгляда.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '💥 Под капотом — легендарный бензиновый двигатель **4.4 л**, который дарит взрывную динамику и мгновенный отклик на газ. Автоматическая коробка передач обеспечивает плавное и точное переключение в любых условиях — от городского трафика до скоростных трасс.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🚙 **Купеобразный кроссовер** с агрессивным дизайном и фирменной М-стилистикой подчёркивает характер автомобиля: мощные линии, широкая посадка и спортивный силуэт делают его по-настоящему эффектным.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '✨ **Салон уровня premium** — продуман до мелочей: спортивные сиденья с отличной боковой поддержкой, качественные материалы отделки и современные технологии создают атмосферу комфорта и контроля.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🧠 Интеллектуальные системы помощи водителю\n'
|
||||||
|
+ '🎶 Качественная аудиосистема и отличная шумоизоляция\n'
|
||||||
|
+ '🛣️ Превосходная управляемость и фирменный BMW-драйв\n'
|
||||||
|
+ '❄️ Комфорт в любую погоду и в любое время года\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '📌 **Аренда BMW X6 M 2021** — идеальный выбор для ярких поездок, деловых встреч, путешествий и особых случаев. Этот автомобиль дарит эмоции, которые невозможно забыть 😎\n',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'transport',
|
||||||
|
previewImage: {
|
||||||
|
src: '/bmb6_1.jpeg',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/bmb6_2.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_3.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_4.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_5.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_6.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_7.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_8.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_9.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_10.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_11.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_12.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bmb6_13.jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 19233255,
|
||||||
|
title: 'Lexus LX: 2021 г., 5.7 л, Автомат, Бензин, Внедорожник',
|
||||||
|
shortTitle: 'Lexus LX: 2021 г., 5.7 л',
|
||||||
|
description: '🛡️ **Аренда Lexus LX 2021 — роскошь, надёжность и абсолютная уверенность** 🛡️\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Lexus LX — это легендарный внедорожник премиум-класса, созданный для тех, кто не признаёт компромиссов 💎 Он одинаково уверенно чувствует себя как в городе, так и за его пределами, сочетая высокий статус, комфорт и выдающуюся проходимость.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '💪 Под капотом — мощный бензиновый двигатель **5.7 л**, обеспечивающий плавную, уверенную тягу в любых условиях. Автоматическая коробка передач гарантирует комфортное управление и максимальное удовольствие от поездки, независимо от маршрута.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🚙 **Внушительный и солидный внешний вид** подчёркивает статус владельца: массивная решётка радиатора, уверенные линии кузова и высокая посадка создают ощущение полного контроля над дорогой.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '✨ **Премиальный салон** — пространство комфорта и тишины. Качественные материалы отделки, удобные сиденья и продуманная эргономика делают каждую поездку максимально приятной как для водителя, так и для пассажиров.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🧠 Современные системы безопасности и помощи водителю\n'
|
||||||
|
+ '🎶 Качественная аудиосистема и отличная шумоизоляция\n'
|
||||||
|
+ '🌍 Полный привод и высокая проходимость — готов к любым дорогам\n'
|
||||||
|
+ '❄️ Комфорт в любую погоду и любое время года\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '📌 **Аренда Lexus LX 2021** — идеальный выбор для путешествий, деловых поездок, семейных выездов и особых мероприятий. Этот автомобиль дарит чувство уверенности, спокойствия и премиального уровня в каждой детали 😌\n',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'transport',
|
||||||
|
previewImage: {
|
||||||
|
src: '/lexes_1.jpeg',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/lexes_2.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_3.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_4.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_5.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_6.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_7.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/lexes_8.jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 82923411,
|
||||||
|
title: 'Mercedes-Benz CLS-Class: 2020 г., 3 л, Бензин, Купе',
|
||||||
|
shortTitle: 'Mercedes-Benz CLS-Class: 2020 г.',
|
||||||
|
description: '✨ **Аренда Mercedes-Benz CLS-Class 2020 — элегантность в движении** ✨\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Mercedes-Benz CLS — это идеальное сочетание спортивного купе и представительского седана 🚘 Автомобиль для тех, кто ценит стиль, плавность хода и выразительный дизайн, который остаётся актуальным вне времени.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '⚙️ Под капотом — бензиновый двигатель **3.0 л**, обеспечивающий уверенную динамику и комфортное ускорение. Автоматическая коробка передач делает управление лёгким и плавным, идеально подходящим как для города, так и для трассы.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🔥 **Фирменный купе-силуэт** CLS подчёркивает его характер: плавные линии кузова, низкая посадка и эффектный профиль притягивают взгляды и создают ощущение движения даже на месте.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🖤 **Премиальный салон** — это атмосфера уюта и технологичности. Качественные материалы отделки, удобные сиденья и продуманная эргономика обеспечивают максимальный комфорт для водителя и пассажиров.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🧠 Интеллектуальные системы помощи и безопасности\n'
|
||||||
|
+ '🎶 Современная мультимедиа и отличная шумоизоляция\n'
|
||||||
|
+ '🛣️ Плавный ход и фирменный комфорт Mercedes-Benz\n'
|
||||||
|
+ '🌙 Идеален для деловых встреч, свиданий и вечерних поездок\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '📌 **Аренда Mercedes-Benz CLS-Class 2020** — отличный выбор для тех, кто хочет подчеркнуть вкус, статус и наслаждаться каждой поездкой 💼\n',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'transport',
|
||||||
|
previewImage: {
|
||||||
|
src: '/clscscs_1.jpeg',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/clscscs_2.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_3.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_4.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_5.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_6.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_7.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_8.jpeg',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/clscscs_9.jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
// category: 'nedvizhimost',
|
// category: 'nedvizhimost',
|
||||||
{
|
{
|
||||||
id: 133423414,
|
id: 133423414,
|
||||||
@@ -813,6 +1078,403 @@ export const useMock = () => {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 2828283939,
|
||||||
|
title: 'Кондоминиум целиком, Бишкек, Киргизия',
|
||||||
|
shortTitle: 'Кондоминиум целиком, Бишкек, Киргизия',
|
||||||
|
description: 'Добро пожаловать в Granville Apartment Bishkek - идеальное место для путешественников, ценящих комфорт и роскошь.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'В квартире есть вентиляционная система, умное освещение, хорошо оснащенная кухня, 55-дюймовый телевизор с Нетфликсом, уютный балкон и отдельный рабочий стол. Ванная отделана изысканными материалами и имеет премиальный тропический душ.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Находясь в престижном районе вокруг бульвара Эркиндик, квартира имеет шаговый доступ к магазинам, ресторанам, барам и деловому центру.\n'
|
||||||
|
+ 'Жилье\n'
|
||||||
|
+ 'Granville Apartment Bishkek предлагает вам:\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '- элегантный минималистичный дизайн с премиальной отделкой\n'
|
||||||
|
+ '- профессиональную вентиляционную систему и кондиционеры в каждой комнает\n'
|
||||||
|
+ '- полностью оборудованную кухню с современной техникой и посудой\n'
|
||||||
|
+ '- функциональный рабочий стол для удаленной работы\n'
|
||||||
|
+ '- комфортабельный лаунж с двумя низкими глубокими модульными диванами\n'
|
||||||
|
+ '- смарт-ТВ с Нетфликсом и Apple TV\n'
|
||||||
|
+ '- квин-сайз кровать с ортопедическим матрасом и качественным бельем\n'
|
||||||
|
+ '- уютный балкон со столиком для двоих\n'
|
||||||
|
+ '- хорошо оборудованную постирочную комнату\n'
|
||||||
|
+ '- возможность заезда в любое время суток и недели\n'
|
||||||
|
+ '- круглосуточная поддержка от хозяев\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Бронируйте даты в роскошном Granville Apartment Bishkek сегодня и насладитесь лучшим жильем в Бишкеке!',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.58502089219573, 42.86778737107326],
|
||||||
|
address: 'Кыргызстан, Бишкек ул Боконбаева 184',
|
||||||
|
previewImage: {
|
||||||
|
src: '/condonium_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/condonium_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_6.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_7.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_8.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_9.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_10.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_11.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/condonium_12.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 92974710293834,
|
||||||
|
title: 'Кондоминиум, Бишкек, Киргизия',
|
||||||
|
shortTitle: 'Кондоминиум, Бишкек, Киргизия',
|
||||||
|
description: 'В самом сердце Бишкека, на знаменитой улице Боконбаева, вас ждёт безупречное сочетание городского комфорта и умиротворяющего величия природы. Этот просторный кондоминиум с тремя спальнями и двумя ванными станет вашим личным оазисом с захватывающим видом на живописные горные вершины, открывающимся прямо из окон.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Широкие светлые комнаты с кондиционерами дарят желанную прохладу, а стильная кухня-гостиная с панорамным остеклением, высококачественной техникой и двумя большими телеэкранами создаёт идеальное пространство для жизни и приёма гостей. Высокоскоростной Wi-Fi и кабельное TV позаботятся о вашем досуге.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Жизнь здесь — это баланс между динамикой столицы и тишиной приватной территории. Прогуляйтесь пешком до главной площади, самого большого парка развлечений или изысканных ресторанов, а вернувшись, насладитесь покоем в ухоженном дворе с безопасной детской площадкой. Ваше спокойствие и безопасность охраняются круглосуточно.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Это больше чем аренда — это ваш новый адрес в Кыргызстане, где каждая деталь продумана, а гостеприимные русско- и англоговорящие хозяева сделают всё для вашего комфорта. Добро пожаловать в дом, где город встречается с горами.',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.59359221852621, 42.88807688328671],
|
||||||
|
address: 'Кыргызстан, Бишкек',
|
||||||
|
previewImage: {
|
||||||
|
src: '/isanova_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/isanova_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_6.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_7.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_8.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_9.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_10.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_11.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_12.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_13.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/isanova_14.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 78393412034000,
|
||||||
|
title: 'Жилье целиком, Бишкек, Киргизия',
|
||||||
|
shortTitle: 'Жилье целиком, Бишкек, Киргизия',
|
||||||
|
description: '✨🌇 Ваша Высокогорная Резиденция в Сердце Бишкека! ✨🌄\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Добро пожаловать в обитель безупречного комфорта и головокружительных панорам! Эта невероятно просторная двухкомнатная квартира на 14-м этаже станет вашим личным небесным убежищем, откуда открывается вид на весь город и величественные горные хребты.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🛋️ Королевский Комфорт:\n'
|
||||||
|
+ 'Забудьте об обычном сне! Вас ждут роскошные кровати размера King Size (200x200 см) с исключительно комфортными матрасами высочайшего класса, которые гарантируют сладкие сны и полное восстановление сил. 🛌💤 Все комнаты оборудованы современными кондиционерами, создавая идеальный микроклимат в любое время года. ❄️🌬️\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🍽️ Кухня Вашей Мечты:\n'
|
||||||
|
+ 'Полностью оборудованная кухня с посудомоечной машиной станет местом для лёгких завтраков с видом на городские крыши и вдохновенных кулинарных экспериментов. Здесь есть всё для вашего удобства! 🍳☕🧺\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🌐 Работа и Отдых:\n'
|
||||||
|
+ 'Быстрый Wi-Fi и специально обустроенное комфортное место для работы позволят вам с лёгкостью совмещать дела и отдых. А после продуктивного дня — расслабление на собственном открытом балконе. Это ваша личная сцена для созерцания самых потрясающих, огненных закатов, окрашивающих небо и горы в малиновые и золотые тона. 🌅🍷\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '📍 Идеальное Расположение:\n'
|
||||||
|
+ 'Вы в самом эпицентре жизни Бишкека! Лучшие рестораны, кафе и достопримечательности — буквально у вас под ногами. Всё самое интересное начинается за порогом дома. 🍽️🚶♀️🏙️\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🏡 Территория Без Забот:\n'
|
||||||
|
+ 'Просторная, очень большая и огороженная территория комплекса — это ваш зелёный и безопасный оазис для утренних пробежек или вечерних прогулок. 🏞️🔒\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Это не просто аренда — это ваш премиальный опыт жизни на высоте. Для тех, кто ценит безупречный стиль, абсолютный комфорт и панорамные виды, останавливающие время.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Ваше небесное убежище в Бишкеке ждёт вас! 🏔️✨',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.57873643745214, 42.871257954146216],
|
||||||
|
address: 'Кыргызстан, Бишкек',
|
||||||
|
previewImage: {
|
||||||
|
src: '/timirezeva_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/timirezeva_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_6.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_7.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_8.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_9.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_10.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/timirezeva_11.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 842340500,
|
||||||
|
title: 'Центральная квартира с видом на колесо обозрения',
|
||||||
|
shortTitle: 'Центральная квартира с видом на колесо обозрения',
|
||||||
|
description: '🌅 Начните свой идеальный день в Бишкеке с чашечки ароматного кофе Nespresso на уютной солнечной скамье у панорамного окна. Перед вами, как на ладони, раскинется зелёный оазис Парка Панфилова и гигантское колесо обозрения, застывшее на фоне гор. ☕🌳🎡\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🚶♀️ Отправляйтесь навстречу приключениям прямо от порога: главные достопримечательности, шумные проспекты и уютные улочки столицы — всё в пешей доступности. Прогулки по городу станут вашим ежедневным ритуалом.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🏡 Вернувшись в свой уединённый уголок, вас ждёт полная свобода: просторная квартира целиком в вашем безраздельном распоряжении. Приготовьте изысканный ужин на полностью оборудованной кухне, расслабьтесь под бодрящими струями просторного тропического душа 🚿, или устройте киномарафон в уютной гостиной.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🌿 А ещё — вас ждёт целый мир за окнами квартиры: тихий, охраняемый двор с современной детской площадкой 🧒 и тренажёрным залом под открытым небом 💪. Здесь можно и выдохнуть после насыщенного дня, и поддерживать форму.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '🛒 Не нужно никуда ехать: круглосуточный супермаркет, аптека 🏪 и уютный ресторан — прямо в вашем здании. Максимум удобства и минимум хлопот!\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '✨ Здесь вас ждёт безупречный союз:\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Комфорт продуманного личного пространства 🛋️\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Безопасность охраняемой территории 🔒\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Идеальное расположение в самом сердце города 💖\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Ваше путешествие начинается с идеального дома. Добро пожаловать! 🏔️✨',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.59965373916413, 42.88192301611185],
|
||||||
|
address: 'Кыргызстан, Бишкек',
|
||||||
|
previewImage: {
|
||||||
|
src: '/koleso_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/koleso_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_6.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_7.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_8.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_9.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_10.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_11.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_12.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_13.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/koleso_14.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 12321123987,
|
||||||
|
title: 'Апартаменты в центре города',
|
||||||
|
shortTitle: 'Апартаменты в центре города',
|
||||||
|
description: 'Эти апартаменты — воплощение гармонии городской динамики и приватного уюта, редкое сочетание, которое особенно ценится в центре мегаполиса. Расположенные в тихом, респектабельном районе Бишкека, они дарят ощущение спокойствия, оставаясь при этом в самом сердце городской жизни.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Современный дом с выразительной архитектурой органично вписан в окружающую застройку и сразу производит впечатление продуманного и качественного пространства. Здесь чувствуется новый уровень комфорта: аккуратные входные группы, ухоженная территория и атмосфера, в которой приятно возвращаться домой после насыщенного дня.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Внутреннее пространство квартиры наполнено светом и воздухом. Планировка продумана таким образом, чтобы каждый метр работал на удобство и эстетику: здесь легко представить как спокойные вечера в кругу близких, так и продуктивные рабочие дни в комфортной обстановке. Апартаменты создают ощущение уюта, в который хочется погрузиться сразу, переступив порог.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Одним из главных преимуществ является локация. Все, что нужно для комфортной жизни, находится буквально в нескольких шагах: уютные кофейни и пекарни с ароматной выпечкой по утрам, магазины и супермаркеты, рестораны, школы, парки и прогулочные аллеи. Вы можете начать день с неспешной прогулки среди зелени, а уже через несколько минут оказаться в деловом или культурном центре города.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Эта квартира идеально подойдёт тем, кто ценит качество, стиль и удобство, кто хочет жить в ритме города, не отказываясь от тишины и личного пространства. Апартаменты в центре — это не просто жильё, это образ жизни, в котором каждая деталь работает на ваш комфорт и удовольствие.',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.579776, 42.869574],
|
||||||
|
address: 'Кыргызстан, Бишкек',
|
||||||
|
previewImage: {
|
||||||
|
src: '/bshbsh_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/bshbsh_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bshbsh_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bshbsh_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bshbsh_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/bshbsh_6.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 54677645,
|
||||||
|
title: 'Светлая, новая квартира в центре',
|
||||||
|
shortTitle: 'Светлая, новая квартира в центре',
|
||||||
|
description: 'Светлая и просторная квартира в современном жилом комплексе с качественным ремонтом.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'В спальне — большая кровать (160x200) с ортопедическим матрасом, средней жесткости.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Кухня оснащена всей необходимой техникой и посудой для комфортного проживания.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Из окон открывается прекрасный вид на город и горы.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Рядом — прогулочные зоны, парки, магазины, кафе, рестораны и развлекательные заведения.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'До центральной площади Ала-Тоо — всего 10 минут пешком.\n'
|
||||||
|
+ 'Жилье\n'
|
||||||
|
+ 'Идеальное место для жизни или отдыха в центре Бишкека!\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Светлая и уютная квартира 70 м² с современным ремонтом в престижном жилом комплексе. Всё для вашего комфорта и безопасности: круглосуточная охрана, вход по чипам, чистый подъезд и дружелюбные соседи.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Преимущества:\n'
|
||||||
|
+ '• Уютная спальня с двуспальной кроватью и удобный диван-кровать.\n'
|
||||||
|
+ '• Полностью оборудованная кухня.\n'
|
||||||
|
+ '• Высокоскоростной Wi-Fi, два телевизора, включая Smart TV (Netflix, YouTube).\n'
|
||||||
|
+ '• Благоустроенная детская площадка во дворе.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Прекрасное расположение:\n'
|
||||||
|
+ '• В шаговой доступности: ТЦ Bishkek Park, парк Панфилова, сквер Горького, Филармония.\n'
|
||||||
|
+ '• Для активного отдыха — стадион «Спартак» и теннисный корт «Тайм-Брейк».\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Квартира идеально подойдёт для семей и тех, кто ценит комфорт и удобство в центре города.\n'
|
||||||
|
+ 'Что доступно гостю\n'
|
||||||
|
+ 'Квартира полностью оборудована для комфортного проживания.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Предоставляем детскую кроватку (от 1мес до 2лет).\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '-Кухня\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Полный комплект качественной посуды, тостер, кофеварка, индукционная плита, духовка, вытяжка, холодильник, микроволновая печь.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '-Санузел\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Душ, водонагреватель, зеркало, стиральная машина.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '-Спальная комната\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'Двуспальная кровать размером 160/200 с ортопедическим матрасом средней жёсткости, кондиционер (зима-лето), зеркальное шкаф-купе. Телевизор с выходом на интернет.\n'
|
||||||
|
+ '\n'
|
||||||
|
+ '-Гостиная\n'
|
||||||
|
+ '\n'
|
||||||
|
+ 'диван-кровать, кондиционер (зима-лето), телевизор, ковёр, комод для хранения вещей.\n'
|
||||||
|
+ 'Важная информация\n'
|
||||||
|
+ 'Уважаемые гости! В соответствии с указом Президента Кыргызской Республики, в будние дни с 22:00 до 7:00, а в выходные — с 22:00 до 9:00 строго запрещено создание шума. Пожалуйста, принимайте это во внимание и соблюдайте тишину, чтобы обеспечить комфорт и покой для всех. Благодарим за ваше понимание!',
|
||||||
|
type: 'rent',
|
||||||
|
category: 'nedvizhimost',
|
||||||
|
coordinates: [74.594117, 42.879309],
|
||||||
|
address: 'Кыргызстан, Бишкек',
|
||||||
|
previewImage: {
|
||||||
|
src: '/kartines_1.avif',
|
||||||
|
},
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
src: '/kartines_2.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_3.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_4.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_5.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_6.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_7.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_8.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_9.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_10.avif',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/kartines_11.avif',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const cartById = (id?: string) =>
|
const cartById = (id?: string) =>
|
||||||
|
|||||||
BIN
database.db
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<UHeader
|
<UHeader
|
||||||
title="Rental"
|
title="AT Golden"
|
||||||
:toggle="false"
|
:toggle="false"
|
||||||
:ui="{
|
:ui="{
|
||||||
root: 'fixed bg-transparent w-full',
|
root: 'fixed bg-transparent w-full',
|
||||||
@@ -13,8 +13,9 @@
|
|||||||
<template #left>
|
<template #left>
|
||||||
<Icon class="cursor-pointer w-6 h-6" name="lucide:arrow-left" @click="routerBack()" />
|
<Icon class="cursor-pointer w-6 h-6" name="lucide:arrow-left" @click="routerBack()" />
|
||||||
|
|
||||||
<NuxtLink to="/" class="absolute left-1/2 transform -translate-x-1/2 text-lg">
|
<NuxtLink to="/" class="absolute left-1/2 transform -translate-x-1/2 text-lg flex items-center gap-2">
|
||||||
Rental
|
<Icon name="my-icon:main-logo" :style="{ fontSize: isMobile ? '34px' : '48px' }" />
|
||||||
|
AT Golden
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
|
|
||||||
<transition name="fade">
|
<transition name="fade">
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="layout">
|
<div class="layout">
|
||||||
<ClientOnly>
|
<ClientOnly>
|
||||||
<UHeader
|
<UHeader
|
||||||
title="Rental"
|
title="AT Golden"
|
||||||
:toggle="false"
|
:toggle="false"
|
||||||
:ui="{
|
:ui="{
|
||||||
root: 'fixed bg-transparent w-full',
|
root: 'fixed bg-transparent w-full',
|
||||||
@@ -12,8 +12,11 @@
|
|||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<template #left>
|
<template #left>
|
||||||
<NuxtLink to="/" class="text-lg">
|
<NuxtLink to="/" class="text-lg flex items-center gap-2">
|
||||||
Rental
|
<Icon name="my-icon:main-logo" :style="{ fontSize: isMobile ? '34px' : '48px' }" />
|
||||||
|
<div v-if="!isMobile">
|
||||||
|
AT Golden
|
||||||
|
</div>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
|
|
||||||
<div class="absolute left-1/2 transform -translate-x-1/2">
|
<div class="absolute left-1/2 transform -translate-x-1/2">
|
||||||
@@ -22,7 +25,11 @@
|
|||||||
|
|
||||||
<!-- <UColorModeButton /> -->
|
<!-- <UColorModeButton /> -->
|
||||||
<div class="ml-auto">
|
<div class="ml-auto">
|
||||||
<UButton href="#contacts" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
|
<UButton
|
||||||
|
:href="route.path.startsWith('/about-us') ? '/' : '#contacts'"
|
||||||
|
:size="isMobile ? 'md' : 'xl'"
|
||||||
|
:label="route.path.startsWith('/about-us') ? 'Вернуться' : 'Связаться'"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</UHeader>
|
</UHeader>
|
||||||
@@ -33,6 +40,8 @@
|
|||||||
</UMain>
|
</UMain>
|
||||||
|
|
||||||
<BaseFooter />
|
<BaseFooter />
|
||||||
|
|
||||||
|
<PromotionModal v-model="open" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -40,12 +49,16 @@
|
|||||||
import type { TabsItem } from '@nuxt/ui'
|
import type { TabsItem } from '@nuxt/ui'
|
||||||
import { useMediaQuery } from '@vueuse/core'
|
import { useMediaQuery } from '@vueuse/core'
|
||||||
import BaseFooter from '~/components/BaseFooter.vue'
|
import BaseFooter from '~/components/BaseFooter.vue'
|
||||||
|
import PromotionModal from '~/components/PromotionModal.vue'
|
||||||
|
|
||||||
const isMobile = useMediaQuery('(max-width: 1280px)')
|
const isMobile = useMediaQuery('(max-width: 1280px)')
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
|
const open = ref(false)
|
||||||
|
const toast = useToast()
|
||||||
|
|
||||||
const tabs = computed<TabsItem[]>(() => [
|
const tabs = computed<TabsItem[]>(() => [
|
||||||
{
|
{
|
||||||
label: isMobile.value ? '' : 'Главная',
|
label: isMobile.value ? '' : 'Главная',
|
||||||
@@ -67,6 +80,31 @@ const tabs = computed<TabsItem[]>(() => [
|
|||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
|
function showToast() {
|
||||||
|
if (toast?.toasts?.value?.length > 0) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
toast.add({
|
||||||
|
title: 'Уникальное предложение !',
|
||||||
|
description: 'Покупка машины под ключ, Кыргызстан',
|
||||||
|
duration: 30000,
|
||||||
|
actions: [{
|
||||||
|
icon: 'i-lucide-car',
|
||||||
|
label: 'Подробнее',
|
||||||
|
color: 'neutral',
|
||||||
|
variant: 'outline',
|
||||||
|
onClick: () => {
|
||||||
|
open.value = true
|
||||||
|
},
|
||||||
|
}],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
showToast()
|
||||||
|
})
|
||||||
|
|
||||||
const activeTab = ref(route?.path.split('/')[1] || '/')
|
const activeTab = ref(route?.path.split('/')[1] || '/')
|
||||||
|
|
||||||
watch(() => activeTab.value, () => {
|
watch(() => activeTab.value, () => {
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
app: {
|
app: {
|
||||||
head: {
|
head: {
|
||||||
|
link: [
|
||||||
|
{ rel: 'icon', type: 'image/svg+xml', href: '/main-logo.svg' },
|
||||||
|
],
|
||||||
meta: [
|
meta: [
|
||||||
{
|
{
|
||||||
name: 'viewport',
|
name: 'viewport',
|
||||||
@@ -67,4 +70,12 @@ export default defineNuxtConfig({
|
|||||||
fonts: {
|
fonts: {
|
||||||
provider: 'google',
|
provider: 'google',
|
||||||
},
|
},
|
||||||
|
icon: {
|
||||||
|
customCollections: [
|
||||||
|
{
|
||||||
|
prefix: 'my-icon',
|
||||||
|
dir: './assets/my-icons',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
"@nuxt/image": "1.10.0",
|
"@nuxt/image": "1.10.0",
|
||||||
"@nuxt/ui": "^4.0.1",
|
"@nuxt/ui": "^4.0.1",
|
||||||
"@nuxtjs/i18n": "^10.0.4",
|
"@nuxtjs/i18n": "^10.0.4",
|
||||||
"@prisma/adapter-better-sqlite3": "^7.1.0",
|
|
||||||
"@prisma/adapter-libsql": "^7.1.0",
|
|
||||||
"@prisma/client": "^7.1.0",
|
|
||||||
"@tanstack/vue-query-devtools": "^5.87.1",
|
"@tanstack/vue-query-devtools": "^5.87.1",
|
||||||
"@types/better-sqlite3": "^7.6.13",
|
"@types/better-sqlite3": "^7.6.13",
|
||||||
"@types/node": "^24.10.2",
|
"@types/node": "^24.10.2",
|
||||||
@@ -35,7 +32,6 @@
|
|||||||
"maska": "^3.2.0",
|
"maska": "^3.2.0",
|
||||||
"nodemailer": "^7.0.11",
|
"nodemailer": "^7.0.11",
|
||||||
"nuxt": "^4.1.3",
|
"nuxt": "^4.1.3",
|
||||||
"prisma": "^7.1.0",
|
|
||||||
"swiper": "^12.0.2",
|
"swiper": "^12.0.2",
|
||||||
"typescript": "^5.6.3",
|
"typescript": "^5.6.3",
|
||||||
"vue": "^3.5.17",
|
"vue": "^3.5.17",
|
||||||
|
|||||||
80
pages/about-us.vue
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
<template>
|
||||||
|
<UPageHero
|
||||||
|
title="О нас"
|
||||||
|
description="Общество с ограниченной ответственностью «АТ Голден» — современный консьерж-сервис по недвижимости и автомобилям в Кыргызстане."
|
||||||
|
:ui="{
|
||||||
|
container: '!p-0 !pt-[160px] !sm:pt-[96px]',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<UContainer class="flex flex-col gap-16 mt-16">
|
||||||
|
<div class="flex flex-col gap-6 text-lg sm:text-xl">
|
||||||
|
<p>
|
||||||
|
Общество с ограниченной ответственностью «АТ Голден» — это современный консьерж-сервис, созданный для того, чтобы сделать услуги по подбору недвижимости и автомобилей доступными каждому. Мы работаем по всему Кыргызстану, включая Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген, обеспечивая удобное и безопасное сопровождение сделок в любом из этих городов.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Наша компания действует по принципу «под ключ»: мы полностью берём на себя поиск, проверку объектов, юридическое сопровождение и оформление документов. Вам не нужно вникать в сложные детали рынка и бюрократические процессы — команда профессионалов заботится о каждом этапе, чтобы сэкономить ваше время и исключить риски.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
АТ Голден — это надёжность, прозрачность и индивидуальный подход. Мы ценим доверие наших клиентов и стремимся к тому, чтобы каждая сделка проходила максимально комфортно, уверенно и безопасно.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<UCard>
|
||||||
|
<h2 class="text-2xl font-semibold mb-2">
|
||||||
|
Наши реквизиты:
|
||||||
|
</h2>
|
||||||
|
<p>ООО «АТ Голден»</p>
|
||||||
|
<p>ИНН: 00406202010276</p>
|
||||||
|
<p>Регистрационный номер: 190962-3301-ООО</p>
|
||||||
|
<p>Адрес: г. Бишкек, Свердловский район, ул. Ибраимова, дом 115/4</p>
|
||||||
|
<a href="tel:+996700115500" class="hover:opacity-100 opacity-70">Телефон: +9 (965) 042-80-490</a>
|
||||||
|
</UCard>
|
||||||
|
|
||||||
|
<div class="flex flex-col sm:flex-row gap-4 justify-between">
|
||||||
|
<a
|
||||||
|
href="/Политика_конфиденциальности_АТ_Голден.pdf"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<UCard variant="subtle">
|
||||||
|
Политика конфиденциальности
|
||||||
|
</UCard>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="/Пользовательское_соглашение_АТ_Голден.pdf"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<UCard variant="subtle">
|
||||||
|
Пользовательское соглашение
|
||||||
|
</UCard>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</UContainer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
useHead({
|
||||||
|
title: 'О нас — АТ Голден, консьерж-сервис недвижимости и автомобилей в Кыргызстане',
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: 'Общество с ограниченной ответственностью «АТ Голден» — современный консьерж-сервис по подбору недвижимости и автомобилей в Кыргызстане. Надёжное сопровождение сделок в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'keywords',
|
||||||
|
content: 'АТ Голден, консьерж-сервис, недвижимость Кыргызстан, автомобили Кыргызстан, услуги под ключ, юридическое сопровождение, безопасные сделки, Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак, Узген',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:title',
|
||||||
|
content: 'О нас — АТ Голден, консьерж-сервис недвижимости и автомобилей в Кыргызстане',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:description',
|
||||||
|
content: 'Общество с ограниченной ответственностью «АТ Голден» — современный консьерж-сервис по подбору недвижимости и автомобилей в Кыргызстане. Надёжное сопровождение сделок в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах.',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -2,14 +2,17 @@
|
|||||||
<div class="index-page">
|
<div class="index-page">
|
||||||
<UPageHero
|
<UPageHero
|
||||||
title="Консьерж-сервис - доступный каждому"
|
title="Консьерж-сервис - доступный каждому"
|
||||||
:description="`Недвижимость и авто под ключ\nМы берем на себя все заботы по поиску, проверке и оформлению недвижимости и автомобилей. Экономьте время — доверьтесь профессионалам.`"
|
description="Недвижимость и авто под ключ в Кыргызстане. Мы берем на себя все заботы по поиску, проверке и оформлению недвижимости и автомобилей. Экономьте время — доверьтесь профессионалам."
|
||||||
class="index-page__hero"
|
class="index-page__hero"
|
||||||
|
:ui="{
|
||||||
|
description: 'text-lg sm:text-xl/8 text-property',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex gap-2 place-content-center h-[48px]">
|
<div class="flex gap-2 place-content-center h-[48px]">
|
||||||
<UButton
|
<UButton
|
||||||
size="xl"
|
size="xl"
|
||||||
label="Узанть больше"
|
label="Узнать больше"
|
||||||
href="#services"
|
href="#services"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -38,7 +41,13 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Rental - консьерж-сервис',
|
title: 'АТ Голден — доступный консьерж-сервис для авто и недвижимости в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген)',
|
||||||
|
meta: [
|
||||||
|
{ name: 'description', content: 'Поиск, проверка и оформление недвижимости и автомобилей в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген). АТ Голден — доступный консьерж-сервис, который заботится о каждом этапе сделки. Надёжно, безопасно, профессионально.' },
|
||||||
|
{ name: 'keywords', content: 'консьерж-сервис, услуги для авто, услуги для недвижимости, покупка авто, продажа авто, оформление авто, проверка авто, недвижимость Кыргызстан, покупка недвижимости, продажа недвижимости, оформление недвижимости, Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак, Узген, безопасные сделки, профессиональный сервис' },
|
||||||
|
{ property: 'og:title', content: 'АТ Голден — доступный консьерж-сервис для авто и недвижимости в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген)' },
|
||||||
|
{ property: 'og:description', content: 'Поиск, проверка и оформление недвижимости и автомобилей в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген). АТ Голден — доступный консьерж-сервис, который заботится о каждом этапе сделки. Надёжно, безопасно, профессионально.' },
|
||||||
|
],
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
<div class="nedvizhimost-page">
|
<div class="nedvizhimost-page">
|
||||||
<UPageHero
|
<UPageHero
|
||||||
title="Недвижимость вашей мечты"
|
title="Недвижимость вашей мечты"
|
||||||
:description="`Помогаем найти, купить или продать недвижимость с полным\n юридическим сопровождением и гарантией безопасности сделки.`"
|
description="Помогаем найти, купить или продать недвижимость с полным юридическим сопровождением и гарантией безопасности сделки в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген)."
|
||||||
class="nedvizhimost-page__hero"
|
class="nedvizhimost-page__hero"
|
||||||
|
:ui="{
|
||||||
|
description: 'text-lg sm:text-xl/8 text-property',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex gap-2 place-content-center h-[48px]">
|
<div class="flex gap-2 place-content-center h-[48px]">
|
||||||
@@ -90,7 +93,19 @@ const { cartByCategory } = useMock()
|
|||||||
const previewItems = computed(() => cartByCategory('nedvizhimost'))
|
const previewItems = computed(() => cartByCategory('nedvizhimost'))
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Rental - недвижимость',
|
title: 'Недвижимость в Кыргызстане — покупка, продажа и аренда с полным сопровождением',
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: 'АТ Голден помогает найти, купить, продать или арендовать недвижимость в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах Кыргызстана. Полное юридическое сопровождение и безопасные сделки.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'keywords',
|
||||||
|
content: 'недвижимость Кыргызстан, покупка недвижимости, продажа недвижимости, аренда жилья, коммерческая недвижимость, квартиры, дома, апартаменты, безопасные сделки, юридическая проверка, сопровождение сделок, Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак, Узген',
|
||||||
|
},
|
||||||
|
{ property: 'og:title', content: 'Недвижимость в Кыргызстане — покупка, продажа и аренда с полным сопровождением' },
|
||||||
|
{ property: 'og:description', content: 'АТ Голден помогает найти, купить, продать или арендовать недвижимость в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах Кыргызстана. Полное юридическое сопровождение и безопасные сделки.' },
|
||||||
|
],
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -169,7 +169,25 @@ onUnmounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: `Rental - ${cart?.title}`,
|
title: `${cart?.title} — подробная информация и услуги от АТ Голден`,
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: `${cart?.title} доступен через АТ Голден. ${cart?.description.replace(/<[^>]+(>|$)/g, '').slice(0, 160)}. Полное сопровождение сделки, юридическая проверка и безопасное оформление.`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'keywords',
|
||||||
|
content: `${cart?.category}, ${cart?.title}, аренда ${cart?.category}, покупка ${cart?.category}, продажа ${cart?.category}, проверка документов, безопасная сделка, АТ Голден, Кыргызстан, Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак, Узген`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:title',
|
||||||
|
content: `${cart?.title} — подробная информация и услуги от АТ Голден`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
property: 'og:description',
|
||||||
|
content: `${cart?.title} доступен через АТ Голден. ${cart?.description.replace(/<[^>]+(>|$)/g, '').slice(0, 160)}. Полное сопровождение сделки, юридическая проверка и безопасное оформление.`,
|
||||||
|
},
|
||||||
|
],
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
<div class="transport-page">
|
<div class="transport-page">
|
||||||
<UPageHero
|
<UPageHero
|
||||||
title="Премиум автомобили под ключ"
|
title="Премиум автомобили под ключ"
|
||||||
:description="`Аренда, покупка и продажа автомобилей премиум-класса с полным\n сервисным сопровождением и гарантией качества.`"
|
description="Аренда, покупка и продажа автомобилей премиум-класса с полным сервисным сопровождением и гарантией качества в Кыргызстане (Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак и Узген)."
|
||||||
class="transport-page__hero"
|
class="transport-page__hero"
|
||||||
|
:ui="{
|
||||||
|
description: 'text-lg sm:text-xl/8 text-property',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="flex gap-2 place-content-center h-[48px]">
|
<div class="flex gap-2 place-content-center h-[48px]">
|
||||||
@@ -86,7 +89,23 @@ const { cartByCategory } = useMock()
|
|||||||
const previewItems = computed(() => cartByCategory('transport'))
|
const previewItems = computed(() => cartByCategory('transport'))
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Rental - автомобили',
|
title: 'Премиум автомобили в Кыргызстане — аренда, покупка и продажа с полным сопровождением',
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
name: 'description',
|
||||||
|
content: 'АТ Голден предлагает аренду, покупку и продажу автомобилей премиум-класса в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах Кыргызстана. Полное сервисное сопровождение, юридическая проверка и безопасность сделок.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'keywords',
|
||||||
|
content: 'автомобили премиум-класса, аренда авто, краткосрочная аренда, долгосрочная аренда, покупка автомобиля, продажа автомобиля, проверка юридической чистоты, техническая экспертиза, безопасные сделки, сопровождение сделки, доставка авто, страховка авто, Бишкек, Ош, Джалал-Абад, Каракол, Балыкчы, Талас, Токмак, Узген',
|
||||||
|
},
|
||||||
|
{ property: 'og:title', content: 'Премиум автомобили в Кыргызстане — аренда, покупка и продажа с полным сопровождением' },
|
||||||
|
{ property: 'og:description', content: 'АТ Голден предлагает аренду, покупку и продажу автомобилей премиум-класса в Бишкеке, Оше, Джалал-Абаде, Караколе и других городах Кыргызстана. Полное сервисное сопровождение, юридическая проверка и безопасность сделок.' },
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
layout: 'default',
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
import { defineConfig, env } from 'prisma/config'
|
|
||||||
// This file was generated by Prisma and assumes you have installed the following:
|
|
||||||
// npm install --save-dev prisma dotenv
|
|
||||||
import 'dotenv/config'
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
schema: 'prisma/schema.prisma',
|
|
||||||
migrations: {
|
|
||||||
path: 'prisma/migrations',
|
|
||||||
},
|
|
||||||
datasource: {
|
|
||||||
url: env('DATABASE_URL'),
|
|
||||||
},
|
|
||||||
})
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* This file should be your main import to use Prisma-related types and utilities in a browser.
|
|
||||||
* Use it to get access to models, enums, and input types.
|
|
||||||
*
|
|
||||||
* This file does not contain a `PrismaClient` class, nor several other helpers that are intended as server-side only.
|
|
||||||
* See `client.ts` for the standard, server-side entry point.
|
|
||||||
*
|
|
||||||
* 🟢 You can import this file directly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as Prisma from './internal/prismaNamespaceBrowser'
|
|
||||||
export { Prisma }
|
|
||||||
export * as $Enums from './enums'
|
|
||||||
export * from './enums';
|
|
||||||
/**
|
|
||||||
* Model User
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type User = Prisma.UserModel
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* This file should be your main import to use Prisma. Through it you get access to all the models, enums, and input types.
|
|
||||||
* If you're looking for something you can import in the client-side of your application, please refer to the `browser.ts` file instead.
|
|
||||||
*
|
|
||||||
* 🟢 You can import this file directly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as process from 'node:process'
|
|
||||||
import * as path from 'node:path'
|
|
||||||
import { fileURLToPath } from 'node:url'
|
|
||||||
globalThis['__dirname'] = path.dirname(fileURLToPath(import.meta.url))
|
|
||||||
|
|
||||||
import * as runtime from "@prisma/client/runtime/client"
|
|
||||||
import * as $Enums from "./enums"
|
|
||||||
import * as $Class from "./internal/class"
|
|
||||||
import * as Prisma from "./internal/prismaNamespace"
|
|
||||||
|
|
||||||
export * as $Enums from './enums'
|
|
||||||
export * from "./enums"
|
|
||||||
/**
|
|
||||||
* ## Prisma Client
|
|
||||||
*
|
|
||||||
* Type-safe database client for TypeScript
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const prisma = new PrismaClient()
|
|
||||||
* // Fetch zero or more Users
|
|
||||||
* const users = await prisma.user.findMany()
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/client).
|
|
||||||
*/
|
|
||||||
export const PrismaClient = $Class.getPrismaClientClass()
|
|
||||||
export type PrismaClient<LogOpts extends Prisma.LogLevel = never, OmitOpts extends Prisma.PrismaClientOptions["omit"] = Prisma.PrismaClientOptions["omit"], ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = $Class.PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
|
||||||
export { Prisma }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Model User
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type User = Prisma.UserModel
|
|
||||||
@@ -1,272 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* This file exports various common sort, input & filter types that are not directly linked to a particular model.
|
|
||||||
*
|
|
||||||
* 🟢 You can import this file directly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import type * as runtime from "@prisma/client/runtime/client"
|
|
||||||
import * as $Enums from "./enums"
|
|
||||||
import type * as Prisma from "./internal/prismaNamespace"
|
|
||||||
|
|
||||||
|
|
||||||
export type IntFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
in?: number[]
|
|
||||||
notIn?: number[]
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntFilter<$PrismaModel> | number
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
in?: string[]
|
|
||||||
notIn?: string[]
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringFilter<$PrismaModel> | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | null
|
|
||||||
notIn?: string[] | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type DateTimeFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
in?: Date[] | string[]
|
|
||||||
notIn?: Date[] | string[]
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type SortOrderInput = {
|
|
||||||
sort: Prisma.SortOrder
|
|
||||||
nulls?: Prisma.NullsOrder
|
|
||||||
}
|
|
||||||
|
|
||||||
export type IntWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
in?: number[]
|
|
||||||
notIn?: number[]
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedFloatFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
in?: string[]
|
|
||||||
notIn?: string[]
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | null
|
|
||||||
notIn?: string[] | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
in?: Date[] | string[]
|
|
||||||
notIn?: Date[] | string[]
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedIntFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
in?: number[]
|
|
||||||
notIn?: number[]
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntFilter<$PrismaModel> | number
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
in?: string[]
|
|
||||||
notIn?: string[]
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringFilter<$PrismaModel> | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | null
|
|
||||||
notIn?: string[] | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedDateTimeFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
in?: Date[] | string[]
|
|
||||||
notIn?: Date[] | string[]
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeFilter<$PrismaModel> | Date | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
in?: number[]
|
|
||||||
notIn?: number[]
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntWithAggregatesFilter<$PrismaModel> | number
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedFloatFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedFloatFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
in?: number[]
|
|
||||||
notIn?: number[]
|
|
||||||
lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedFloatFilter<$PrismaModel> | number
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
in?: string[]
|
|
||||||
notIn?: string[]
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringWithAggregatesFilter<$PrismaModel> | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | null
|
|
||||||
notIn?: string[] | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedIntNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | null
|
|
||||||
notIn?: number[] | null
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
in?: Date[] | string[]
|
|
||||||
notIn?: Date[] | string[]
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* This file exports all enum related types from the schema.
|
|
||||||
*
|
|
||||||
* 🟢 You can import this file directly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// This file is empty because there are no enums in the schema.
|
|
||||||
export {}
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* WARNING: This is an internal file that is subject to change!
|
|
||||||
*
|
|
||||||
* 🛑 Under no circumstances should you import this file directly! 🛑
|
|
||||||
*
|
|
||||||
* Please import the `PrismaClient` class from the `client.ts` file instead.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as runtime from "@prisma/client/runtime/client"
|
|
||||||
import type * as Prisma from "./prismaNamespace"
|
|
||||||
|
|
||||||
|
|
||||||
const config: runtime.GetPrismaClientConfig = {
|
|
||||||
"previewFeatures": [],
|
|
||||||
"clientVersion": "7.1.0",
|
|
||||||
"engineVersion": "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba",
|
|
||||||
"activeProvider": "sqlite",
|
|
||||||
"inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"./generated\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel User {\n id Int @id @default(autoincrement())\n name String\n phone String\n service String?\n comment String?\n route String?\n createdAt DateTime @default(now())\n}\n",
|
|
||||||
"runtimeDataModel": {
|
|
||||||
"models": {},
|
|
||||||
"enums": {},
|
|
||||||
"types": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"service\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"route\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
|
|
||||||
|
|
||||||
async function decodeBase64AsWasm(wasmBase64: string): Promise<WebAssembly.Module> {
|
|
||||||
const { Buffer } = await import('node:buffer')
|
|
||||||
const wasmArray = Buffer.from(wasmBase64, 'base64')
|
|
||||||
return new WebAssembly.Module(wasmArray)
|
|
||||||
}
|
|
||||||
|
|
||||||
config.compilerWasm = {
|
|
||||||
getRuntime: async () => await import("@prisma/client/runtime/query_compiler_bg.sqlite.mjs"),
|
|
||||||
|
|
||||||
getQueryCompilerWasmModule: async () => {
|
|
||||||
const { wasm } = await import("@prisma/client/runtime/query_compiler_bg.sqlite.wasm-base64.mjs")
|
|
||||||
return await decodeBase64AsWasm(wasm)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export type LogOptions<ClientOptions extends Prisma.PrismaClientOptions> =
|
|
||||||
'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never
|
|
||||||
|
|
||||||
export interface PrismaClientConstructor {
|
|
||||||
/**
|
|
||||||
* ## Prisma Client
|
|
||||||
*
|
|
||||||
* Type-safe database client for TypeScript
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const prisma = new PrismaClient()
|
|
||||||
* // Fetch zero or more Users
|
|
||||||
* const users = await prisma.user.findMany()
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/client).
|
|
||||||
*/
|
|
||||||
|
|
||||||
new <
|
|
||||||
Options extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
|
|
||||||
LogOpts extends LogOptions<Options> = LogOptions<Options>,
|
|
||||||
OmitOpts extends Prisma.PrismaClientOptions['omit'] = Options extends { omit: infer U } ? U : Prisma.PrismaClientOptions['omit'],
|
|
||||||
ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
|
|
||||||
>(options: Prisma.Subset<Options, Prisma.PrismaClientOptions> ): PrismaClient<LogOpts, OmitOpts, ExtArgs>
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ## Prisma Client
|
|
||||||
*
|
|
||||||
* Type-safe database client for TypeScript
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const prisma = new PrismaClient()
|
|
||||||
* // Fetch zero or more Users
|
|
||||||
* const users = await prisma.user.findMany()
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/client).
|
|
||||||
*/
|
|
||||||
|
|
||||||
export interface PrismaClient<
|
|
||||||
in LogOpts extends Prisma.LogLevel = never,
|
|
||||||
in out OmitOpts extends Prisma.PrismaClientOptions['omit'] = undefined,
|
|
||||||
in out ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs
|
|
||||||
> {
|
|
||||||
[K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }
|
|
||||||
|
|
||||||
$on<V extends LogOpts>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Connect with the database
|
|
||||||
*/
|
|
||||||
$connect(): runtime.Types.Utils.JsPromise<void>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disconnect from the database
|
|
||||||
*/
|
|
||||||
$disconnect(): runtime.Types.Utils.JsPromise<void>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Executes a prepared raw query and returns the number of affected rows.
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
||||||
*/
|
|
||||||
$executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Executes a raw query and returns the number of affected rows.
|
|
||||||
* Susceptible to SQL injections, see documentation.
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
||||||
*/
|
|
||||||
$executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs a prepared raw query and returns the `SELECT` data.
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
||||||
*/
|
|
||||||
$queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs a raw query and returns the `SELECT` data.
|
|
||||||
* Susceptible to SQL injections, see documentation.
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://pris.ly/d/raw-queries).
|
|
||||||
*/
|
|
||||||
$queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const [george, bob, alice] = await prisma.$transaction([
|
|
||||||
* prisma.user.create({ data: { name: 'George' } }),
|
|
||||||
* prisma.user.create({ data: { name: 'Bob' } }),
|
|
||||||
* prisma.user.create({ data: { name: 'Alice' } }),
|
|
||||||
* ])
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
|
|
||||||
*/
|
|
||||||
$transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>
|
|
||||||
|
|
||||||
$transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => runtime.Types.Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): runtime.Types.Utils.JsPromise<R>
|
|
||||||
|
|
||||||
$extends: runtime.Types.Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<OmitOpts>, ExtArgs, runtime.Types.Utils.Call<Prisma.TypeMapCb<OmitOpts>, {
|
|
||||||
extArgs: ExtArgs
|
|
||||||
}>>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* `prisma.user`: Exposes CRUD operations for the **User** model.
|
|
||||||
* Example usage:
|
|
||||||
* ```ts
|
|
||||||
* // Fetch zero or more Users
|
|
||||||
* const users = await prisma.user.findMany()
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
get user(): Prisma.UserDelegate<ExtArgs, { omit: OmitOpts }>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getPrismaClientClass(): PrismaClientConstructor {
|
|
||||||
return runtime.getPrismaClient(config) as unknown as PrismaClientConstructor
|
|
||||||
}
|
|
||||||
@@ -1,737 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* WARNING: This is an internal file that is subject to change!
|
|
||||||
*
|
|
||||||
* 🛑 Under no circumstances should you import this file directly! 🛑
|
|
||||||
*
|
|
||||||
* All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file.
|
|
||||||
* While this enables partial backward compatibility, it is not part of the stable public API.
|
|
||||||
*
|
|
||||||
* If you are looking for your Models, Enums, and Input Types, please import them from the respective
|
|
||||||
* model files in the `model` directory!
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as runtime from "@prisma/client/runtime/client"
|
|
||||||
import type * as Prisma from "../models"
|
|
||||||
import { type PrismaClient } from "./class"
|
|
||||||
|
|
||||||
export type * from '../models'
|
|
||||||
|
|
||||||
export type DMMF = typeof runtime.DMMF
|
|
||||||
|
|
||||||
export type PrismaPromise<T> = runtime.Types.Public.PrismaPromise<T>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prisma Errors
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
|
|
||||||
export type PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
|
|
||||||
|
|
||||||
export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
|
|
||||||
export type PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
|
|
||||||
|
|
||||||
export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
|
|
||||||
export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
|
|
||||||
|
|
||||||
export const PrismaClientInitializationError = runtime.PrismaClientInitializationError
|
|
||||||
export type PrismaClientInitializationError = runtime.PrismaClientInitializationError
|
|
||||||
|
|
||||||
export const PrismaClientValidationError = runtime.PrismaClientValidationError
|
|
||||||
export type PrismaClientValidationError = runtime.PrismaClientValidationError
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Re-export of sql-template-tag
|
|
||||||
*/
|
|
||||||
export const sql = runtime.sqltag
|
|
||||||
export const empty = runtime.empty
|
|
||||||
export const join = runtime.join
|
|
||||||
export const raw = runtime.raw
|
|
||||||
export const Sql = runtime.Sql
|
|
||||||
export type Sql = runtime.Sql
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decimal.js
|
|
||||||
*/
|
|
||||||
export const Decimal = runtime.Decimal
|
|
||||||
export type Decimal = runtime.Decimal
|
|
||||||
|
|
||||||
export type DecimalJsLike = runtime.DecimalJsLike
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extensions
|
|
||||||
*/
|
|
||||||
export type Extension = runtime.Types.Extensions.UserArgs
|
|
||||||
export const getExtensionContext = runtime.Extensions.getExtensionContext
|
|
||||||
export type Args<T, F extends runtime.Operation> = runtime.Types.Public.Args<T, F>
|
|
||||||
export type Payload<T, F extends runtime.Operation = never> = runtime.Types.Public.Payload<T, F>
|
|
||||||
export type Result<T, A, F extends runtime.Operation> = runtime.Types.Public.Result<T, A, F>
|
|
||||||
export type Exact<A, W> = runtime.Types.Public.Exact<A, W>
|
|
||||||
|
|
||||||
export type PrismaVersion = {
|
|
||||||
client: string
|
|
||||||
engine: string
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prisma Client JS version: 7.1.0
|
|
||||||
* Query Engine version: ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba
|
|
||||||
*/
|
|
||||||
export const prismaVersion: PrismaVersion = {
|
|
||||||
client: "7.1.0",
|
|
||||||
engine: "ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba"
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Utility Types
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type Bytes = runtime.Bytes
|
|
||||||
export type JsonObject = runtime.JsonObject
|
|
||||||
export type JsonArray = runtime.JsonArray
|
|
||||||
export type JsonValue = runtime.JsonValue
|
|
||||||
export type InputJsonObject = runtime.InputJsonObject
|
|
||||||
export type InputJsonArray = runtime.InputJsonArray
|
|
||||||
export type InputJsonValue = runtime.InputJsonValue
|
|
||||||
|
|
||||||
|
|
||||||
export const NullTypes = {
|
|
||||||
DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
|
|
||||||
JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
|
|
||||||
AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that have `null` on the database (empty on the db)
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const DbNull = runtime.DbNull
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const JsonNull = runtime.JsonNull
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const AnyNull = runtime.AnyNull
|
|
||||||
|
|
||||||
|
|
||||||
type SelectAndInclude = {
|
|
||||||
select: any
|
|
||||||
include: any
|
|
||||||
}
|
|
||||||
|
|
||||||
type SelectAndOmit = {
|
|
||||||
select: any
|
|
||||||
omit: any
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* From T, pick a set of properties whose keys are in the union K
|
|
||||||
*/
|
|
||||||
type Prisma__Pick<T, K extends keyof T> = {
|
|
||||||
[P in K]: T[P];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type Enumerable<T> = T | Array<T>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subset
|
|
||||||
* @desc From `T` pick properties that exist in `U`. Simple version of Intersection
|
|
||||||
*/
|
|
||||||
export type Subset<T, U> = {
|
|
||||||
[key in keyof T]: key extends keyof U ? T[key] : never;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SelectSubset
|
|
||||||
* @desc From `T` pick properties that exist in `U`. Simple version of Intersection.
|
|
||||||
* Additionally, it validates, if both select and include are present. If the case, it errors.
|
|
||||||
*/
|
|
||||||
export type SelectSubset<T, U> = {
|
|
||||||
[key in keyof T]: key extends keyof U ? T[key] : never
|
|
||||||
} &
|
|
||||||
(T extends SelectAndInclude
|
|
||||||
? 'Please either choose `select` or `include`.'
|
|
||||||
: T extends SelectAndOmit
|
|
||||||
? 'Please either choose `select` or `omit`.'
|
|
||||||
: {})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subset + Intersection
|
|
||||||
* @desc From `T` pick properties that exist in `U` and intersect `K`
|
|
||||||
*/
|
|
||||||
export type SubsetIntersection<T, U, K> = {
|
|
||||||
[key in keyof T]: key extends keyof U ? T[key] : never
|
|
||||||
} &
|
|
||||||
K
|
|
||||||
|
|
||||||
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
|
|
||||||
|
|
||||||
/**
|
|
||||||
* XOR is needed to have a real mutually exclusive union type
|
|
||||||
* https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types
|
|
||||||
*/
|
|
||||||
export type XOR<T, U> =
|
|
||||||
T extends object ?
|
|
||||||
U extends object ?
|
|
||||||
(Without<T, U> & U) | (Without<U, T> & T)
|
|
||||||
: U : T
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is T a Record?
|
|
||||||
*/
|
|
||||||
type IsObject<T extends any> = T extends Array<any>
|
|
||||||
? False
|
|
||||||
: T extends Date
|
|
||||||
? False
|
|
||||||
: T extends Uint8Array
|
|
||||||
? False
|
|
||||||
: T extends BigInt
|
|
||||||
? False
|
|
||||||
: T extends object
|
|
||||||
? True
|
|
||||||
: False
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If it's T[], return T
|
|
||||||
*/
|
|
||||||
export type UnEnumerate<T extends unknown> = T extends Array<infer U> ? U : T
|
|
||||||
|
|
||||||
/**
|
|
||||||
* From ts-toolbelt
|
|
||||||
*/
|
|
||||||
|
|
||||||
type __Either<O extends object, K extends Key> = Omit<O, K> &
|
|
||||||
{
|
|
||||||
// Merge all but K
|
|
||||||
[P in K]: Prisma__Pick<O, P & keyof O> // With K possibilities
|
|
||||||
}[K]
|
|
||||||
|
|
||||||
type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>>
|
|
||||||
|
|
||||||
type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<O, K>>
|
|
||||||
|
|
||||||
type _Either<
|
|
||||||
O extends object,
|
|
||||||
K extends Key,
|
|
||||||
strict extends Boolean
|
|
||||||
> = {
|
|
||||||
1: EitherStrict<O, K>
|
|
||||||
0: EitherLoose<O, K>
|
|
||||||
}[strict]
|
|
||||||
|
|
||||||
export type Either<
|
|
||||||
O extends object,
|
|
||||||
K extends Key,
|
|
||||||
strict extends Boolean = 1
|
|
||||||
> = O extends unknown ? _Either<O, K, strict> : never
|
|
||||||
|
|
||||||
export type Union = any
|
|
||||||
|
|
||||||
export type PatchUndefined<O extends object, O1 extends object> = {
|
|
||||||
[K in keyof O]: O[K] extends undefined ? At<O1, K> : O[K]
|
|
||||||
} & {}
|
|
||||||
|
|
||||||
/** Helper Types for "Merge" **/
|
|
||||||
export type IntersectOf<U extends Union> = (
|
|
||||||
U extends unknown ? (k: U) => void : never
|
|
||||||
) extends (k: infer I) => void
|
|
||||||
? I
|
|
||||||
: never
|
|
||||||
|
|
||||||
export type Overwrite<O extends object, O1 extends object> = {
|
|
||||||
[K in keyof O]: K extends keyof O1 ? O1[K] : O[K];
|
|
||||||
} & {};
|
|
||||||
|
|
||||||
type _Merge<U extends object> = IntersectOf<Overwrite<U, {
|
|
||||||
[K in keyof U]-?: At<U, K>;
|
|
||||||
}>>;
|
|
||||||
|
|
||||||
type Key = string | number | symbol;
|
|
||||||
type AtStrict<O extends object, K extends Key> = O[K & keyof O];
|
|
||||||
type AtLoose<O extends object, K extends Key> = O extends unknown ? AtStrict<O, K> : never;
|
|
||||||
export type At<O extends object, K extends Key, strict extends Boolean = 1> = {
|
|
||||||
1: AtStrict<O, K>;
|
|
||||||
0: AtLoose<O, K>;
|
|
||||||
}[strict];
|
|
||||||
|
|
||||||
export type ComputeRaw<A extends any> = A extends Function ? A : {
|
|
||||||
[K in keyof A]: A[K];
|
|
||||||
} & {};
|
|
||||||
|
|
||||||
export type OptionalFlat<O> = {
|
|
||||||
[K in keyof O]?: O[K];
|
|
||||||
} & {};
|
|
||||||
|
|
||||||
type _Record<K extends keyof any, T> = {
|
|
||||||
[P in K]: T;
|
|
||||||
};
|
|
||||||
|
|
||||||
// cause typescript not to expand types and preserve names
|
|
||||||
type NoExpand<T> = T extends unknown ? T : never;
|
|
||||||
|
|
||||||
// this type assumes the passed object is entirely optional
|
|
||||||
export type AtLeast<O extends object, K extends string> = NoExpand<
|
|
||||||
O extends unknown
|
|
||||||
? | (K extends keyof O ? { [P in K]: O[P] } & O : O)
|
|
||||||
| {[P in keyof O as P extends K ? P : never]-?: O[P]} & O
|
|
||||||
: never>;
|
|
||||||
|
|
||||||
type _Strict<U, _U = U> = U extends unknown ? U & OptionalFlat<_Record<Exclude<Keys<_U>, keyof U>, never>> : never;
|
|
||||||
|
|
||||||
export type Strict<U extends object> = ComputeRaw<_Strict<U>>;
|
|
||||||
/** End Helper Types for "Merge" **/
|
|
||||||
|
|
||||||
export type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>;
|
|
||||||
|
|
||||||
export type Boolean = True | False
|
|
||||||
|
|
||||||
export type True = 1
|
|
||||||
|
|
||||||
export type False = 0
|
|
||||||
|
|
||||||
export type Not<B extends Boolean> = {
|
|
||||||
0: 1
|
|
||||||
1: 0
|
|
||||||
}[B]
|
|
||||||
|
|
||||||
export type Extends<A1 extends any, A2 extends any> = [A1] extends [never]
|
|
||||||
? 0 // anything `never` is false
|
|
||||||
: A1 extends A2
|
|
||||||
? 1
|
|
||||||
: 0
|
|
||||||
|
|
||||||
export type Has<U extends Union, U1 extends Union> = Not<
|
|
||||||
Extends<Exclude<U1, U>, U1>
|
|
||||||
>
|
|
||||||
|
|
||||||
export type Or<B1 extends Boolean, B2 extends Boolean> = {
|
|
||||||
0: {
|
|
||||||
0: 0
|
|
||||||
1: 1
|
|
||||||
}
|
|
||||||
1: {
|
|
||||||
0: 1
|
|
||||||
1: 1
|
|
||||||
}
|
|
||||||
}[B1][B2]
|
|
||||||
|
|
||||||
export type Keys<U extends Union> = U extends unknown ? keyof U : never
|
|
||||||
|
|
||||||
export type GetScalarType<T, O> = O extends object ? {
|
|
||||||
[P in keyof T]: P extends keyof O
|
|
||||||
? O[P]
|
|
||||||
: never
|
|
||||||
} : never
|
|
||||||
|
|
||||||
type FieldPaths<
|
|
||||||
T,
|
|
||||||
U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_max'>
|
|
||||||
> = IsObject<T> extends True ? U : T
|
|
||||||
|
|
||||||
export type GetHavingFields<T> = {
|
|
||||||
[K in keyof T]: Or<
|
|
||||||
Or<Extends<'OR', K>, Extends<'AND', K>>,
|
|
||||||
Extends<'NOT', K>
|
|
||||||
> extends True
|
|
||||||
? // infer is only needed to not hit TS limit
|
|
||||||
// based on the brilliant idea of Pierre-Antoine Mills
|
|
||||||
// https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437
|
|
||||||
T[K] extends infer TK
|
|
||||||
? GetHavingFields<UnEnumerate<TK> extends object ? Merge<UnEnumerate<TK>> : never>
|
|
||||||
: never
|
|
||||||
: {} extends FieldPaths<T[K]>
|
|
||||||
? never
|
|
||||||
: K
|
|
||||||
}[keyof T]
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert tuple to union
|
|
||||||
*/
|
|
||||||
type _TupleToUnion<T> = T extends (infer E)[] ? E : never
|
|
||||||
type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>
|
|
||||||
export type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Like `Pick`, but additionally can also accept an array of keys
|
|
||||||
*/
|
|
||||||
export type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Prisma__Pick<T, MaybeTupleToUnion<K>>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exclude all keys with underscores
|
|
||||||
*/
|
|
||||||
export type ExcludeUnderscoreKeys<T extends string> = T extends `_${string}` ? never : T
|
|
||||||
|
|
||||||
|
|
||||||
export type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType>
|
|
||||||
|
|
||||||
type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRef<Model, FieldType>
|
|
||||||
|
|
||||||
|
|
||||||
export const ModelName = {
|
|
||||||
User: 'User'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface TypeMapCb<GlobalOmitOptions = {}> extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record<string, any>> {
|
|
||||||
returns: TypeMap<this['params']['extArgs'], GlobalOmitOptions>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
|
|
||||||
globalOmitOptions: {
|
|
||||||
omit: GlobalOmitOptions
|
|
||||||
}
|
|
||||||
meta: {
|
|
||||||
modelProps: "user"
|
|
||||||
txIsolationLevel: TransactionIsolationLevel
|
|
||||||
}
|
|
||||||
model: {
|
|
||||||
User: {
|
|
||||||
payload: Prisma.$UserPayload<ExtArgs>
|
|
||||||
fields: Prisma.UserFieldRefs
|
|
||||||
operations: {
|
|
||||||
findUnique: {
|
|
||||||
args: Prisma.UserFindUniqueArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
|
|
||||||
}
|
|
||||||
findUniqueOrThrow: {
|
|
||||||
args: Prisma.UserFindUniqueOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
findFirst: {
|
|
||||||
args: Prisma.UserFindFirstArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
|
|
||||||
}
|
|
||||||
findFirstOrThrow: {
|
|
||||||
args: Prisma.UserFindFirstOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
findMany: {
|
|
||||||
args: Prisma.UserFindManyArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
|
|
||||||
}
|
|
||||||
create: {
|
|
||||||
args: Prisma.UserCreateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
createMany: {
|
|
||||||
args: Prisma.UserCreateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
createManyAndReturn: {
|
|
||||||
args: Prisma.UserCreateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
|
|
||||||
}
|
|
||||||
delete: {
|
|
||||||
args: Prisma.UserDeleteArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
update: {
|
|
||||||
args: Prisma.UserUpdateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
deleteMany: {
|
|
||||||
args: Prisma.UserDeleteManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateMany: {
|
|
||||||
args: Prisma.UserUpdateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateManyAndReturn: {
|
|
||||||
args: Prisma.UserUpdateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
|
|
||||||
}
|
|
||||||
upsert: {
|
|
||||||
args: Prisma.UserUpsertArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
|
|
||||||
}
|
|
||||||
aggregate: {
|
|
||||||
args: Prisma.UserAggregateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.AggregateUser>
|
|
||||||
}
|
|
||||||
groupBy: {
|
|
||||||
args: Prisma.UserGroupByArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.UserGroupByOutputType>[]
|
|
||||||
}
|
|
||||||
count: {
|
|
||||||
args: Prisma.UserCountArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.UserCountAggregateOutputType> | number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} & {
|
|
||||||
other: {
|
|
||||||
payload: any
|
|
||||||
operations: {
|
|
||||||
$executeRaw: {
|
|
||||||
args: [query: TemplateStringsArray | Sql, ...values: any[]],
|
|
||||||
result: any
|
|
||||||
}
|
|
||||||
$executeRawUnsafe: {
|
|
||||||
args: [query: string, ...values: any[]],
|
|
||||||
result: any
|
|
||||||
}
|
|
||||||
$queryRaw: {
|
|
||||||
args: [query: TemplateStringsArray | Sql, ...values: any[]],
|
|
||||||
result: any
|
|
||||||
}
|
|
||||||
$queryRawUnsafe: {
|
|
||||||
args: [query: string, ...values: any[]],
|
|
||||||
result: any
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enums
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const TransactionIsolationLevel = runtime.makeStrictEnum({
|
|
||||||
Serializable: 'Serializable'
|
|
||||||
} as const)
|
|
||||||
|
|
||||||
export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]
|
|
||||||
|
|
||||||
|
|
||||||
export const UserScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
name: 'name',
|
|
||||||
phone: 'phone',
|
|
||||||
service: 'service',
|
|
||||||
comment: 'comment',
|
|
||||||
route: 'route',
|
|
||||||
createdAt: 'createdAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const SortOrder = {
|
|
||||||
asc: 'asc',
|
|
||||||
desc: 'desc'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
|
|
||||||
|
|
||||||
|
|
||||||
export const NullsOrder = {
|
|
||||||
first: 'first',
|
|
||||||
last: 'last'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Field references
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Int'
|
|
||||||
*/
|
|
||||||
export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'String'
|
|
||||||
*/
|
|
||||||
export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'DateTime'
|
|
||||||
*/
|
|
||||||
export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Float'
|
|
||||||
*/
|
|
||||||
export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Batch Payload for updateMany & deleteMany & createMany
|
|
||||||
*/
|
|
||||||
export type BatchPayload = {
|
|
||||||
count: number
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defineExtension = runtime.Extensions.defineExtension as unknown as runtime.Types.Extensions.ExtendsHook<"define", TypeMapCb, runtime.Types.Extensions.DefaultArgs>
|
|
||||||
export type DefaultPrismaClient = PrismaClient
|
|
||||||
export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
|
|
||||||
export type PrismaClientOptions = ({
|
|
||||||
/**
|
|
||||||
* Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-pg`.
|
|
||||||
*/
|
|
||||||
adapter: runtime.SqlDriverAdapterFactory
|
|
||||||
accelerateUrl?: never
|
|
||||||
} | {
|
|
||||||
/**
|
|
||||||
* Prisma Accelerate URL allowing the client to connect through Accelerate instead of a direct database.
|
|
||||||
*/
|
|
||||||
accelerateUrl: string
|
|
||||||
adapter?: never
|
|
||||||
}) & {
|
|
||||||
/**
|
|
||||||
* @default "colorless"
|
|
||||||
*/
|
|
||||||
errorFormat?: ErrorFormat
|
|
||||||
/**
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* // Shorthand for `emit: 'stdout'`
|
|
||||||
* log: ['query', 'info', 'warn', 'error']
|
|
||||||
*
|
|
||||||
* // Emit as events only
|
|
||||||
* log: [
|
|
||||||
* { emit: 'event', level: 'query' },
|
|
||||||
* { emit: 'event', level: 'info' },
|
|
||||||
* { emit: 'event', level: 'warn' }
|
|
||||||
* { emit: 'event', level: 'error' }
|
|
||||||
* ]
|
|
||||||
*
|
|
||||||
* / Emit as events and log to stdout
|
|
||||||
* og: [
|
|
||||||
* { emit: 'stdout', level: 'query' },
|
|
||||||
* { emit: 'stdout', level: 'info' },
|
|
||||||
* { emit: 'stdout', level: 'warn' }
|
|
||||||
* { emit: 'stdout', level: 'error' }
|
|
||||||
*
|
|
||||||
* ```
|
|
||||||
* Read more in our [docs](https://pris.ly/d/logging).
|
|
||||||
*/
|
|
||||||
log?: (LogLevel | LogDefinition)[]
|
|
||||||
/**
|
|
||||||
* The default values for transactionOptions
|
|
||||||
* maxWait ?= 2000
|
|
||||||
* timeout ?= 5000
|
|
||||||
*/
|
|
||||||
transactionOptions?: {
|
|
||||||
maxWait?: number
|
|
||||||
timeout?: number
|
|
||||||
isolationLevel?: TransactionIsolationLevel
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Global configuration for omitting model fields by default.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const prisma = new PrismaClient({
|
|
||||||
* omit: {
|
|
||||||
* user: {
|
|
||||||
* password: true
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
* })
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
omit?: GlobalOmitConfig
|
|
||||||
/**
|
|
||||||
* SQL commenter plugins that add metadata to SQL queries as comments.
|
|
||||||
* Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* const prisma = new PrismaClient({
|
|
||||||
* adapter,
|
|
||||||
* comments: [
|
|
||||||
* traceContext(),
|
|
||||||
* queryInsights(),
|
|
||||||
* ],
|
|
||||||
* })
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
comments?: runtime.SqlCommenterPlugin[]
|
|
||||||
}
|
|
||||||
export type GlobalOmitConfig = {
|
|
||||||
user?: Prisma.UserOmit
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Types for Logging */
|
|
||||||
export type LogLevel = 'info' | 'query' | 'warn' | 'error'
|
|
||||||
export type LogDefinition = {
|
|
||||||
level: LogLevel
|
|
||||||
emit: 'stdout' | 'event'
|
|
||||||
}
|
|
||||||
|
|
||||||
export type CheckIsLogLevel<T> = T extends LogLevel ? T : never;
|
|
||||||
|
|
||||||
export type GetLogType<T> = CheckIsLogLevel<
|
|
||||||
T extends LogDefinition ? T['level'] : T
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type GetEvents<T extends any[]> = T extends Array<LogLevel | LogDefinition>
|
|
||||||
? GetLogType<T[number]>
|
|
||||||
: never;
|
|
||||||
|
|
||||||
export type QueryEvent = {
|
|
||||||
timestamp: Date
|
|
||||||
query: string
|
|
||||||
params: string
|
|
||||||
duration: number
|
|
||||||
target: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type LogEvent = {
|
|
||||||
timestamp: Date
|
|
||||||
message: string
|
|
||||||
target: string
|
|
||||||
}
|
|
||||||
/* End Types for Logging */
|
|
||||||
|
|
||||||
|
|
||||||
export type PrismaAction =
|
|
||||||
| 'findUnique'
|
|
||||||
| 'findUniqueOrThrow'
|
|
||||||
| 'findMany'
|
|
||||||
| 'findFirst'
|
|
||||||
| 'findFirstOrThrow'
|
|
||||||
| 'create'
|
|
||||||
| 'createMany'
|
|
||||||
| 'createManyAndReturn'
|
|
||||||
| 'update'
|
|
||||||
| 'updateMany'
|
|
||||||
| 'updateManyAndReturn'
|
|
||||||
| 'upsert'
|
|
||||||
| 'delete'
|
|
||||||
| 'deleteMany'
|
|
||||||
| 'executeRaw'
|
|
||||||
| 'queryRaw'
|
|
||||||
| 'aggregate'
|
|
||||||
| 'count'
|
|
||||||
| 'runCommandRaw'
|
|
||||||
| 'findRaw'
|
|
||||||
| 'groupBy'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* `PrismaClient` proxy available in interactive transactions.
|
|
||||||
*/
|
|
||||||
export type TransactionClient = Omit<DefaultPrismaClient, runtime.ITXClientDenyList>
|
|
||||||
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* WARNING: This is an internal file that is subject to change!
|
|
||||||
*
|
|
||||||
* 🛑 Under no circumstances should you import this file directly! 🛑
|
|
||||||
*
|
|
||||||
* All exports from this file are wrapped under a `Prisma` namespace object in the browser.ts file.
|
|
||||||
* While this enables partial backward compatibility, it is not part of the stable public API.
|
|
||||||
*
|
|
||||||
* If you are looking for your Models, Enums, and Input Types, please import them from the respective
|
|
||||||
* model files in the `model` directory!
|
|
||||||
*/
|
|
||||||
|
|
||||||
import * as runtime from "@prisma/client/runtime/index-browser"
|
|
||||||
|
|
||||||
export type * from '../models'
|
|
||||||
export type * from './prismaNamespace'
|
|
||||||
|
|
||||||
export const Decimal = runtime.Decimal
|
|
||||||
|
|
||||||
|
|
||||||
export const NullTypes = {
|
|
||||||
DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
|
|
||||||
JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
|
|
||||||
AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that have `null` on the database (empty on the db)
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const DbNull = runtime.DbNull
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const JsonNull = runtime.JsonNull
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
|
|
||||||
*
|
|
||||||
* @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
|
|
||||||
*/
|
|
||||||
export const AnyNull = runtime.AnyNull
|
|
||||||
|
|
||||||
|
|
||||||
export const ModelName = {
|
|
||||||
User: 'User'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Enums
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const TransactionIsolationLevel = {
|
|
||||||
Serializable: 'Serializable'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]
|
|
||||||
|
|
||||||
|
|
||||||
export const UserScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
name: 'name',
|
|
||||||
phone: 'phone',
|
|
||||||
service: 'service',
|
|
||||||
comment: 'comment',
|
|
||||||
route: 'route',
|
|
||||||
createdAt: 'createdAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const SortOrder = {
|
|
||||||
asc: 'asc',
|
|
||||||
desc: 'desc'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]
|
|
||||||
|
|
||||||
|
|
||||||
export const NullsOrder = {
|
|
||||||
first: 'first',
|
|
||||||
last: 'last'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
|
|
||||||
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
|
|
||||||
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
|
|
||||||
/* eslint-disable */
|
|
||||||
// biome-ignore-all lint: generated file
|
|
||||||
// @ts-nocheck
|
|
||||||
/*
|
|
||||||
* This is a barrel export file for all models and their related types.
|
|
||||||
*
|
|
||||||
* 🟢 You can import this file directly.
|
|
||||||
*/
|
|
||||||
export type * from './models/User'
|
|
||||||
export type * from './commonInputTypes'
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
-- CreateTable
|
|
||||||
CREATE TABLE "User" (
|
|
||||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
"name" TEXT NOT NULL,
|
|
||||||
"phone" TEXT NOT NULL,
|
|
||||||
"service" TEXT,
|
|
||||||
"comment" TEXT,
|
|
||||||
"route" TEXT,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
||||||
);
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Please do not edit this file manually
|
|
||||||
# It should be added in your version-control system (e.g., Git)
|
|
||||||
provider = "sqlite"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
// This is your Prisma schema file,
|
|
||||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
||||||
|
|
||||||
generator client {
|
|
||||||
provider = "prisma-client"
|
|
||||||
output = "./generated"
|
|
||||||
}
|
|
||||||
|
|
||||||
datasource db {
|
|
||||||
provider = "sqlite"
|
|
||||||
}
|
|
||||||
|
|
||||||
model User {
|
|
||||||
id Int @id @default(autoincrement())
|
|
||||||
name String
|
|
||||||
phone String
|
|
||||||
service String?
|
|
||||||
comment String?
|
|
||||||
route String?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
}
|
|
||||||
BIN
public/bbbenz_1.jpeg
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
public/bbbenz_2.jpeg
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
public/bbbenz_3.jpeg
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
public/bbbenz_4.jpeg
Normal file
|
After Width: | Height: | Size: 177 KiB |
BIN
public/bbbenz_5.jpeg
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
public/bbbenz_6.jpeg
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
public/bbbenz_7.jpeg
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
public/bbbenz_8.jpeg
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
public/bmb6_1.jpeg
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
public/bmb6_10.jpeg
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
public/bmb6_11.jpeg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
public/bmb6_12.jpeg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
public/bmb6_13.jpeg
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
public/bmb6_2.jpeg
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
public/bmb6_3.jpeg
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
public/bmb6_4.jpeg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
public/bmb6_5.jpeg
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
public/bmb6_6.jpeg
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
public/bmb6_7.jpeg
Normal file
|
After Width: | Height: | Size: 156 KiB |
BIN
public/bmb6_8.jpeg
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
public/bmb6_9.jpeg
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
public/bmv888_1.jpeg
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
public/bmv888_10.jpeg
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
public/bmv888_11.jpeg
Normal file
|
After Width: | Height: | Size: 216 KiB |
BIN
public/bmv888_2.jpeg
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
public/bmv888_3.jpeg
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
public/bmv888_4.jpeg
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
public/bmv888_5.jpeg
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/bmv888_6.jpeg
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
public/bmv888_7.jpeg
Normal file
|
After Width: | Height: | Size: 177 KiB |
BIN
public/bmv888_8.jpeg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/bmv888_9.jpeg
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
public/bshbsh_1.avif
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/bshbsh_2.avif
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
public/bshbsh_3.avif
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
public/bshbsh_4.avif
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
public/bshbsh_5.avif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/bshbsh_6.avif
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/changan.jpg
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
public/clscscs_1.jpeg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
public/clscscs_2.jpeg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
public/clscscs_3.jpeg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
public/clscscs_4.jpeg
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
public/clscscs_5.jpeg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
public/clscscs_6.jpeg
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
public/clscscs_7.jpeg
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
public/clscscs_8.jpeg
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
public/clscscs_9.jpeg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
public/condonium_1.avif
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/condonium_10.avif
Normal file
|
After Width: | Height: | Size: 323 KiB |
BIN
public/condonium_11.avif
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
public/condonium_12.avif
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
public/condonium_2.avif
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
public/condonium_3.avif
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
public/condonium_4.avif
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/condonium_5.avif
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/condonium_6.avif
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/condonium_7.avif
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
public/condonium_8.avif
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
public/condonium_9.avif
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/isanova_1.avif
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
public/isanova_10.avif
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/isanova_11.avif
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
public/isanova_12.avif
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/isanova_13.avif
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/isanova_14.avif
Normal file
|
After Width: | Height: | Size: 37 KiB |