/// seeds/doctors.js const dayjs = require('dayjs'); const generateDates = () => { const dates = []; for (let i = 1; i <= 7; i++) { dates.push(dayjs().add(i, 'day').format('YYYY-MM-DD')); } return dates; }; const defaultDates = generateDates(); const doctors = [ { id: 'doc-001', name: '张明远', title: '主任医师', department_id: 'd-001', department_name: '内科', avatar: 'https://picsum.photos/id/64/200/200', specialty: '心血管疾病、高血压、冠心病的诊治', intro: '从事心血管内科临床工作 30 余年。', fee: 50, rating: 4.9, available_dates: defaultDates }, { id: 'doc-002', name: '李慧珍', title: '副主任医师', department_id: 'd-001', department_name: '内科', avatar: 'https://picsum.photos/id/91/200/200', specialty: '糖尿病、甲状腺疾病', intro: '内分泌科专家。', fee: 30, rating: 4.8, available_dates: defaultDates }, { id: 'doc-003', name: '王建国', title: '主任医师', department_id: 'd-002', department_name: '外科', avatar: 'https://picsum.photos/id/177/200/200', specialty: '肝胆外科、胃肠道肿瘤', intro: '30 年普外科经验。', fee: 50, rating: 4.9, available_dates: defaultDates }, { id: 'doc-004', name: '陈思雨', title: '主治医师', department_id: 'd-003', department_name: '儿科', avatar: 'https://picsum.photos/id/338/200/200', specialty: '新生儿疾病、儿童呼吸道感染', intro: '温柔耐心。', fee: 20, rating: 4.9, available_dates: defaultDates }, { id: 'doc-005', name: '刘亚楠', title: '副主任医师', department_id: 'd-004', department_name: '妇产科', avatar: 'https://picsum.photos/id/1027/200/200', specialty: '高危妊娠、妇科肿瘤', intro: '妇产科临床工作 20 年。', fee: 30, rating: 4.8, available_dates: defaultDates }, { id: 'doc-006', name: '赵明亮', title: '主任医师', department_id: 'd-005', department_name: '眼科', avatar: 'https://picsum.photos/id/1025/200/200', specialty: '白内障、青光眼手术', intro: '完成白内障手术 2 万余例。', fee: 50, rating: 4.9, available_dates: defaultDates }, { id: 'doc-007', name: '孙婉清', title: '副主任医师', department_id: 'd-007', department_name: '皮肤科', avatar: 'https://picsum.photos/id/659/200/200', specialty: '痤疮、湿疹、激光美容', intro: '皮肤激光美容专家。', fee: 30, rating: 4.7, available_dates: defaultDates }, { id: 'doc-008', name: '周文博', title: '主治医师', department_id: 'd-008', department_name: '口腔科', avatar: 'https://picsum.photos/id/718/200/200', specialty: '牙体牙髓病、牙齿修复', intro: '口腔综合诊疗。', fee: 20, rating: 4.8, available_dates: defaultDates }, { id: 'doc-009', name: '吴秀英', title: '主任医师', department_id: 'd-009', department_name: '中医科', avatar: 'https://picsum.photos/id/237/200/200', specialty: '中医调理、针灸推拿', intro: '中医世家,40 年经验。', fee: 50, rating: 4.9, available_dates: defaultDates }, { id: 'doc-010', name: '郑凯', title: '副主任医师', department_id: 'd-010', department_name: '心理科', avatar: 'https://picsum.photos/id/783/200/200', specialty: '焦虑症、抑郁症、失眠', intro: '心理咨询与治疗专家。', fee: 30, rating: 4.8, available_dates: defaultDates } ]; const seedDoctors = async (pool) => { const conn = await pool.getConnection(); try { const [rows] = await conn.query('SELECT COUNT(*) AS c FROM doctors'); if (rows[0].c > 0) { console.log('[Seed] doctors: skipped (already has data)'); return; } for (const d of doctors) { await conn.query( `INSERT INTO doctors (id, name, title, department_id, department_name, avatar, specialty, intro, fee, rating, available_dates, enabled) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)`, [d.id, d.name, d.title, d.department_id, d.department_name, d.avatar, d.specialty, d.intro, d.fee, d.rating, JSON.stringify(d.available_dates)] ); } console.log(`[Seed] doctors: inserted ${doctors.length}`); } finally { conn.release(); } }; module.exports = { seedDoctors };