{{ selectedTenantDetail.tenantSlug }}
テナントの一覧確認、追加、基本情報の編集を行います。
既存テナントの基本情報を更新します。
テナントと初期店舗を作成します。
| テナント名 | 識別子 | 状態 | 権限 | 作成日時 | 操作 |
|---|---|---|---|---|---|
|
{{ tenant.tenant.name }}
{{ tenant.tenantId }}
|
{{ tenant.tenant.slug }} | {{ translateTenantStatus(tenant.status) }} | {{ translateRole(tenant.actorRole || tenant.role) }} | {{ formatDateTime(tenant.tenant.createdAt) }} |
|
契約、オーナー、請求状態の要約です。
{{ selectedTenantDetail.tenantSlug }}
{{ selectedTenantDetail.ownerAccount.displayName || '未登録' }}
plan、請求開始日、カード状態、請求アラートをこの場で更新します。
{{ store.storeId }}
launch 判定に使う step 状態です。
更新: {{ formatDateTime(step.updatedAt) }}
{{ selectedTenant.tenant.name }} に紐づく店舗一覧です。
基本情報と SESAME 設定を分けて更新します。
{{ selectedTenant.tenant.name }} に店舗を追加します。
| 店舗名 | 状態 | タイムゾーン | SESAME | 操作 |
|---|---|---|---|---|
|
{{ store.name }}
{{ store.id }}
|
{{ translateStatus(store.status) }} | {{ store.timezone || '-' }} |
{{ store.sesameConfigured ? '設定済み' : '未設定' }}
{{ store.primaryDeviceUuid || store.hubName || '-' }}
|
{{ card.label }}
現在の live メニューに沿って、必要な状況だけを整理しています。
{{ panel.summary }}
今の仕様で次に手を入れるべき項目を並べています。
{{ item.summary }}
詳細編集は tenant-management に集約し、dashboard は状況把握に寄せています。
責任者
担当者
店舗割当
個別権限
テナント担当者は店舗割当だけでは操作権限を持たず、必要な機能だけを追加で開放します。
売上や監査ログは明示 grant 制です。会員一覧や遠隔解錠は、割当済み店舗に対してだけ付与します。
tenant 全体 grant は最小限に留めます。テナント責任者は横断管理、テナント担当者は日常運用を中心に分けます。
owner-web ではこの設定の tenant 限定版を使います。責任者の差し替え、担当者の状態確認、店舗割当の把握をここで行います。
{{ translateRole(operator.role) }} / {{ operator.profile?.phone || '電話未登録' }}
tenant 全体の運営責任者です。差し替え時は新しい owner を先に作成してから旧 owner を無効化します。
責任者と担当者の差を、機能単位で確認します。
{{ permission.code }}
アカウント管理とは切り離して、担当者の機能権限だけを調整します。
{{ translateRole(operator.role) }} / {{ operator.profile?.phone || '電話未登録' }}
一覧から会員を選ぶと詳細画面へ遷移します。
| 会員 | 連絡先 | ステータス | プロフィール | 登録日 | 操作 |
|---|---|---|---|---|---|
|
{{ member.fullName }}
{{ member.id }}
|
{{ member.email || member.phone || '連絡先未登録' }} | {{ translateStatus(member.status) }} | {{ member.profile?.displayName || '未連携' }} | {{ formatDateTime(member.createdAt) }} |
{{ item.summary }}
{{ item.reason }}{{ panel.summary }}
{{ selectedMember.email || selectedMember.phone || '連絡先未登録' }}
{{ item.summary }}
{{ formatCurrency(subscription.plan.currency, subscription.plan.priceCents) }} / {{ subscription.plan.billingInterval }}
{{ request.sesameDevice.nickname || request.sesameDevice.deviceUuid }}
{{ log.actorProfile?.displayName || translateRole(log.actorRole) || 'システム' }}
CandyHouse 契約
{{ formatMonth(candyhouseSummary.latestSnapshotMonth) }} API 推計
Hub3 / デバイス
停止中デバイス
Biz 会社アカウント席数と API 制約をテナント単位で管理します。
{{ candyhouseAccount.notes }}
取得日時: {{ formatDateTime(snapshot.capturedAt) }}
{{ hub.storeName }}
主導線ドア、Hub3 接続方式、疎通状態をまとめます。
| デバイス | 店舗 / Hub | 接続 | 疎通 | 同期 |
|---|---|---|---|---|
|
{{ device.nickname || device.deviceUuid }}
{{ device.deviceUuid }}
主導線
|
{{ device.storeName }}
{{ device.hubName || 'Hub 未設定' }}
|
{{ device.connectionType }}
FW: {{ device.firmwareVersion || '-' }}
|
{{ device.responsive ? '正常' : '停止' }}
電池残量: {{ device.batteryPercentage ?? '-' }}
|
{{ formatDateTime(device.lastSyncedAt) }}
最終オンライン: {{ formatDateTime(device.lastOnlineAt) }}
|
{{ tenant.tenant.slug }}
{{ selectedMember.email || 'メール未登録' }}
{{ formatCurrency(subscription.plan.currency, subscription.plan.priceCents) }} / {{ subscription.plan.billingInterval }}
{{ request.sesameDevice.nickname || request.sesameDevice.deviceUuid }}
{{ log.actorProfile?.displayName || log.actorRole || 'system' }}
{{ sesameOutput }}
{{ profileJson }}
{{ memberDetailJson }}
{{ activityLog }}