import type { Facility } from "@/lib/types";
/**
* 施設ロボットマスタのサンプルデータ
*
* ★ 実在の店舗名・住所・電話番号・担当者名は一切含めないこと(docs/fixtures.md)★
* ドン・キホーテ / MEGAドンキ → バリューマート / メガバリューマート
* ユニー / アピタ → フレッシュタウン
* 住所 → 「東京都○○区1-2-3」形式の架空住所
* 電話 → 03-0000-0001 形式の連番
* メール → store001@example.com
*
* 網羅しているケース(docs/fixtures.md §7)
* - 契約フラグ4パターン(未設定 / D-Securityのみ / D-Watchのみ / 両方)
* - ロボット0台 / 1台 / 3台
* - メーカー・機種は PUDU CC1 のみ(P1 の対象機種。CLAUDE.md §1)。未対応機種の
* 表示は `lib/facilities/__tests__/query.test.ts` の合成データで担保する(指示書N)
* - 任意項目が null
* - 複数都道府県
* - 11件以上(「もっと表示」の発火確認)
* - ★所属(屋号・ホールディングス)の4パターン★(指示書AK 段階5)
*
* ★★所属(`customer_id` / `customer_name` / `group_id` / `group_name`)★★(指示書AK 段階5)
* 段階1 では `lib/fixtures/customers.ts` の `customerIdByFacilityId` という暫定マップに
* 置いていたが、★段階5 で `Facility` が所属の列を持ったのでこちらへ移した★
* (マップは削除済み。同じ割り当てを2箇所に持たないため)。
*
* ★`lib/fixtures/customers.ts` の `customers` と `lib/fixtures/groups.ts` の `groups` と
* 必ず整合させること★(不変条件は `lib/fixtures/__tests__/masters.test.ts` が固定している):
* 顧客1 メガバリューマート(HD1) … 施設 1 / 3 / 5 / 7 / 8 / 9 (6件)
* 顧客2 バリューマート(HD1) … 施設 2 / 4 / 6 / 11 (4件)
* 顧客3 フレッシュタウン(HD2) … 施設 10 (1件)
* 顧客4 フレッシュタウン湖畔(★ホールディングスなし★) … 施設 12 (1件)
*
* ★`group_id` は API の形(`null` = 所属なし)で持つ★ — ★`0` を書かないこと★
* (0 → null の変換を知っているのは `lib/format/group-id.ts` だけ。★落とし穴3★)。
*/
export const facilities: Facility[] = [
// --- 契約: 両方(D-Watch + D-Security) ---
{
id: 1,
facility_name: "メガバリューマート中央本店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○区1-2-3",
phone: "03-0000-0001",
manager_name: "田中 一郎",
charger_name: "小林 美咲",
email: "store001@example.com",
monitoring_enabled: true,
d_security_enabled: true,
robots: [
{ id: 101, maker: "PUDU", model: "CC1", serial_number: "8111R5628060011" },
],
},
{
id: 3,
facility_name: "メガバリューマート東口店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○区3-1-8",
phone: "03-0000-0003",
manager_name: "伊藤 大輔",
charger_name: "中村 拓也",
email: "store003@example.com",
monitoring_enabled: true,
d_security_enabled: true,
robots: [
{ id: 103, maker: "PUDU", model: "CC1", serial_number: "8111R5628060033" },
],
},
{
id: 4,
facility_name: "バリューマート西通り店",
customer_id: 2,
customer_name: "バリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○区4-5-6",
phone: "03-0000-0004",
manager_name: "加藤 隆",
charger_name: "佐々木 優",
email: "store004@example.com",
monitoring_enabled: true,
d_security_enabled: true,
robots: [
{ id: 104, maker: "PUDU", model: "CC1", serial_number: "8111R5628060044" },
],
},
{
id: 5,
facility_name: "メガバリューマート港南総本店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "神奈川県",
address: "神奈川県○○市○○区5-1-1",
phone: "045-000-0005",
manager_name: "松本 洋介",
charger_name: "井上 真央",
email: "store005@example.com",
monitoring_enabled: true,
d_security_enabled: true,
robots: [
{ id: 105, maker: "PUDU", model: "CC1", serial_number: "8111R5628060055" },
{ id: 106, maker: "PUDU", model: "CC1", serial_number: "8111R5628060088" },
],
},
{
// ロボット3台のケース
id: 7,
facility_name: "メガバリューマート緑野店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○市○○町7-2-1",
phone: "042-000-0007",
manager_name: "清水 健",
charger_name: "森田 翼",
email: "store007@example.com",
monitoring_enabled: true,
d_security_enabled: true,
robots: [
{ id: 107, maker: "PUDU", model: "CC1", serial_number: "8111R5628060099" },
{ id: 108, maker: "PUDU", model: "CC1", serial_number: "8111R5628060100" },
{ id: 109, maker: "PUDU", model: "CC1", serial_number: "8111R5628060177" },
],
},
// --- 契約: D-Watchのみ(D-Securityメニューが出ないこと) ---
{
id: 2,
facility_name: "バリューマート北町店",
customer_id: 2,
customer_name: "バリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○区2-3-4",
phone: "03-0000-0002",
manager_name: "高橋 誠",
charger_name: "渡辺 翔",
email: "store002@example.com",
monitoring_enabled: true,
d_security_enabled: false,
robots: [
{ id: 102, maker: "PUDU", model: "CC1", serial_number: "8111R5628060022" },
],
},
{
id: 6,
facility_name: "バリューマート南丘駅前店",
customer_id: 2,
customer_name: "バリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○市○○町6-7-8",
phone: "042-000-0006",
manager_name: "木村 達也",
charger_name: "斎藤 愛",
email: "store006@example.com",
monitoring_enabled: true,
d_security_enabled: false,
robots: [
{ id: 110, maker: "PUDU", model: "CC1", serial_number: "8111R5628060077" },
],
},
{
id: 8,
facility_name: "メガバリューマート桜台店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○市○○町8-1-2",
phone: "0422-00-0008",
manager_name: "岡田 修",
charger_name: "藤井 彩",
email: "store008@example.com",
monitoring_enabled: true,
d_security_enabled: false,
robots: [
{ id: 111, maker: "PUDU", model: "CC1", serial_number: "8111R5628060122" },
],
},
{
// 施設名が長いケース(30文字程度)— 表示崩れ確認用
id: 9,
facility_name: "メガバリューマート三ツ橋中央ショッピングセンター店",
customer_id: 1,
customer_name: "メガバリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "東京都",
address: "東京都○○区9-9-9",
phone: "03-0000-0009",
manager_name: "池田 正",
charger_name: "西村 舞",
email: "store009@example.com",
monitoring_enabled: true,
d_security_enabled: false,
robots: [
{ id: 112, maker: "PUDU", model: "CC1", serial_number: "8111R5628060133" },
],
},
{
// 任意項目が null のケース(電話・メール・担当者なし)
id: 10,
facility_name: "フレッシュタウン大和店",
customer_id: 3,
customer_name: "フレッシュタウン",
group_id: 2,
group_name: "フレッシュリテイリング",
prefecture: "奈良県",
address: "奈良県○○市○○町10-1",
phone: null,
manager_name: null,
charger_name: null,
email: null,
monitoring_enabled: true,
d_security_enabled: false,
robots: [
{ id: 113, maker: "PUDU", model: "CC1", serial_number: "8111R5628060144" },
],
},
// --- 契約: D-Securityのみ(D-Watchメニューが出ないこと) ---
{
id: 11,
facility_name: "バリューマート川下店",
customer_id: 2,
customer_name: "バリューマート",
group_id: 1,
group_name: "バリューホールディングス",
prefecture: "神奈川県",
address: "神奈川県○○市○○区11-2-3",
phone: "045-000-0011",
manager_name: "村上 大地",
charger_name: "原田 千秋",
email: "store011@example.com",
monitoring_enabled: false,
d_security_enabled: true,
robots: [
{ id: 114, maker: "PUDU", model: "CC1", serial_number: "8111R5628060155" },
],
},
// --- 契約: 未設定(どちらのメニューも出ないこと) ---
{
// ロボット0台のケース(施設は登録済みだが未設置)
id: 12,
facility_name: "フレッシュタウン湖畔店",
customer_id: 4,
customer_name: "フレッシュタウン湖畔",
// ★ホールディングスなし★(DB の `customers.group_id = 0` に対応する API の形)
group_id: null,
group_name: null,
prefecture: "三重県",
address: "三重県○○市○○町12-4",
phone: "059-000-0012",
manager_name: "長谷川 亮",
charger_name: null,
email: "store012@example.com",
monitoring_enabled: false,
d_security_enabled: false,
robots: [],
},
];
/** 施設IDから施設名を引く(他fixtureからの参照用) */
export const facilityNameById = new Map(
facilities.map((f) => [f.id, f.facility_name])
);