料金表の規則の書き方
{ "months": 24, "dimension": { "slot": "home", "default": "house" }, "courses": [ { "key": "c10g", "name": "そらネット 10G", "monthly": { "house": 6050, "mansion": 5390 }, "freeMonths": 4, "freeLabel": "実質0円" } ], "courseRules": [ { "when": { "slot": "remote", "eq": true }, "course": "c10g", "reason": "在宅勤務があるので、速さと安定性を優先" } ], "defaultCourse": { "course": "c10g", "reason": "いちばん人気のコース" }, "options": [], "discounts": [], "benefits": [], "labels": { "total": "ネット料金", "separate": "スマホ代の割引" }, "required": [{ "label": "世帯の人数", "slots": ["household"] }]}| 項目 | 内容 |
|---|---|
months |
合計を出す期間(か月) |
dimension |
月額が変わる区分を決める条件と、分からないときに仮定する区分 |
courses |
コース。monthly は区分ごとの月額(区分がなければ { "default": 月額 })。freeMonths は月額がかからない月数 |
courseRules |
上から順に当てはめ、最初に合ったコースを選びます |
defaultCourse |
どの規則にも合わないときのコース |
options |
{ key, name, monthly, when, reason }。条件に合えば加えます |
discounts |
{ key, name, perUnitMonthly, unitsSlot, unit, maxUnits, separate, reason }。条件の数(value)に比例する割引。separate: true は請求が別の割引で、合計に足しません |
benefits |
{ key, name, when, reason }。還元などの特典。合計には足しません |
labels |
合計の見出し(total)と、請求が別の割引の見出し(separate) |
required |
「まだ分からない条件」として示すもの。slots のどれかが分かれば、分かったことにします |
条件式(when)
Section titled “条件式(when)”| 書き方 | 意味 |
|---|---|
{ "slot": "remote", "eq": true } |
はい/いいえの条件が「はい」 |
{ "slot": "home", "eq": "house" } |
選択肢の条件が「戸建て」 |
{ "slot": "usage", "in": ["remote", "gaming"] } |
選択肢の条件が、このどれか |
{ "slot": "household", "gte": 3 } |
選択肢の数(value)が 3 以上。lte は以下 |
{ "slot": "household", "known": false } |
条件がまだ分からない |
{ "course": "c10g" } |
選んだコースが c10g(オプション・特典の規則で使います) |
{ "dimension": "house" } |
区分が house(仮定した区分を含みます) |
{ "all": [ … ] } |
すべて当てはまる |
{ "any": [ … ] } |
どれかが当てはまる |
{ "not": { … } } |
当てはまらない |
例:戸建てで 3 人以上なら Wi-Fi のオプションを加える
Section titled “例:戸建てで 3 人以上なら Wi-Fi のオプションを加える”{ "key": "mesh", "name": "まるごとWi-Fi", "monthly": 550, "when": { "all": [{ "course": "c10g" }, { "dimension": "house" }, { "slot": "household", "gte": 3 }] }, "reason": "戸建てで家族が多いので、部屋ごとの電波ムラを防ぐ"}保存の前の確かめ
Section titled “保存の前の確かめ”保存の前に、存在しないコースや条件を指す規則、重複した key、既定の区分の月額の抜けを確かめます。誤りがあれば保存せず、どこが誤りかを示します。