Files
simple-admin/src/pages/tours/lib/useTourForm.ts
Samandar Turgunboyev 036a36ce90 first commit
2025-10-18 17:14:59 +05:00

91 lines
2.1 KiB
TypeScript

// src/models/tour.ts
// Ilovada foydalaniladigan barcha modellar
export type TicketAmenity = {
name: string;
icon_name: string; // Misol uchun: "wifi", "pool"
};
export type IncludedService = {
image: string;
title: string;
description: string;
};
export type HotelMeal = {
image: string;
name: string;
description: string;
};
export type HotelData = {
name: string; // Joylashadigan manzil nomi
rating: number; // Yulduz
meal_plan: string; // Ovqatlanish rejasi
// Bu malumotlar API orqali keladi deb faraz qilinadi
hotel_type_id: number;
hotel_amenity_ids: number[];
hotel_feature_ids: number[];
};
export type TourFormData = {
// Etap 1: Asosiy Tur Ma'lumotlari
title: string;
price: number;
departure: string;
destination: string;
departure_time: string;
travel_time: string;
passenger_count: number;
languages: string;
duration_days: number;
hotel_meals_option: string; // 'nonushta', 'yarmpansion'
tariff: string; // 'econom', 'business'
badge: string; // 'hot', 'new'
visa_required: boolean;
banner_image: File[];
transport: string; // 'airplane', 'bus'
// Qo'shimcha Modellar
tickets_images: string[]; // Bilet rasmlari URL massivi
tickets_amenities: TicketAmenity[];
tickets_included_services: IncludedService[];
tickets_hotel_meals: HotelMeal[];
// Etap 2: Mehmonxona Ma'lumotlari (yoki uni qismi)
hotel_info: string; // Asosiy matn
hotel_data: HotelData;
};
// Forma holatini boshqarish uchun boshlang'ich qiymat
export const initialTourData: TourFormData = {
title: "",
price: 0,
departure: "",
destination: "",
departure_time: "",
travel_time: "",
passenger_count: 1,
languages: "O'zbek, Rus",
duration_days: 1,
hotel_meals_option: "Nonushta",
tariff: "Econom",
badge: "New",
visa_required: false,
banner_image: [],
transport: "Samolyot",
tickets_images: [],
tickets_amenities: [{ name: "Wi-Fi", icon_name: "Wifi" }],
tickets_included_services: [],
tickets_hotel_meals: [],
hotel_info: "",
hotel_data: {
name: "",
rating: 5,
meal_plan: "Nonushta",
hotel_type_id: 1,
hotel_amenity_ids: [],
hotel_feature_ids: [],
},
};