SHARED MASTER
予約 → 顧客ナビ のように複数デモを同じ会社で使うとき、tenant / employee / customer の ID を揃えます。UI ラベルだけ lexicon で変えます。
| 概念 | 正規名 | SQL列 | JS(新) | 旧名(移行中) |
|---|---|---|---|---|
| tenant | tenant |
tenant_id |
tenantSlug |
companyId, company, t, tenantSlug |
| employee | employee |
employee_id |
employeeId |
staffId, actorStaffId, actorId, assignee, attorney, stylist, managerIds |
| customer | customer |
customer_id |
customerId |
partyId, party, parties, customerId |
| location | location |
location_id |
locationId |
shopName, locationName, branchName |
crm の一覧配列は互換のため parties[] も残しますが、案件との結びは customerId です(Step 24 で partyId フィールドは削除)。
law(顧客ナビ)と legal(予約)はセミナー用 tenant midori(旧 legal エイリアス)です。本番練習 yamada は別 tenantです。
| 正規 slug | 別名 | 表示名 | booking | crm companyId |
|---|---|---|---|---|
midori |
law, legal | みどり法律・税務相談所 | legal | law |
yamada |
山田法律事務所 | legal_yamada | — | |
salon |
サロン・ルミエール | — | salon | |
retail |
アストロ店舗 | — | retail | |
homecare |
あおぞら訪問看護 | — | — | |
construction |
北山建設 | — | — | |
food |
小料理 ことぶき | food | — | |
trim |
ドッグサロン はなみずき | trim | — |
ガントデモは scenarioId をキーにしています。正規 tenant slug は scenario.tenantSlug または下表(master-manifest.json の scenarioTenantMap)で解決します。
| scenarioId | 正規 tenant slug | seed 上の表示名(参考) |
|---|---|---|
homecare |
homecare |
あおぞら訪問看護 |
construction |
construction |
北山建設 |
salon |
salon |
サロン・ルミエール |
itdev |
retail |
アストロ店舗 |
itdev(IT受託シナリオ)はデモ上 アストロソフト ですが、マスタ連携の tenant は retail に寄せています。
URL パスの site キー(yamada)と booking DB の tenant slug(yamada)は同一キーです。practice/config.php の tenant_slug が正規 slug です。
| site キー | 正規 tenant slug | パス URL(例) |
|---|---|---|
yamada |
yamada |
/DX/practice/sites/yamada/ |
セミナーは ?t=midori(旧 ?t=legal 可)。練習は /practice/sites/yamada/ → tenant yamada(別データ)。
ソース: master-seed.json の customers[](tenant midori)。crm law の parties[].id は legacyPartyId で対応します。
| customerId | crm party | 名前 | 連絡先 | booking ログイン |
|---|---|---|---|---|
c-midori-001 |
p1 |
山田 太郎 |
03-1111-0000 yamada@example.com |
yamada@example.com
|
c-midori-002 |
p2 |
株式会社北風商事 |
03-2222-0000 legal@kitakaze.example |
kato@example.com
加藤 一郎 |
c-midori-003 |
p3 |
佐藤 花子 | 090-7777-8888 | — |
midorie-midori-01yamada@example.com → c-midori-001(山田 太郎)kato@example.com → c-midori-002 担当者(北風商事)law → tenant midorip1 山田 太郎 → c-midori-001p2 北風商事 → c-midori-002p3 佐藤 花子 → c-midori-003c-midori-001 · party p1 · 予約 yamada@example.comdemo1234 ログイン → 同一依頼人として説明CrmMasterHelpers.getCustomerId(CrmMasterHelpers.partyById("p1")) → "c-midori-001"c-midori-002 / kato@example.com。佐藤 花子(p3)は booking 未連携ソース: master-seed.json の employees[](tenant salon)。legacy id s01〜s12 は shift / flow / board が参照する旧 staff id です。Step 14 以降で各デモの employeeId をここに寄せます。
| employeeId | legacy | 名前 | 役割 | tenant |
|---|---|---|---|---|
e-s01 |
s01 |
佐藤 花 | パート | salon, retail |
e-s02 |
s02 |
鈴木 翔 | 学生 | salon, retail |
e-s03 |
s03 |
高橋 美咲 | パート | salon, retail |
e-s04 |
s04 |
田中 蓮 | 学生 | salon |
e-s05 |
s05 |
伊藤 結衣 | パート | salon, retail |
e-s06 |
s06 |
渡辺 大輝 | 学生 | salon |
e-s07 |
s07 |
山本 葵 | パート | salon, retail |
e-s08 |
s08 |
中村 陽 | 学生 | salon |
e-s09 |
s09 |
小林 咲 | パート | salon |
e-s10 |
s10 |
加藤 翼 | 学生 | salon |
e-s11 |
s11 |
吉田 莉子 | パート | salon |
e-s12 |
s12 |
山田 健 | 学生 | salon, retail |
salon に紐づく employee は 12 名(目標 12 名)。コンソール: DXMaster.employees('salon').length
ソース: master-manifest.json の includedDemos / excludedDemos(Step 20)。人事・顧客マスタをデモ横断で揃えるのは対象デモのみです。knowledge / 物品ナビ(item)は対象外のまま、操作者や読取コードをデモ内で扱うだけです(Step 20a / 20b)。
bookingcrmflowshiftboardstocknaviganttai
ai-*
multilang
knowledge
scan
asis-flow
DX/demo/shared/master-manifest.json — 命名規約・tenant 別名
DX/demo/shared/master-seed.json — tenant / employee / customer / location
DX/demo/shared/Master.php — PHP ローダー
DX/demo/shared/master-seed.js — JS ヘルパー(DXMaster.resolveTenantSlug() 等)
各デモ HTML の先頭で inline-master.php を読み込み、続けて master-seed.js を読み込みます。実装の進め方は マスタ統一手順(Step 01〜24) を参照。