共通マスタ仕様 tenant · employee · customer · location

SHARED MASTER

デモ横断のマスタ命名と ID 対応表

予約 → 顧客ナビ のように複数デモを同じ会社で使うとき、tenant / employee / customer の ID を揃えます。UI ラベルだけ lexicon で変えます。

統一フィールド名(8割共通)

概念正規名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別名表示名bookingcrm companyId
midori law, legal みどり法律・税務相談所 legal law
yamada 山田法律事務所 legal_yamada —
salon サロン・ルミエール — salon
retail アストロ店舗 — retail
homecare あおぞら訪問看護 — —
construction 北山建設 — —
food 小料理 ことぶき food —
trim ドッグサロン はなみずき trim —

ガント(gantt)scenarioId → tenant

ガントデモは scenarioId をキーにしています。正規 tenant slug は scenario.tenantSlug または下表(master-manifest.json の scenarioTenantMap)で解決します。

scenarioId正規 tenant slugseed 上の表示名(参考)
homecare homecare あおぞら訪問看護
construction construction 北山建設
salon salon サロン・ルミエール
itdev retail アストロ店舗

itdev(IT受託シナリオ)はデモ上 アストロソフト ですが、マスタ連携の tenant は retail に寄せています。

本番練習サイト(practice)

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(別データ)。

士業(midori)— customer 対応表

ソース: 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 —
予約(booking)
  • tenant slug: midori
  • 担当: bk_resource「佐藤 弁護士」→ e-midori-01
  • ログイン例: yamada@example.com → c-midori-001(山田 太郎)
  • ログイン例: kato@example.com → c-midori-002 担当者(北風商事)
顧客ナビ(crm law)
  • companyId: law → tenant midori
  • p1 山田 太郎 → c-midori-001
  • p2 北風商事 → c-midori-002
  • p3 佐藤 花子 → c-midori-003
Step 12 確認(商談デモ用)
  1. 顧客ナビ → 会社 「みどり法律・税務相談所(士業デモ · 予約連携)」 を選択(「青葉法律事務所」や「みどり会計」は別データ/古いキャッシュです)
  2. 詳細に 士業デモ連携 バナー: c-midori-001 · party p1 · 予約 yamada@example.com
  3. 「予約デモを開く」→ booking midori で demo1234 ログイン → 同一依頼人として説明
  4. コンソール: CrmMasterHelpers.getCustomerId(CrmMasterHelpers.partyById("p1")) → "c-midori-001"
  5. 北風商事(p2)→ c-midori-002 / kato@example.com。佐藤 花子(p3)は booking 未連携

美容(salon)— employee 対応表

ソース: 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)。

対象(included)
  • booking
  • crm
  • flow
  • shift
  • board
  • stocknavi
  • gantt
対象外(excluded)
  • ai
    文章・分析・翻訳などの AI 業務デモ。tenant / employee / customer マスタをデモ間で共有しない。
  • ai-*
    AI ハブ配下の個別デモ(メール返信・口コミ・見積など)。同上。
  • multilang
    来訪者向け多言語案内。会話・翻訳が主で、人事/顧客マスタ連携の対象外。
  • knowledge
    社内ナレッジ/文書検索デモ。顧客・従業員 ID の横断統一対象外。デモ UX では「いまの人」に employeeId を持ち権限切替する(Step 20a)。
  • scan
    現場コード(バーコード/QR)管理。在庫・備品コードが主。読取者は operator_employee_id で staff を記録するが、テナント横断マスタの included 対象外(Step 20b)。
  • asis-flow
    As-Is 業務フロー図の説明デモ。運用マスタ ID を持たない。

ファイル(ソースオブトゥルース)

各デモ HTML の先頭で inline-master.php を読み込み、続けて master-seed.js を読み込みます。実装の進め方は マスタ統一手順(Step 01〜24) を参照。