住宿管理软件通常在“按夜/按月”这条线上裂开:一边是酒店 PMS,另一边是租金台账,同时经营两者的业主靠手工让两套系统保持一致。Korat 的住宿模块拒绝这条裂缝。酒店、度假村、公寓、共管公寓、别墅或民宿是一种业务类型,底下是一份房型目录。同一张房态网格既能接两晚的预订,也能接一年的租约,而月末报表覆盖两者。
单位是房型,不是单个房间
一处物业被描述为一组房型——每种有照片、每晚价格、数量、描述和设施——而不是一份逐间配置的房间清单。定价和可用量实际上就是这个形状:八间一模一样的高级双床房是一个产品、数量为八;把它们当成八个产品,就意味着改价有八个地方、也有八次漏改的机会。浏览时显示网格或列表,带“起价”、评分和类型角标,所以民宿和公寓在点进去之前就分得清。
评分来自能被证明住过的客人
卡片上的评分不是业主填的数字。和 Korat 里所有评分一样,它由数据库触发器从评价记录重算,而且只有平台能证明住过的客人才能写——住宿是评价资格视图里的合格类型之一。
季节与促销定价:算一次,用两处
价格是会变的:宋干节(泰国四月中旬的新年假期,出行高峰)、长周末、淡季、业主搞两周的促销。所以房型带定价规则,每条规则是一个日期区间加一个调整值,以百分比或店家自设货币的固定金额表示。重要的不是规则存在——每个预订系统都有某种版本——而是浏览列表上的那个数字和实际计费的那个数字出自同一个函数。这里不存在一套会落后于真实价格的独立展示价计算。
这个功能的经典失败是:搜索结果由一条代码路径定价,结账由另一条定价,客人看到的是物业从未同意过的价格,然后被按另一个价格收费。共用同一个函数,让这种分歧在结构上不可能发生,而不是变成一件需要去测的事。促销规则生效时,卡片显示划掉的基础价加一个角标,所以客人看到的是调整的幅度,而不只是一个更低的数字。
预订是一个请求,由物业来确认
在线预订收集入住与退房日期、客人和一个电话号码,然后落进物业的预订收件箱,由业主确认。待处理数量以每隔几秒刷新的实时角标停在控制台仪表盘上,和其他等着人回应的事项并排,所以它不是一个需要谁记得去打开的队列。
客房服务请求进入同一个控制台
入住期间,客人可以从应用发送客房服务请求,它们抵达同一个控制台。这是个小功能,却对一家小物业的运转影响很大,因为替代方案是房间里一部没人接的电话,或者走一趟前台。
预订是订位,不是预付。流程收集日期、客人和电话,由物业确认。Korat 不在预订时收卡、不冻结押金,也不处理房费——结算发生在你和物业之间。
月租账单同理:它被生成、展示给租客,并带一个由业主设置的已付标记。这个标记记录钱到了,它不搬钱。
业主的房态网格与控制台
控制台给一处物业四块磁贴:带入住与退房的房态网格、含季节规则的房型管理、预订收件箱,以及月租。网格是前台整天待着的那一屏——一眼看清入住率,以及改变它的两个动作;房型管理则是价格、数量、设施和定价规则只改一次的地方。
报表、客户档案与人事:每种业务都有的磁贴
围绕它们的是每种业务类型都有的磁贴。报表覆盖营业额、订单数、客单价、现金/PromptPay/其他的构成、销量前五、七日营业额图表,以及今天/七天/三十天/全部四个周期,附带收据补打和可分享的收据文本——但开不了税务发票,因为只有增值税登记人才能开具,而系统里还没有记录任何一家店的登记信息。客户台账由销售流水生成,带备注、标签、历史,以及按店家自设汇率累积的积分——对一家接待回头商务客的物业来说,那份历史才是有用的部分。HR 覆盖带 GPS 和备注的上下班打卡、请假申请、排班与工资,含实际工时和一天超过八小时的加班,以及公告与任务。
月租:抄表变成账单
月租这一侧是模块不再像酒店系统的地方。房型带自己的租金与水电配置;房间带租客和押金;每个月业主录入水表和电表读数。账单由这些读数生成——读数是输入,账单是输出,算术不再在纸上做完、再作为一个事后没人能核的总额敲进去。每张生成的账单带已付标记,所以未结清清单是一次查询,而不是一段记忆。
这是经营一栋小公寓楼里最容易产生纠纷的部分,恰恰因为它通常记在本子上。把读数和租约放在一起,意味着一张账单可以追回到它来源的那两个数字——对“这个月为什么高了”而言,这是比重新算一遍更好的回答。
员工权限,以及客人永远看不到的那一侧
控制台访问跑在权限矩阵上:十三项核心能力加上已安装模块带来的能力,角色预设(店主、经理、服务员、厨房、员工)以及按人覆盖。成员缺少某项能力时磁贴直接隐藏,而什么权限都没有的成员会看到明确的“你还没有任何权限”状态,而不是一屏读起来像坏掉的空白。
在安卓应用里,这些检查跑在客户端。同一套矩阵在数据库里以 has_capability(business_id, capability) 存在,被行级安全策略使用并在服务端展开,所以服务器从不听信客户端关于某人是什么角色的说法——但说整个控制台今天已经完全由服务端强制执行,那是夸大,所以我们不这么说。
按晚计的房间在这一页,按月计的房东与租客合约在租赁里,两者不是同一张单。