import { AppDataSource } from '../src/server/data-source.js'; import { ActivityEntity, ActivityType } from '../src/server/modules/activities/activity.entity.js'; import { RouteEntity } from '../src/server/modules/routes/route.entity.js'; import { VehicleType } from '../src/server/modules/routes/route.schema.js'; async function seed() { console.log('开始创建种子数据...'); try { // 初始化数据库连接 await AppDataSource.initialize(); console.log('数据库连接已建立'); // 获取Repository const activityRepository = AppDataSource.getRepository(ActivityEntity); const routeRepository = AppDataSource.getRepository(RouteEntity); // 清空现有数据 await routeRepository.createQueryBuilder().delete().execute(); await activityRepository.createQueryBuilder().delete().execute(); console.log('已清空现有数据'); // 创建示例活动数据 const activities = [ { name: '国庆节去程活动', description: '国庆节期间的去程出行活动', type: ActivityType.DEPARTURE, startDate: new Date('2025-10-01T00:00:00Z'), endDate: new Date('2025-10-07T23:59:59Z'), }, { name: '国庆节返程活动', description: '国庆节期间的返程出行活动', type: ActivityType.RETURN, startDate: new Date('2025-10-05T00:00:00Z'), endDate: new Date('2025-10-10T23:59:59Z'), }, { name: '元旦去程活动', description: '元旦期间的去程出行活动', type: ActivityType.DEPARTURE, startDate: new Date('2026-01-01T00:00:00Z'), endDate: new Date('2026-01-03T23:59:59Z'), }, { name: '元旦返程活动', description: '元旦期间的返程出行活动', type: ActivityType.RETURN, startDate: new Date('2026-01-02T00:00:00Z'), endDate: new Date('2026-01-04T23:59:59Z'), }, { name: '春节去程活动', description: '春节期间的去程出行活动', type: ActivityType.DEPARTURE, startDate: new Date('2026-02-10T00:00:00Z'), endDate: new Date('2026-02-16T23:59:59Z'), }, { name: '春节返程活动', description: '春节期间的返程出行活动', type: ActivityType.RETURN, startDate: new Date('2026-02-14T00:00:00Z'), endDate: new Date('2026-02-20T23:59:59Z'), }, ]; // 保存活动数据 const savedActivities = await activityRepository.save(activities); console.log(`已创建 ${savedActivities.length} 个活动`); // 创建示例路线数据 const routes = [ // 国庆节去程路线 { name: '北京-上海高铁', description: '北京到上海的高铁专线', startPoint: '北京', endPoint: '上海', pickupPoint: '北京南站', dropoffPoint: '上海虹桥站', departureTime: new Date('2025-10-01T08:00:00Z'), vehicleType: VehicleType.BUS, price: 553.5, seatCount: 500, availableSeats: 450, activityId: savedActivities[0].id, }, { name: '北京-广州飞机', description: '北京到广州的航班', startPoint: '北京', endPoint: '广州', pickupPoint: '北京首都机场', dropoffPoint: '广州白云机场', departureTime: new Date('2025-10-01T10:30:00Z'), vehicleType: VehicleType.MINIBUS, price: 1200, seatCount: 200, availableSeats: 180, activityId: savedActivities[0].id, }, { name: '北京-深圳动车', description: '北京到深圳的动车专线', startPoint: '北京', endPoint: '深圳', pickupPoint: '北京西站', dropoffPoint: '深圳北站', departureTime: new Date('2025-10-01T09:15:00Z'), vehicleType: VehicleType.CAR, price: 756, seatCount: 600, availableSeats: 550, activityId: savedActivities[0].id, }, // 国庆节返程路线 { name: '上海-北京高铁', description: '上海到北京的高铁专线', startPoint: '上海', endPoint: '北京', pickupPoint: '上海虹桥站', dropoffPoint: '北京南站', departureTime: new Date('2025-10-07T14:00:00Z'), vehicleType: VehicleType.BUS, price: 553.5, seatCount: 500, availableSeats: 400, activityId: savedActivities[1].id, }, { name: '广州-北京飞机', description: '广州到北京的航班', startPoint: '广州', endPoint: '北京', pickupPoint: '广州白云机场', dropoffPoint: '北京首都机场', departureTime: new Date('2025-10-07T16:30:00Z'), vehicleType: VehicleType.MINIBUS, price: 1100, seatCount: 200, availableSeats: 150, activityId: savedActivities[1].id, }, // 元旦去程路线 { name: '北京-天津城际', description: '北京到天津的城际列车', startPoint: '北京', endPoint: '天津', pickupPoint: '北京南站', dropoffPoint: '天津站', departureTime: new Date('2026-01-01T09:00:00Z'), vehicleType: VehicleType.CAR, price: 54.5, seatCount: 600, availableSeats: 500, activityId: savedActivities[2].id, }, // 元旦返程路线 { name: '天津-北京城际', description: '天津到北京的城际列车', startPoint: '天津', endPoint: '北京', pickupPoint: '天津站', dropoffPoint: '北京南站', departureTime: new Date('2026-01-03T18:00:00Z'), vehicleType: VehicleType.CAR, price: 54.5, seatCount: 600, availableSeats: 450, activityId: savedActivities[3].id, }, // 春节去程路线 { name: '北京-哈尔滨高铁', description: '北京到哈尔滨的高铁专线', startPoint: '北京', endPoint: '哈尔滨', pickupPoint: '北京朝阳站', dropoffPoint: '哈尔滨西站', departureTime: new Date('2026-02-10T07:30:00Z'), vehicleType: VehicleType.BUS, price: 623.5, seatCount: 500, availableSeats: 480, activityId: savedActivities[4].id, }, // 春节返程路线 { name: '哈尔滨-北京高铁', description: '哈尔滨到北京的高铁专线', startPoint: '哈尔滨', endPoint: '北京', pickupPoint: '哈尔滨西站', dropoffPoint: '北京朝阳站', departureTime: new Date('2026-02-17T15:00:00Z'), vehicleType: VehicleType.BUS, price: 623.5, seatCount: 500, availableSeats: 420, activityId: savedActivities[5].id, }, ]; // 保存路线数据 const savedRoutes = await routeRepository.save(routes); console.log(`已创建 ${savedRoutes.length} 条路线`); console.log('种子数据创建完成!'); console.log(`总计: ${savedActivities.length} 个活动, ${savedRoutes.length} 条路线`); } catch (error) { console.error('创建种子数据时出错:', error); throw error; } finally { // 关闭数据库连接 await AppDataSource.destroy(); console.log('数据库连接已关闭'); } } // 运行种子脚本 seed().catch(console.error);