import type { DsDevice } from "@/lib/types";
import { at } from "./_helpers";
/** ★fixtures の制御盤は必ず心拍(最終通信)を持つ★(API の型は心拍0件で `null` を許す。指示書BB A1。型で固定・データは変えない) */
export type FixtureDsDevice = DsDevice & { last_reported_at: string };
/**
* D-Secログ(D-S制御盤)のサンプルデータ
*
* ★ トークン期限 / 残日数は移植しない(D-030: 仕様から除外済み)★
* モックの DSDEV には `te` フィールドが残っているが、実装対象外。
*
* docs/fixtures.md §5 のケース
* - 2状態すべて(正常 / 異常)★通信断は「異常」に含まれる。3状態目は存在しない(D-065)★
* - 自動ソート確認: ここでは「正常→異常→正常→異常」の順で定義してある。
* 画面表示時に「異常 → 正常」に並び替わることを確認すること(サーバ側でソート)
* - 備考あり / なし(空文字ではなく null で持つ)
*/
export const dsDevices: FixtureDsDevice[] = [
// あえてバラバラな順序で定義(ソートの確認用)
{
serial_number: "DS-002",
facility_id: 3,
facility_name: "メガバリューマート東口店",
connection_status: "ok",
last_reported_at: at(0, "09:01"),
note: null,
},
{
serial_number: "DS-001",
facility_id: 1,
facility_name: "メガバリューマート中央本店",
connection_status: "error",
last_reported_at: at(0, "03:42"),
note: "現地確認済み。制御盤の電源ユニット交換を手配中",
},
{
serial_number: "DS-003",
facility_id: 4,
facility_name: "バリューマート西通り店",
connection_status: "ok",
last_reported_at: at(0, "09:00"),
note: null,
},
{
serial_number: "DS-005",
facility_id: 11,
facility_name: "バリューマート川下店",
connection_status: "error",
last_reported_at: at(0, "02:55"),
note: "9/5 に制御盤を再起動して復旧を確認。しばらく様子見",
},
{
serial_number: "DS-004",
facility_id: 5,
facility_name: "メガバリューマート港南総本店",
connection_status: "ok",
last_reported_at: at(0, "08:55"),
note: null,
},
{
serial_number: "DS-006",
facility_id: 7,
facility_name: "メガバリューマート緑野店",
connection_status: "ok",
last_reported_at: at(0, "08:58"),
note: "定期点検実施済み",
},
// --- 11件以上(ページング確認用)に増やすため追加 ---
{
serial_number: "DS-007",
facility_id: 2,
facility_name: "バリューマート北町店",
connection_status: "ok",
last_reported_at: at(0, "08:50"),
note: null,
},
{
serial_number: "DS-008",
facility_id: 6,
facility_name: "バリューマート南丘駅前店",
connection_status: "ok",
last_reported_at: at(0, "08:47"),
note: null,
},
{
serial_number: "DS-009",
facility_id: 8,
facility_name: "メガバリューマート桜台店",
connection_status: "error",
last_reported_at: at(0, "04:10"),
note: "店舗担当者へ連絡済み。今夜も再発するようなら訪問する",
},
{
serial_number: "DS-010",
facility_id: 9,
facility_name: "メガバリューマート三ツ橋中央ショッピングセンター店",
connection_status: "error",
last_reported_at: at(0, "01:30"),
note: "LAN ケーブルの緩みを現地で直した。翌朝あらためて確認",
},
{
serial_number: "DS-011",
facility_id: 10,
facility_name: "バリューマート城南店",
connection_status: "ok",
last_reported_at: at(0, "08:52"),
note: "定期点検実施済み",
},
{
serial_number: "DS-012",
facility_id: 12,
facility_name: "メガバリューマート緑野第二店",
connection_status: "error",
last_reported_at: at(0, "03:20"),
note: "警備会社へ連絡済み。復帰手順の再確認を依頼中",
},
];
/**
* 「全部正常」のケース(異常0件でサマリカードがどう出るか)を確認したいときに使う。
* APIルート側でクエリパラメータやフラグで差し替えて確認してください。
*/
export const dsDevicesAllOk: FixtureDsDevice[] = dsDevices.map((d) => ({
...d,
connection_status: "ok",
note: null,
}));
/**
* 該当0件(docs/fixtures.md §10)を確認したいときは、
* `q` に一致しない検索語(例: "ZZZ-NOMATCH")を指定してください。
* facility_name / serial_number のどちらにも一致しない前提です。
*/