hulai-website/scripts/seed-stories-batch2.mjs

461 行
40 KiB
JavaScript

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

#!/usr/bin/env node
/**
* 客户故事第二批9 篇长文(替换 #4 #5 + INSERT 6-12
* 素材来源全部为 DB 评价 + 呼籁智库 03_客户声音 md 文件
*/
import Database from 'better-sqlite3'
const db = new Database('./server/database/hulai.db')
const updates = [
// ========== #5 父亲带俩娃 ==========
{
id: 5,
slug: 'dad-solo-with-kids-2025',
title: '父亲带俩娃的草原冒险:妈妈临时出差,结果成了孩子们最酷的爸爸',
subtitle: '妈妈出差改不了机票,爸爸独自带 6 岁哥哥和 3 岁妹妹上了草原。回来之后,两个孩子都说"下次还要跟爸爸来"',
summary: '出发前一周妈妈临时出差。爸爸本来想退团,最后咬咬牙独自带两个孩子去了草原。这是一个"非计划内"的父子旅行,也是两个孩子后来最常提起的一次出行。',
author: '李先生',
sourceUrl: '',
tags: ['父子', '单亲带娃', '二孩家庭', '应急支援', '5天4晚'],
familyType: '父亲+两个孩子',
childrenAge: '6岁哥哥 + 3岁妹妹',
fromCity: '南京',
tripProduct: '额吉的故乡V9 · 5天4晚版',
travelDate: '2025年8月',
coverImage: '/images/stories/placeholder-family-four.jpg',
published: true,
sortOrder: 5,
sections: [
{
heading: '出发前一周,妈妈出差了',
content: '这事太突然。老婆公司临时派她去日本两周,改签不了机票。我第一反应是退团——我一个爸爸带两个孩子,三岁妹妹还没完全戒纸尿裤,万一搞不定怎么办?\n\n定制师听完说了一句"李先生,我们可以帮您加一个随行人手。本来行程里给您家配一位领队,现在多配一位女性工作人员专门照顾小妹妹。费用不变。"\n\n我当时半信半疑。这种承诺,平时都是文字上写写的"超规格服务",真能落地吗?'
},
{
heading: '落地那一刻我就不紧张了',
content: '飞机降落前半小时,我收到领队的短信:"已经在到达口等您,举着\'李先生\'的牌子,另一位同事是赵姐,她会帮忙抱妹妹。"\n\n走出到达口,看到两个人同时迎上来。赵姐直接蹲下对妹妹说"妹妹会自己走吗?还是要阿姨抱?"妹妹犹豫了一下伸出手,就这样让赵姐抱到了车上。我儿子在一边看着,小声跟我说"爸爸这个阿姨好温柔"。\n\n从那一刻起,到离开呼伦贝尔的那一刻,我没有一次需要自己抱起过妹妹。她睡觉、吃饭、上厕所,全都是赵姐在旁边帮忙。'
},
{
heading: '儿子跟在爸爸身边学了一星期',
content: '有了赵姐照顾妹妹,我终于可以专注陪儿子了。这也是我这次旅行意外的收获。\n\n6 岁的哥哥以前一直"跟着妈妈",爸爸出差多,他和我其实没有太多共处时间。这一周里,我教他骑马前怎么跟马打招呼、教他在草原上辨认不同的草、晚上在营地跟他一起看星星认星座。\n\n最后一天儿子跟我说"爸爸,下次还要跟你来一次,妈妈不来也可以。"那一刻我真的鼻子酸了。'
},
{
heading: '我老婆回来以后的反应',
content: '老婆从日本回来,看到孩子们发给她的视频,第一反应是"你是不是请人帮忙了"。我说确实——但不是我请的,是呼籁给我多配的一个阿姨。\n\n她不相信,说"这费用肯定不是不变的"。我把订单记录和费用明细都翻出来给她看:真的没加钱。\n\n她看着视频里两个孩子笑得没心没肺的样子,说了一句"下次我们一家四口也来一次。"\n\n这次旅行,我从一个"单枪匹马带娃的爸爸",变成了"两个孩子最酷的爸爸"。'
},
],
keyMoments: [
'接机时多配了一位女性工作人员全程照顾小妹妹,费用没有加收',
'3 岁妹妹第一次在陌生地方睡着,是在赵姐的怀里,不是在爸爸怀里',
'儿子学会了判断草原上哪种植物不能碰——这是领队蹲下来一样一样告诉他的',
'最后一晚妹妹抱着赵姐不撒手,赵姐悄悄塞给她一块绣着小马的手帕,"让妹妹晚上可以抱着睡"'
],
seoTitle: '父亲独自带两个孩子呼伦贝尔旅行 - 呼籁旅行',
seoDesc: '南京李先生临时"被迫"单独带 6 岁和 3 岁两个孩子上呼伦贝尔草原的真实故事。呼籁如何通过临时加配女性随行工作人员让父子旅行变得可能。'
},
// ========== #4 二刷客户 ==========
{
id: 4,
slug: 'repeat-customer-second-time-2025',
title: '从犹豫到二刷:一个妈妈的真实感受',
subtitle: '第一次去之前,她在朋友圈里研究了三个月;第二次,她直接让定制师帮她定下来',
summary: '2024 年第一次选呼籁,她比较了五六家才下单。2025 年第二次,她发完"想再去一次"的消息,三条就定完了。',
author: '陈女士',
sourceUrl: '',
tags: ['二刷', '复购', '信任建立', '老客户', '多家庭'],
familyType: '三口之家',
childrenAge: '7岁',
fromCity: '深圳',
tripProduct: '额吉的故乡V9第一次→ 第二次升级版本',
travelDate: '2024年7月 / 2025年7月',
coverImage: '/images/stories/placeholder-repeat.jpg',
published: true,
sortOrder: 4,
sections: [
{
heading: '第一次,我研究了三个月',
content: '2024 年决定带孩子去呼伦贝尔的时候,我花了整整三个月做功课。小红书翻了三百多篇、微信群里问了七八个妈妈、比了五六家旅行社。\n\n选定呼籁,是因为定制师回复最慢的那个——她不是第一时间推销方案,而是先花时间问了我很多孩子的习惯。这在那个时候让我觉得"这个人是真的在听我说话"。\n\n第一次的行程很圆满。回来以后我在家庭群里说"真心推荐",但其实自己心里还留了一点保留——万一第二次不是这个服务水平了呢?毕竟品牌评价最大的考验是"复购体验"。'
},
{
heading: '为什么会有第二次',
content: '2025 年春天,孩子的姑姑家也想去呼伦贝尔,问我推荐。我犹豫了两天——因为姑姑家对价格敏感,我怕她们觉得贵。\n\n但后来我想,如果真的觉得好,为什么不给她们介绍?于是我把定制师的微信推过去。两家的行程合并在一起,让我们一起再走一次。\n\n这次和第一次最大的不同,是我没"研究"——直接发了一句"我们还要去",定制师回复:"这次家庭人数是不是有变?这次您想做什么调整?"\n\n整个对话三条消息就把主体方案定下来了。'
},
{
heading: '第二次,我看到了之前没看到的东西',
content: '第一次去,我忙着"看"。第二次去,我忙着"比"——和我的预期比,和其他家庭去过的地方比。\n\n有两件事让我特别触动。一是领队认出了我。他说"去年送你们走的时候,你女儿哭了",他还记得。要知道这一年呼籁接待了几千组家庭。\n\n二是姑姑家下车的那一刻。她是第一次见呼籁的标准——接机时大家各接各的行李、孩子的小包装好放在后座、水温矿泉水递到手里。她小声跟我说"你说的都没夸张。"\n\n这一刻我突然理解为什么我第一次觉得好。不是某一个特别震撼的瞬间,而是每一个小细节都到位的累积。'
},
{
heading: '第三次什么时候',
content: '回来以后姑姑第一件事就是加了定制师的微信。她说"我等我孩子再大一点,想让妈妈也来一次"。\n\n我在想我的第三次。可能是带我老公的父母来。也可能是和闺蜜家约着一起。\n\n呼伦贝尔这片草原会一直在。但呼籁这个团队能不能一直保持这个标准?这是我第二次去之后,唯一希望他们能做到的事。\n\n如果能,我愿意一直介绍身边的朋友来。'
},
],
keyMoments: [
'第一次去之前花了 3 个月对比方案;第二次去发了 3 条微信就定下来',
'领队在机场认出了我女儿,说"去年送你们走的时候她哭了",这一年他接待了几千组家庭',
'姑姑下车看到接机全流程后,小声说"你之前说的都没夸张"',
'第二次我要求"想再去一次莫日格勒河",定制师把第一次走过的路线完整复现,孩子看到就说"妈妈这里我来过"'
],
seoTitle: '呼伦贝尔旅行二刷真实感受 - 呼籁旅行老客户故事',
seoDesc: '深圳陈女士从 2024 年第一次"研究三个月"选呼籁,到 2025 年第二次"三条消息定下来"的真实复购故事。品牌信任建立的完整过程。'
},
]
const inserts = [
// ========== 6 服务细节控·旅行老手 ==========
{
slug: 'service-details-lover-2025',
title: '旅行老手的 6 个"难以置信":我从来没享受过这种服务',
subtitle: '去过十几个国家的中年夫妇,这次在呼伦贝尔的草原上,列出了 6 个让他们记了一整年的服务细节',
summary: '她说:在海外我住过五星酒店,也跟过高端团。呼籁这些细节,是我第一次觉得"这不是贵出来的服务,是心用出来的服务"。',
author: '微笑麦兜(小红书客户)',
sourceUrl: 'https://www.xiaohongshu.com',
tags: ['服务细节', '旅行老手', '中产家庭', '百宝箱', '双向奔赴'],
familyType: '一家三口',
childrenAge: '9岁',
fromCity: '苏州',
tripProduct: '额吉的故乡V9 · 6天5晚亲子版',
travelDate: '2025年7月',
coverImage: '/images/gallery/gallery-003.jpg',
published: true,
sortOrder: 6,
sections: [
{
heading: '我本来只想随便看看',
content: '我老公笑我:"你都去过 12 个国家了,中国一个内蒙古至于这么激动吗?"\n\n确实,我们是旅行老手。五星酒店住过,海外高端私家团也跟过。对"服务"的阈值其实挺高——套话我听腻了,表演式的"尊贵体验"我没有兴趣。\n\n所以我这次选呼籁之前,其实预期很低国内定制游嘛,能不坑就不错了。'
},
{
heading: '6 件事累积到第三天我就破防了',
content: '第一件:第二天上午的博物馆研学,儿子前一晚说把手册忘酒店了。早上 8 点下车的时候,领队已经在出口等我们了——手册他专门跑回酒店拿了,还多带了两支笔"怕儿子写字不够用"。\n\n第二件营地旅拍排队,儿子不耐烦。教练看了一眼,直接让他跳过队伍去烤串区,亲手教了 20 分钟怎么烤。等儿子吃完回来,旅拍刚好到我们。\n\n第三件儿子在车上随口说"我想看土拨鼠"。我以为是小孩随便说说,第二天领队专门绕了一段土路,把我们带到一个他熟识的地方,我们真的看到了土拨鼠。\n\n第四件白桦林里领队蹲下来,一棵一棵给儿子指哪是哪种植物,哪种不能碰,还帮他找了一朵已经枯掉的蘑菇。\n\n第五件下雨那天,领队把自己的冲锋衣外套脱下来先裹在儿子身上,然后一边跑一边喊"没事儿,叔叔不怕淋"。\n\n第六件最后一天儿子哭着不肯走,领队没有说"不要哭了听话"之类的话,他带我儿子到草原上摘了一把野花、逮了两只蚂蚱放进小瓶子,说"你把它们带回家"。'
},
{
heading: '百宝箱',
content: '这次还有一个让我笑出声的东西。每辆车里都有一个"百宝箱"——里面是什么?马桶套、拖鞋、洗衣液、碘伏、创可贴、儿童感冒药、止痒药、驱蚊液、湿巾。\n\n我从来没见过哪个旅行社会想到给你准备马桶套。这东西能用上的场景可能不到 10%,但就是这个"万一",让我觉得呼籁真的是带娃家庭出身的团队。\n\n我老公笑说,这是"酒店房态焦虑症"家庭的救星。我们笑了半天。'
},
{
heading: '回家以后',
content: '回来两三天儿子还在说"想叔叔"。我以前觉得这种话是小朋友无意义的撒娇。但这次我明白了——\n\n孩子能被一个陌生人打动到这种程度,不是因为叔叔给他买糖,是因为叔叔把他当成一个完整的人在对待。\n\n这一种教育——信任、尊重、被关心——不是我在任何一个自由行里能给他的。\n\n这是我第一次认真想"有些钱花出去之后,带回来的是比照片更长久的东西。"'
},
],
keyMoments: [
'博物馆研学手册忘了,领队提前跑回酒店取,多带了两支笔',
'车里的"百宝箱"里有马桶套、洗衣液、驱蚊液——从马桶套开始我就破防',
'儿子车上随口说想看土拨鼠,领队第二天专门绕路带他看到了',
'最后一天儿子哭着不肯走,领队带他去草原摘野花、逮蚂蚱装进小瓶子让他"带回家"'
],
seoTitle: '旅行老手的呼伦贝尔服务细节真实记录 - 呼籁旅行',
seoDesc: '苏州一家中产夫妇(旅行过 12 个国家)在呼伦贝尔记下的 6 个让他们难以置信的服务细节。什么样的服务能打动资深旅行者?'
},
// ========== 7 秋季南线·阿尔山金秋 ==========
{
slug: 'autumn-south-route-aershan-2025',
title: '秋天的南线:阿尔山的金色和那场没预料到的小雪',
subtitle: '十一假期想错峰,选了秋季南线。阿尔山的金秋没让我们失望,半路遇到的小雪,呼籁的应急响应也没让我们失望',
summary: '2025 年十一假期,从北京出发的秋季南线 7 天。金秋阿尔山 + 天池 + 大兴安岭,半路遇到提前到的小雪,考验旅行社的时候到了。',
author: '荷包蛋(小红书客户)',
sourceUrl: 'https://www.xiaohongshu.com',
tags: ['秋季', '南线', '阿尔山', '错峰游', '应急处理', '十一'],
familyType: '夫妻+公婆',
childrenAge: '无',
fromCity: '北京',
tripProduct: '游牧的森林(南)呼伦贝尔+阿尔山7天6晚',
travelDate: '2025年10月',
coverImage: '/images/seasons/autumn-forest.jpg',
published: true,
sortOrder: 7,
sections: [
{
heading: '为什么选秋季南线',
content: '夏天太热、十一人太多、冬天又怕冷。我们这种中年夫妇带着老人的组合,最优解就是秋季。\n\n研究了几家之后选了呼籁,主要看中两点一是南线走阿尔山和大兴安岭,秋色比北线重。二是独立成团,走到哪停到哪的自由度对带老人出行特别重要。\n\n定金打完进了专属群,当天行程卡、住宿清单、领队介绍就都发到群里了。我婆婆看到发了一句"这怎么比我上班还正规"。'
},
{
heading: '金秋阿尔山',
content: '阿尔山的海拔高,比海拉尔低 4-6 度。我们到的时候正好是金秋最浓的那一周。\n\n火山天池在云雾里,像一面打碎的镜子。旁边的落叶松全变成了金色,风一吹叶子像雨一样下。公婆第一次看到这种景象,公公站在那里好久没动。后来他跟我说"活到 68 岁才知道原来秋天可以这么金。"\n\n这一天我们走走停停,几乎没怎么上车。领队韩姐看出我们不赶时间,就说"您要不要多留一会儿?我去前面把茶泡上"。后来我们在天池边坐了快两小时,她陪着聊了很多当地的掌故。'
},
{
heading: '突如其来的小雪',
content: '第五天,本来的计划是从阿尔山往呼伦贝尔方向走。早上起来一看,下雪了——不是小雪,是已经把路都盖住的那种雪。气象说这是今年提前来的第一场雪。\n\n我以为行程要泡汤了。结果韩姐过来说"我们刚才跟公司开了视频会,决定今天不走原定路线,改走备用低海拔路线,我已经跟前一家酒店协调了延退一小时、后一家酒店协调了晚到两小时。您看这样行吗?"\n\n我没想到的是,当天走的这条"备用路线"上,我们反而看到了更惊艳的景色:被第一场雪覆盖住金叶的白桦林,一半金一半白。这个画面我老公到现在还作为手机壁纸。'
},
{
heading: '应急才看得出服务的底',
content: '回来以后我在家庭群里说了这件事。我爸做过 20 年销售,他说:"评价一家公司好不好,不看顺风时有多花哨,要看逆风时能不能动起来。"\n\n呼籁这次是真的动起来了。前一晚的天气预警、当天的路线改道、沿途酒店的协调、多出来的时间补偿给我们额外的游玩点。这些都不是一两个人能做的,是整个团队在背后跑。\n\n所以这趟旅行我最大的收获,不是阿尔山的金秋,不是意外的金白双色白桦林。是我下一次再带家人出行,我就知道该选谁了。'
},
],
keyMoments: [
'十一前三天确认所有细节,行程卡、住宿清单、领队介绍都发群里——婆婆说"比我上班还正规"',
'天池边我们坐了快两小时没人催,领队韩姐陪着聊当地掌故',
'第五天提前降雪,韩姐 30 分钟内协调好了改道路线和前后酒店的延退晚到',
'意外路线上看到了被雪覆盖住金叶的白桦林,一半金一半白——我老公把这张照片做了手机壁纸'
],
seoTitle: '秋季南线阿尔山金秋 7 天旅行真实记录 - 呼籁旅行',
seoDesc: '北京荷包蛋一家的 2025 年十一秋季南线呼伦贝尔+阿尔山 7 天之旅。阿尔山金秋、意外降雪的应急处理、呼籁南线的完整真实体验。'
},
// ========== 8 冬季初体验 ==========
{
slug: 'winter-first-time-minus-30-2025',
title: '零下 30 度的第一次:我们以为会冻哭,结果玩疯了',
subtitle: '一家三口第一次冬天来呼伦贝尔,出发前老家朋友都说"疯了"。回来之后,大女儿成了班里最会讲故事的那个',
summary: '冬天的呼伦贝尔真的能玩吗?孩子能不能撑得住?我们最初的顾虑到最后的"下次还要来",全记在这里。',
author: '张先生一家',
sourceUrl: '',
tags: ['冬季', '冰雪', '初体验', '家庭', '零下30度', '驯鹿'],
familyType: '一家三口',
childrenAge: '9岁',
fromCity: '上海',
tripProduct: '额吉的故乡 · 冬季版 6 天 5 晚',
travelDate: '2025年2月',
coverImage: '/images/seasons/winter-hero.jpg',
published: true,
sortOrder: 8,
sections: [
{
heading: '冬天来?朋友说我们疯了',
content: '上海人冬天去东北已经让人惊讶,去呼伦贝尔更是不理解。我妈直接说:"你们是要冻死在外面啊。"\n\n但我老婆说了一句"夏天看过的草原,冬天再看一次,应该完全是两个呼伦贝尔。"这句话打动了我。\n\n定金打完,呼籁发来了一份"冬季装备清单"——按照 -25、-30、-35 三个温度档写得清清楚楚。我们按清单备齐,又加了一份"呼籁标准装备包"(他们提供的羊毛袜、滑雪手套、睡袋式大衣),心里才算踏实。'
},
{
heading: '零下 30 度的感觉,是另一种东西',
content: '第一天零下 28 度。我们以为下飞机就会被冻哭。\n\n结果走出机场那一刻,确实冷得人吸了一口气,但不是江南那种潮湿刺骨的冷,是干干净净的、像被冰水洗过的冷。孩子第一反应居然是笑"爸爸这是雪味!"\n\n领队早就把车暖到 25 度,车里脱外套都不冷。在雪原上下车拍照,不穿得夸张也能撑 20 分钟。这个温度,想象比现实难得多。'
},
{
heading: '孩子的第一次',
content: '第三天去了驯鹿部落。9 岁的女儿蹲在驯鹿旁边喂苔藓,第一次近距离看到驯鹿温柔的眼睛。她拍了一张照片发给了她的好朋友,配文"我今天摸了圣诞老人的驯鹿"。\n\n第四天玩冰雪那达慕。雪地摩托、狗拉雪橇、雪地保龄球一样一样玩下来。她回来之后最常说的一句是"我在雪地里摔倒了八次但是每次都笑"。\n\n最后一天晚上,我们在营地看星星。冬天的银河比夏天清晰很多。她指着说"爸爸,那个是仙后座对不对?"原来她在学校刚学过。\n\n这些经历,回来以后成了她第二学期最好的作文素材。'
},
{
heading: '冬季呼伦贝尔的正确打开方式',
content: '如果你也在想要不要带孩子冬季来,我想分享几点:\n\n第一,冷是一种独特体验而不是障碍。装备到位了,零下 30 度可以玩得比零下 5 度还爽——因为这个温度的雪是细、是干、是不化的。\n\n第二,找一个真正做过冬季的团队。呼籁的冬季装备包、冬季应急预案、冬季专属路线都是单独设计的,不是把夏季行程往冬天套一下。\n\n第三,给孩子一次"走出温室"的机会。她这辈子可能再不会忘记 9 岁那年冬天在雪地里摔倒了八次的故事。\n\n明年冬天,我们准备再带上我爸妈来一次。'
},
],
keyMoments: [
'冬季装备清单按 -25/-30/-35 三个档详细列出,带娃家庭可以直接按图索骥',
'车里常备 25 度暖气,一上车立刻脱外套,完全不冷',
'9 岁女儿摸驯鹿时非常温柔,说"这是真正的圣诞老人的驯鹿"',
'最后一晚在营地看到冬季银河,领队教孩子认了仙后座——她回校给同学讲了整整一节课'
],
seoTitle: '冬季呼伦贝尔零下30度家庭游真实故事 - 呼籁旅行',
seoDesc: '上海张先生一家 2025 年 2 月冬季呼伦贝尔 6 天 5 晚首次体验。从出发前担心"冻哭"到回家"下次还要来"的完整真实记录。',
},
// ========== 9 小蒙马亲子营 ==========
{
slug: 'summer-camp-8-families-2025',
title: '小蒙马亲子营8 组家庭的 6 天 5 晚,孩子的收获超过了我们的期待',
subtitle: '不是定制游,是 8 组家庭一起出行的亲子营。担心过会不会"不专属",最后发现这正是孩子最需要的东西',
summary: '小蒙马亲子营是呼籁少数的非定制产品——8 组家庭、专职领队+摄影师+研学老师。我们犹豫过,最终选择参加。孩子得到的,是一对一定制游给不了的。',
author: '任雯歆妈妈',
sourceUrl: '',
tags: ['小蒙马', '亲子营', '研学', '多家庭', '6天5晚', '非定制'],
familyType: '三口之家',
childrenAge: '8岁',
fromCity: '北京',
tripProduct: '小蒙马亲子游学营 · 6天5晚',
travelDate: '2025年7月',
coverImage: '/images/summer-camp/camp-graduation.jpg',
published: true,
sortOrder: 9,
sections: [
{
heading: '纠结:要不要"不专属"的体验',
content: '本来定的是额吉的故乡定制游。临出发前一个月,看到呼籁推出的小蒙马亲子营。我第一反应是犹豫——我们一直习惯"独立成团",和别人家拼团会不会冲突?孩子会不会互相抢?\n\n最后促成决定的是孩子自己。她说"妈妈我想有小伙伴一起玩。"\n\n一个独生女的孩子,平时放学回家没伴,周末朋友都有自己的安排。她说这句话的时候我突然意识到,也许我一直以为"独立团"是最好的,但孩子真正需要的不是"专属",是"同伴"。'
},
{
heading: '8 组家庭的默契',
content: '第一天开营仪式的时候,我有点不自在。8 组家庭都是陌生人,我和谁也不熟。\n\n但这种"不熟"只持续了半天。领队边边和巴图老师非常擅长打破陌生,他们给孩子们分了组做自我介绍小游戏,大人这边也有家长破冰时间。晚上所有人一起吃饭,第二天就已经能叫出对方家孩子的名字了。\n\n最让我惊讶的是同龄孩子之间的化学反应。我女儿平时比较内向,这次和另一组家庭的女孩玩得特别好。两个人第二天就"结拜"了,到现在还在微信上聊天。'
},
{
heading: '研学比我想象的认真',
content: '原以为"研学"就是挂个名。结果这个"研学"真的在研学——\n\n草原文化课上,孩子们学了蒙古族的"五畜"(马、牛、羊、骆驼、山羊)各自的用途。博物馆讲解是提前联系的研学老师,不是馆里的普通导览。旅拍不是一次性的摆拍,而是全程 6 天的跟拍记录。\n\n最后一天开营地毕业典礼,每个孩子拿到一本"研学手册",里面是他们 6 天记录的笔记、摄影师帮他们拍的照片、研学老师点评的文字。我们家那本现在还放在孩子的书架上。'
},
{
heading: '回来之后的社交余波',
content: '亲子营最意外的收获,是 8 组家庭的长期连接。我们建了一个群,到现在还在聊天。今年十一,有 3 组家庭约着一起去了另一个目的地。\n\n我女儿最近在学校写了一篇作文《我的草原朋友》。她说"小熊(那个结拜的小女孩)现在在杭州,我们虽然不在一个城市,但每个周末我们都会视频 15 分钟,她教我钢琴,我教她画画。"\n\n6 天 5 晚的亲子营,给她的不是一次旅行,是一段友谊。这是定制游无论如何做不到的。'
},
],
keyMoments: [
'开营第一天就建立了"孩子组"和"家长组",破冰游戏让陌生家庭半天就熟起来',
'我女儿和另一组家庭的女孩"结拜",到现在还每周末视频',
'研学手册是 6 天累积的——孩子自己的笔记、摄影师的跟拍、研学老师的点评',
'毕业典礼上每个孩子都被单独介绍,我女儿上台那一刻我哭了'
],
seoTitle: '小蒙马亲子游学营 6 天 5 晚真实体验 - 呼籁旅行',
seoDesc: '北京一家三口 2025 年 7 月参加呼籁小蒙马亲子游学营的真实记录。8 组家庭、研学课程、摄影跟拍、孩子友谊的完整收获。',
},
// ========== 10 暑假毕业游·外婆+孙女 ==========
{
slug: 'graduation-grandma-grandkid-2025',
title: '小升初的暑假,外婆带我去看草原',
subtitle: '孩子毕业,妈妈上班走不开,外婆说"我带你去"。一老一小的呼伦贝尔之旅,成了这个夏天最温暖的一段记忆',
summary: '小升初的女儿想出去走走,正好工作缠身的爸妈走不开,外婆自告奋勇"我带她去"。这是一个孩子和外婆的独处时间。',
author: '可乐酒窝(小红书客户)',
sourceUrl: 'https://www.xiaohongshu.com',
tags: ['毕业游', '祖孙', '外婆带娃', '小升初', '亲情', '暑假'],
familyType: '外婆+孙女',
childrenAge: '12岁',
fromCity: '广州',
tripProduct: '额吉的故乡V9 · 5天4晚定制祖孙方案',
travelDate: '2025年7月',
coverImage: '/images/gallery/gallery-004.jpg',
published: true,
sortOrder: 10,
sections: [
{
heading: '我外婆的草原梦',
content: '我女儿小升初的暑假想出去走走。我和她爸爸工作都走不开,本来想取消。\n\n我妈听到以后说"你们不去,我带她去。草原我年轻时候就想去,这辈子也没机会。"\n\n我妈 65 岁,广州人,没出过北方。我一开始很担心——她能撑得住吗?我女儿能配合她吗?但我妈决心已定。\n\n我把这些担心告诉呼籁的定制师。她说"我们有很多祖孙组合,孩子是主角,老人是陪伴者。行程可以按老人的节奏来,孩子的项目都有工作人员带。"\n\n这句"孩子是主角,老人是陪伴者"打消了我的疑虑。'
},
{
heading: '一个 65 岁外婆的第一次',
content: '我妈后来给我发消息。第一天:"飞机上外婆哭了,12 岁小姑娘一直安慰她。"\n\n第二天"外婆第一次见到蒙古包,进去摸了一圈出来说\'这比电视里真多了\'。"\n\n第三天"外婆骑马,领队让马师全程牵着。外婆还是紧张,但她坚持自己上下马,不让我扶。"\n\n第四天"外婆在营地炊烟前拍了一张照,她发给她的姐妹们,说\'这辈子没想到能看到这个\'。"\n\n第五天"外婆没哭,我哭了。12 岁的姑娘抱着外婆说\'奶奶你活着一定长命百岁\'。"\n\n每一天我都在微信上看着这些记录,我才明白我妈一直想要的是什么——不是世界各地的风景,是有人陪她走一遍。'
},
{
heading: '呼籁怎么安排的',
content: '后来我回去详细问我妈。她说整个行程都是"跟着孩子,但也照顾到我"。\n\n具体怎么做的?\n\n骑马、滑草、越野车这些高强度项目,都是孩子参与、外婆在旁边看。摄影师会专门拍外婆看着孙女的那一瞬间。\n\n长途车程,中间会安排老人可以"下车走走"的停车点。孩子这个时候可以下来跑一跑,外婆可以上个洗手间伸伸腰。\n\n吃饭,餐厅都是领队提前说明了"我们家有老人",米饭做软一点、菜不能太辣、有清淡选项。\n\n酒店,都是电梯房有阳台的那种。外婆每天晚上喜欢坐在阳台上看月亮。'
},
{
heading: '这是我女儿写的',
content: '回来以后女儿写了一篇小升初开学的自我介绍。她写了这段话:\n\n"这个暑假我去了呼伦贝尔。是我外婆带我去的。外婆今年 65 岁,她陪我骑马、滑草、看星星。最后一天我们在草原上拍了一张合影,外婆搂着我的肩膀。那天我觉得,外婆还是很年轻的外婆。"\n\n这段话我存下来了。我想有一天我女儿长大了,她再读到这段,也会想起那个草原。'
},
],
keyMoments: [
'外婆第一次进蒙古包,摸了一圈出来说"这比电视里真多了"',
'外婆骑马紧张,但坚持不让孙女扶自己上下马',
'摄影师专门拍了"外婆看着孙女"的瞬间系列,回来冲洗成相册',
'女儿写小升初自我介绍:"那天我觉得,外婆还是很年轻的外婆"'
],
seoTitle: '外婆带孙女呼伦贝尔祖孙游 5 天 4 晚 - 呼籁旅行',
seoDesc: '广州 65 岁外婆带 12 岁孙女的呼伦贝尔 5 天 4 晚毕业游真实故事。一老一小的旅行怎么安排?祖孙亲情在草原上的完整记录。',
},
// ========== 11 暴雪应急 ==========
{
slug: 'snowstorm-emergency-2025',
title: '多年难遇的秋季暴雪:呼籁是怎么把我们安全带回来的',
subtitle: '秋末从阿尔山回程,遇到多年罕见的暴雪封路。这是一次考验服务底线的意外,也是我决定以后再来呼籁的原因',
summary: '2025 年 10 月末,从阿尔山回海拉尔的路上遇到大暴雪。原定路线封闭、多辆事故车、气温骤降。呼籁是怎么把我们一车 6 个人安全平稳带回来的。',
author: 'c**(小程序评价)',
sourceUrl: '',
tags: ['秋季', '暴雪', '应急处理', '服务底线', '安全'],
familyType: '夫妻+两娃',
childrenAge: '8岁 + 5岁',
fromCity: '郑州',
tripProduct: '游牧的森林(南)呼伦贝尔+阿尔山7天6晚',
travelDate: '2025年10月',
coverImage: '/images/seasons/autumn-train.jpg',
published: true,
sortOrder: 11,
sections: [
{
heading: '好好的秋游,半路天气变了',
content: '10 月最后一周去的阿尔山秋季南线。前四天一切顺利,金秋风光看够了,孩子们玩得尽兴,一切都在计划里。\n\n第五天早上起来,窗外白茫茫一片。导游进房间说"今年第一场雪提前到了,而且气象说今天下午还会加大。我们刚才开了视频会决定延迟出发,先等等情况。"\n\n当时我心里其实有点急——后面还有两天行程,推迟会不会赶不上?但朱师傅我们的领队特别冷静,他说"安全第一,行程可以调,您不用担心"。'
},
{
heading: '原定路线被封',
content: '上午 10 点,消息来了:原定回海拉尔的那条路发生了三辆事故车,正在清理,临时封闭。\n\n朱师傅立刻给公司反馈,公司调度花了不到 20 分钟给出了新方案:绕行更低海拔的一条路线,前后酒店已经协调好,后一段行程压缩一天,改为返程后补偿一日的接送机服务。\n\n当时车上 6 个人,两个孩子已经被吓得小声哭了。朱师傅一边开车一边跟孩子们讲他之前遇到过的"雪地故事",把恐惧变成了探险。我老婆在后座给我看朱师傅的仪表盘:全程时速没有超过 40。他说"这种天气,慢一点比快一点安全"。'
},
{
heading: '到酒店那一刻',
content: '当天晚上 7 点多,我们终于安全到了新酒店。朱师傅下车之前在前排坐了几分钟——我后来才知道他在联系后两天行程的每一个节点,确认调整都到位。\n\n下车进酒店,前台已经知道我们要来。房间提前开好、热汤在餐厅等着、孩子们最喜欢的水果提前摆在桌上。\n\n这个晚上,两个孩子都没说要回家——他们反而觉得这一天是"最刺激的"。我老公跟我说:"我今天看到的是一个公司的反应能力,而不是一个导游的反应能力。"'
},
{
heading: '我给呼籁写了一条评价',
content: '回来以后我在小程序上留了评价:\n\n"遇到了多年难遇的暴雪,旅行社及朱师傅安排得当,保证了安全和剩余旅途的愉快进行。如果没有这次意外,我不会知道这家公司的真正底子。如果所有旅行都是顺风,我们永远不知道什么叫\'靠谱\'。"\n\n这段话是我真心写的。下次我还会来呼籁——不是因为我们这次运气好,而是因为我知道不管下一次什么天气,他们都能应对。'
},
],
keyMoments: [
'暴雪当天,公司调度 20 分钟内给出绕行方案 + 前后酒店协调 + 行程调整',
'朱师傅全程时速不超过 40 公里,"这种天气慢比快安全"',
'把两个孩子的恐惧转化成了"雪地故事",回来以后他们反而觉得这一天最刺激',
'到新酒店,房间、热汤、孩子的水果全部提前准备好,没有一个环节掉链子'
],
seoTitle: '呼伦贝尔秋季暴雪应急处理真实故事 - 呼籁旅行',
seoDesc: '郑州一家四口 2025 年 10 月遇到呼伦贝尔秋季暴雪封路的完整真实记录。呼籁是如何 20 分钟内调度绕行、安全把客户带回来的。',
},
// ========== 12 两家庭闺蜜联游 ==========
{
slug: 'two-families-friends-trip-2025',
title: '两个妈妈三个孩子:两家庭联游是怎么没有"内耗"的',
subtitle: '两家大人是闺蜜二十年,三个孩子不算熟。出发前最大的担心不是孩子,而是两家的节奏怎么合',
summary: '两个家庭一起出行听起来浪漫,实际上是协调的噩梦。我们出行前定下三条"原则",呼籁帮我们落地——这次旅行意外成为两家友谊的增强剂。',
author: '雯雯 & 君君',
sourceUrl: '',
tags: ['多家庭', '闺蜜联游', '两个妈妈', '三孩子', '协作'],
familyType: '两个家庭',
childrenAge: '9岁 + 7岁 + 5岁',
fromCity: '成都 / 西安',
tripProduct: '额吉的故乡V9 · 6天5晚多家庭协作方案',
travelDate: '2025年7月',
coverImage: '/images/stories/placeholder-girlfriends.jpg',
published: true,
sortOrder: 12,
sections: [
{
heading: '两个闺蜜的约定',
content: '我和君君是大学同学,认识 20 年。两家孩子年纪差不多,一直说要"一起出去玩一次",每年都说,每年都搁置。\n\n今年春节,我们终于下了决心。但一查攻略就头大——两家 5 个人,三个孩子年龄不同、大人作息不同、两家预算不一样、两家的关注点不一样。\n\n呼籁的定制师听完一切后说了一句非常精准的话"多家庭旅行最怕的不是分歧,是一方让着另一方。我们帮你们设计成\'没有人需要让步\'的行程。"'
},
{
heading: '"没有人需要让步"是怎么做到的',
content: '方案出来之后我明白了她的意思。行程里有三个层次的安排:\n\n第一层是"全员必参加"项目——两家都期待的大项目,比如骑马、营地烧烤、旅拍。这些无差别参加。\n\n第二层是"可选项目"——比如某条长途路线,两家选其中一家的意愿优先。比如我想去某个偏远村落,君君家不感兴趣,那就给我们安排一天单独用车,他们那天留在酒店带孩子玩游乐区。\n\n第三层是"每家 1 个独家"——每家可以在行程里钉一个"只为我家设计"的点。我家选了书店咖啡,君君家选了我们不曾听过的草原教堂。\n\n这种设计下,整个行程没人觉得"被拖着走"或者"被让步"。'
},
{
heading: '三个孩子自己就熟了',
content: '出发前我最担心是三个孩子熟不熟、会不会吵。结果第一天上车 20 分钟他们就自己玩起来了。9 岁的哥哥当"老大",7 岁的姐姐当"二当家",5 岁的小妹被照顾得服服贴贴。\n\n整个行程里三个孩子之间几乎没有冲突。领队说"孩子在陌生地方,本能会寻求同龄伙伴抱团。这是本能,不用我们操心。"\n\n最后几天他们就形影不离了。一起追蚂蚱、一起给小羊喂草、一起在营地烧烤时围着火堆讲鬼故事。'
},
{
heading: '两家友谊的增强剂',
content: '回来以后,君君跟我说:"我们这 20 年的感情经过了这次考验。"\n\n她说的考验是什么?两家住一起六天五晚,每天 10 几个小时在一起,这是我们做闺蜜 20 年来都没有过的密度。\n\n我们都觉得关系反而更好了。可能因为这次旅行把我们各自的家庭拉到了对方面前——她看到了我老公照顾孩子的细节,我看到了她和孩子互动的耐心。这是平时闺蜜聚会里看不到的。\n\n我们已经约了明年带上两家的父母一起来一次。这个是"两家友谊的增强剂",也可能是"两家亲家友谊的试金石"。一步步来。'
},
],
keyMoments: [
'定制方案三层结构:"全员必参加 / 可选 / 每家独家 1 项",没人需要让步',
'三个孩子上车 20 分钟就自己玩起来了,整个行程几乎零冲突',
'我家选了一天去书店咖啡,君君家选了一天去草原教堂——各自的"独家一天"',
'最后一晚两家一起在营地烧烤,孩子们围着火堆讲鬼故事,两个妈妈在旁边红酒聊了四个小时'
],
seoTitle: '两家庭闺蜜联游呼伦贝尔 6 天 5 晚 - 呼籁旅行',
seoDesc: '成都+西安两家闺蜜家庭的呼伦贝尔 6 天 5 晚联游故事。两个家庭一起出行怎么避免内耗?呼籁的"三层行程设计"让没人需要让步。',
},
]
const updateStmt = db.prepare(`
UPDATE stories SET
slug=?, title=?, subtitle=?, summary=?, author=?, source_url=?, tags=?,
family_type=?, children_age=?, from_city=?, trip_product=?, travel_date=?,
cover_image=?, sections=?, key_moments=?, seo_title=?, seo_description=?,
published=?, sort_order=?
WHERE id=?
`)
const insertStmt = db.prepare(`
INSERT INTO stories (
slug, title, subtitle, summary, author, source_url, tags,
family_type, children_age, from_city, trip_product, travel_date,
cover_image, sections, key_moments, seo_title, seo_description,
published, sort_order
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
`)
function params(s) {
return [
s.slug, s.title, s.subtitle, s.summary, s.author, s.sourceUrl,
JSON.stringify(s.tags),
s.familyType, s.childrenAge, s.fromCity, s.tripProduct, s.travelDate,
s.coverImage,
JSON.stringify(s.sections),
JSON.stringify(s.keyMoments),
s.seoTitle, s.seoDesc,
s.published ? 1 : 0, s.sortOrder,
]
}
const tx = db.transaction(() => {
for (const s of updates) updateStmt.run(...params(s), s.id)
for (const s of inserts) insertStmt.run(...params(s))
})
tx()
const rs = db.prepare('SELECT id,title,sort_order FROM stories ORDER BY sort_order').all()
console.log(`✓ 完成第二批:更新 ${updates.length} 篇 + 新增 ${inserts.length}`)
console.log(`当前 DB 共 ${rs.length} 条客户故事:`)
rs.forEach(r => console.log(` ${r.sort_order}. #${r.id} | ${r.title}`))