This commit is contained in:
Samandar Turgunboyev
2025-11-11 15:07:55 +05:00
parent 3f043fe330
commit 8a4618b454
3 changed files with 164 additions and 205 deletions

View File

@@ -7,24 +7,20 @@ export const TourformSchema = z.object({
title_ru: z.string().min(2, {
message: "Sarlavha kamida 2 ta belgidan iborat bo'lishi kerak",
}),
hotel_info: z.string().min(2, {
message: "Sarlavha kamida 2 ta belgidan iborat bo'lishi kerak",
}),
hotel_info_ru: z.string(),
hotel_meals_info: z.string().min(2, {
message: "Sarlavha kamida 2 ta belgidan iborat bo'lishi kerak",
}),
hotel_meals_info_ru: z.string(),
hotel_info: z.string().optional(),
hotel_info_ru: z.string().optional(),
hotel_meals_info: z.string().optional(),
hotel_meals_info_ru: z.string().optional(),
price: z.number().min(1000, {
message: "Narx kamida 1000 UZS bo'lishi kerak.",
}),
passenger_count: z.number().min(1, {
passenger_count: z.string().min(1, {
message: "Kamida 1 yo'lovchi bo'lishi kerak.",
}),
min_person: z.number().min(1, {
min_person: z.string().min(1, {
message: "Kamida 1 yo'lovchi bo'lishi kerak.",
}),
max_person: z.number().min(1, {
max_person: z.string().min(1, {
message: "Kamida 1 yo'lovchi bo'lishi kerak.",
}),
departure: z.string().min(2, {
@@ -52,56 +48,12 @@ export const TourformSchema = z.object({
}),
departureDateTime: z.object({
date: z.date({ message: "Jo'nash vaqti majburiy" }),
time: z
.string()
.min(1, { message: "Jo'nash vaqti majburiy" })
.refine(
(val) => {
const parts = val.split(":");
if (parts.length !== 3) return false;
const [hour, minute, second] = parts.map(Number);
return (
!isNaN(hour) &&
!isNaN(minute) &&
!isNaN(second) &&
hour >= 0 &&
hour <= 23 &&
minute >= 0 &&
minute <= 59 &&
second >= 0 &&
second <= 59
);
},
{ message: "Yaroqli vaqt kiriting (masalan, 08:30:00)" },
),
}),
travelDateTime: z.object({
date: z.date({ message: "Jo'nash vaqti majburiy" }),
time: z
.string()
.min(1, { message: "Jo'nash vaqti majburiy" })
.refine(
(val) => {
const parts = val.split(":");
if (parts.length !== 3) return false;
const [hour, minute, second] = parts.map(Number);
return (
!isNaN(hour) &&
!isNaN(minute) &&
!isNaN(second) &&
hour >= 0 &&
hour <= 23 &&
minute >= 0 &&
minute <= 59 &&
second >= 0 &&
second <= 59
);
},
{ message: "Yaroqli vaqt kiriting (masalan, 08:30:00)" },
),
}),
languages: z.string().min(1, { message: "Majburiy maydon" }),
duration: z.number().min(1, { message: "Kamida 1 kun bo'lishi kerak" }),
languages: z.string().optional(),
duration: z.string().min(1, { message: "Kamida 1 kun bo'lishi kerak" }),
badges: z.array(z.number()).optional(),
tarif: z
.array(
@@ -122,7 +74,7 @@ export const TourformSchema = z.object({
.min(0, { message: "Narx 0 dan kichik bo'lishi mumkin emas" }),
}),
)
.optional(),
.min(1, { message: "Majburiy maydon" }),
banner: z.any().nullable(),
images: z
.array(
@@ -158,7 +110,7 @@ export const TourformSchema = z.object({
desc_ru: z.string().min(1, "Majburiy maydon"),
}),
)
.min(1, { message: "Kamida bitta xizmat kiriting." }),
.optional(),
ticket_itinerary: z
.array(
@@ -184,7 +136,7 @@ export const TourformSchema = z.object({
),
}),
)
.min(1, { message: "Kamida bitta xizmat kiriting." }),
.optional(),
extra_service: z
.array(