| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import { RouteEntity } from '@d8d/server/modules/routes/route.entity';
- import { ActivityEntity } from '@d8d/server/modules/activities/activity.entity';
- import { LocationResponse } from './location.types';
- import { VehicleType, TravelMode } from '@d8d/server/modules/routes/route.schema';
- // 路线类型定义
- export type Route = RouteEntity;
- // 路线创建请求
- export interface CreateRouteRequest {
- name: string;
- description?: string | null;
- startLocationId: number;
- endLocationId: number;
- pickupPoint: string;
- dropoffPoint: string;
- departureTime: Date;
- vehicleType: string;
- travelMode: string;
- price: number;
- seatCount: number;
- availableSeats: number;
- activityId: number;
- }
- // 路线更新请求
- export interface UpdateRouteRequest {
- name?: string;
- description?: string | null;
- startLocationId?: number;
- endLocationId?: number;
- pickupPoint?: string;
- dropoffPoint?: string;
- departureTime?: Date;
- vehicleType?: string;
- travelMode?: string;
- price?: number;
- seatCount?: number;
- availableSeats?: number;
- activityId?: number;
- isDisabled?: number;
- }
- // 路线响应
- export interface RouteResponse {
- id: number;
- name: string;
- description: string | null;
- startLocationId: number;
- endLocationId: number;
- startLocation: LocationResponse;
- endLocation: LocationResponse;
- pickupPoint: string;
- dropoffPoint: string;
- departureTime: Date;
- vehicleType: string;
- travelMode: string;
- price: number;
- seatCount: number;
- availableSeats: number;
- activityId: number;
- activity?: ActivityEntity;
- routeType: 'departure' | 'return';
- isDisabled: number;
- isDeleted: number;
- createdAt: Date;
- updatedAt: Date;
- }
- // 路线列表响应
- export interface RouteListResponse {
- items: RouteResponse[];
- total: number;
- page: number;
- pageSize: number;
- }
- // 路线搜索参数
- export interface RouteSearchParams {
- keyword?: string;
- vehicleType?: string;
- travelMode?: string;
- routeType?: 'departure' | 'return';
- minPrice?: number;
- maxPrice?: number;
- activityId?: number;
- isDisabled?: number;
- page?: number;
- pageSize?: number;
- sortBy?: string;
- sortOrder?: 'ASC' | 'DESC';
- }
- // 车辆型号枚举到中文的映射
- export const vehicleTypeMap = {
- 'bus': '大巴',
- 'minibus': '中巴',
- 'car': '小车',
- 'business': '商务车'
- } as const;
- // 获取车辆型号的中文显示
- export const getVehicleTypeText = (vehicleType: string) => {
- return vehicleTypeMap[vehicleType as keyof typeof vehicleTypeMap] || vehicleType || '未知车型';
- };
- // 出行方式枚举到中文的映射
- export const travelModeMap = {
- 'carpool': '拼车',
- 'charter': '包车'
- } as const;
- // 获取出行方式的中文显示
- export const getTravelModeText = (travelMode: string) => {
- return travelModeMap[travelMode as keyof typeof travelModeMap] || travelMode || '未知出行方式';
- };
|