# 図面（drawing.png）から読んだ値で、店の形（famires-layout/0.3 の layout 部分）を起こす。単位 m
# 縮尺：横 24000mm / 1418px = 16.925 mm/px、縦 19200mm / 1134px = 16.931 mm/px（差 0.04%）
# 原点：外壁の内側の左下（画素 x=192, y=1291）。読んだ画素は comps.py・runs.py の出力
import json, sys
out = sys.argv[1] if len(sys.argv) > 1 else "/home/claude/blind3/out/auto_v0.json"
R = lambda v: round(v, 3)
def T(typ, x0, y0, x1, y1, seats, **kw):
    return dict(type=typ, x=R(x0), y=R(y0), w=R(x1 - x0), h=R(y1 - y0), seats=seats, **kw)

L = dict(
    name="寸法つき図面のファミレス（自動で起こした版）",
    style="効率重視",
    outer=dict(w=24.0, d=19.2),
    # 建物は四角でない：左上（x 0〜7.6、y 17.0〜19.2）は建物の外
    outline=[[0, 0], [24.0, 0], [24.0, 19.2], [7.6, 19.2], [7.6, 17.0], [0, 17.0]],
    entrance=dict(side="bottom", a0=9.6, a1=12.4),   # 下の寸法 9600 / 2800 / 11600
    rooms=[
        dict(label="建物の外", rect=[0.0, 17.0, 7.6, 19.2], kind="outside"),
        dict(label="パントリー", rect=[9.8, 6.0, 12.0, 14.0], kind="back"),
        dict(label="キッチン", rect=[12.0, 6.0, 19.0, 16.0], kind="back"),
        dict(label="冷蔵庫・こおり・冷凍庫・保存庫・社員トイレ・更衣室", rect=[19.0, 6.0, 24.0, 16.0], kind="back"),
        dict(label="裏の通路", rect=[12.0, 16.0, 24.0, 17.0], kind="back"),
        dict(label="洗い場", rect=[12.0, 17.0, 21.0, 19.2], kind="back"),
        dict(label="裏の通路（洗い場の横）", rect=[21.0, 17.0, 21.6, 19.2], kind="back"),
        dict(label="物置", rect=[21.6, 17.0, 24.0, 19.2], kind="back"),
        dict(label="トイレ", rect=[7.6, 17.0, 9.2, 19.2], kind="guest"),
        dict(label="待合", rect=[12.7, 0.0, 13.9, 0.5], kind="guest"),
        dict(label="レジ", rect=[9.78, 2.2, 12.3, 3.0], kind="guest"),
        dict(label="レジ内", rect=[9.78, 3.0, 12.3, 3.8], kind="back"),        # 仮：図面にない。カウンターの奥（パントリー側）に0.8m
        dict(label="ドリンクバー", rect=[13.4, 3.2, 18.6, 3.93], kind="drink"),
    ],
    walls=[
        dict(label="パントリーの壁", rect=[9.5, 6.0, 9.8, 14.0]),
        dict(label="トイレ前の通路の壁", rect=[9.5, 15.0, 9.8, 17.0]),
        dict(label="トイレの壁", rect=[9.2, 17.0, 9.5, 19.2]),
        dict(label="トイレの壁", rect=[7.6, 17.0, 8.3, 17.3]),
        dict(label="トイレ前の目隠しの壁", rect=[7.9, 14.4, 8.12, 17.0]),
        dict(label="仕切り", rect=[0.0, 8.6, 8.0, 9.0]),
    ],
    doors=[
        dict(label="厨房の出入り口（裏の通路へ）", rect=[12.0, 16.1, 12.1, 17.0], kind="staff", door=True),
        dict(label="厨房の出入り口（キッチンへ）", rect=[12.0, 15.0, 12.1, 15.95], kind="staff", door=True),
    ],
    toilet_doors=[[8.3, 15.8, 9.2, 17.0]],
    dish_up=[
        dict(label="受け渡し口（客席側）", rect=[9.8, 6.0, 12.0, 6.4]),
        dict(label="受け渡し口（トイレ側の通路）", rect=[9.8, 13.6, 12.0, 14.0]),
    ],
    robot_standby=dict(label="ロボット待機・充電（仮）", rect=[12.0, 5.2, 13.6, 6.0], slots=2),
    tables=[
        # 左上（仕切りより奥）
        T("booth6L", 0.0, 13.2, 2.6, 16.8, 6, flip=True, mirror=False),
        T("booth6L", 0.0, 9.4, 2.6, 13.0, 6, flip=False, mirror=False),
        T("t4", 4.0, 15.05, 5.2, 16.17, 4, chairs="左右"),
        T("t4", 6.0, 15.05, 7.2, 16.17, 4, chairs="左右"),
        T("r4", 3.645, 12.665, 4.745, 13.765, 4),
        T("r4", 6.85, 12.655, 7.95, 13.755, 4),
        T("t4", 3.64, 9.6, 4.76, 10.8, 4, chairs="上下"),
        T("t4", 5.84, 9.6, 6.96, 10.8, 4, chairs="上下"),
        # 左下（仕切りより手前）
        T("booth6L", 0.0, 4.6, 2.8, 8.4, 6, flip=True, mirror=False),
        T("booth6L", 0.0, 0.2, 2.8, 4.2, 6, flip=False, mirror=False),
        T("t4", 4.2, 6.86, 5.4, 7.97, 4, chairs="左右"),
        T("t4", 6.33, 6.81, 7.45, 8.01, 4, chairs="上下"),
        T("long6", 4.4, 3.645, 7.6, 5.585, 6),
        T("t4", 4.2, 0.46, 5.4, 1.57, 4, chairs="左右"),
        T("t4", 6.7, 0.41, 7.9, 1.59, 4, chairs="左右"),
        # 右下
        T("t4", 14.4, 0.46, 15.61, 1.57, 4, chairs="左右"),
        T("t4", 18.3, 0.41, 19.5, 1.59, 4, chairs="左右"),
        T("t4", 22.19, 0.46, 23.39, 1.57, 4, chairs="左右"),
        T("booth6L", 21.2, 3.0, 24.0, 6.0, 6, flip=True, mirror=True),
    ],
)
json.dump({"layout": L}, open(out, "w"), ensure_ascii=False, indent=1)
print(out, len(L["tables"]), "卓", sum(t["seats"] for t in L["tables"]), "席")
