{{ selectedTenantDetail.tenantSlug }}
テナント一覧
テナントの一覧確認、追加、基本情報の編集を行います。
既存テナントの基本情報を更新します。
テナントと初期店舗を作成します。
| テナント名 | 識別子 | 状態 | 権限 | 作成日時 | 操作 |
|---|---|---|---|---|---|
|
{{ tenant.tenant.name }}
{{ tenant.tenantId }}
|
{{ tenant.tenant.slug }} | {{ translateTenantStatus(tenant.status) }} | {{ translateRole(tenant.actorRole || tenant.role) }} | {{ formatDateTime(tenant.tenant.createdAt) }} |
|
テナント詳細
契約、オーナー、請求状態の要約です。
{{ selectedTenantDetail.ownerAccount.displayName || '未登録' }}
plan、請求開始日、カード状態、請求アラートをこの場で更新します。
- 店舗数
- {{ tenantDetailStoreSummary.totalCount }}
- 引き渡し完了
- {{ tenantDetailStoreSummary.handoffApprovedCount }}
- SESAME設定済み
- {{ tenantDetailStoreSummary.sesameConfiguredCount }}
- 疎通確認済み
- {{ tenantDetailStoreSummary.testedCount }}
{{ store.storeId }}
Onboarding 進捗
launch 判定に使う step 状態です。
- 完了
- {{ tenantDetailStepSummary.completedCount }} / {{ tenantDetailStepSummary.totalCount }}
- 差し戻し
- {{ tenantDetailStepSummary.needsRevisionCount }}
- 致命アラート
- {{ selectedTenantDetail.audit.criticalAlertCount }}
- 会員取込エラー
- {{ selectedTenantDetail.memberImport.fatalErrorCount }}
更新: {{ 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.value }}
{{ card.label }}
運用サマリー
現在の live メニューに沿って、必要な状況だけを整理しています。
{{ panel.summary }}
運用キュー
今の仕様で次に手を入れるべき項目を並べています。
{{ item.summary }}
テナント管理
詳細編集は tenant-management に集約し、dashboard は状況把握に寄せています。
- 表示テナント数
- {{ platformTenantEntries.length }}
- 選択中テナント
- {{ selectedTenant?.tenant?.name || '-' }}
- 直近追加
- {{ platformTenantEntries[platformTenantEntries.length - 1]?.tenant?.name || '-' }}
{{ operatorAccessSummary.tenantOwnerCount }}
責任者
{{ operatorAccessSummary.tenantStaffCount }}
担当者
{{ operatorAccessSummary.assignmentCount }}
店舗割当
{{ operatorAccessSummary.grantCount }}
個別権限
担当者アカウント作成
運用方針
テナント担当者は店舗割当だけでは操作権限を持たず、必要な機能だけを追加で開放します。
売上や監査ログは明示 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 }}
- {{ metric }}
{{ selectedMember.fullName }}
{{ selectedMember.email || selectedMember.phone || '連絡先未登録' }}
基本情報
- 電話
- {{ selectedMember.phone || '-' }}
- オンボード
- {{ formatDateTime(selectedMember.onboardedAt) }}
- プロフィール連携
- {{ selectedMember.profile?.displayName || '未連携' }}
- プロフィール状態
- {{ translateStatus(selectedMember.profile?.status) }}
- 会員ID
- {{ selectedMember.id }}
- 更新日時
- {{ formatDateTime(selectedMember.updatedAt) }}
問い合わせ即応
{{ item.summary }}
契約プラン
{{ formatCurrency(subscription.plan.currency, subscription.plan.priceCents) }} / {{ subscription.plan.billingInterval }}
店舗アクセス
個別権限
SESAME / 解錠履歴
{{ request.sesameDevice.nickname || request.sesameDevice.deviceUuid }}
監査ログ
{{ log.actorProfile?.displayName || translateRole(log.actorRole) || 'システム' }}
{{ candyhouseAccount?.planName || '-' }}
CandyHouse 契約
{{ candyhouseSummary.latestEstimatedApiRequestCount }}
{{ formatMonth(candyhouseSummary.latestSnapshotMonth) }} API 推計
{{ candyhouseSummary.hubCount }} / {{ candyhouseSummary.deviceCount }}
Hub3 / デバイス
{{ candyhouseSummary.offlineDeviceCount }}
停止中デバイス
契約サマリー
Biz 会社アカウント席数と API 制約をテナント単位で管理します。
- 契約モード
- {{ candyhouseAccount.contractMode }}
- プラン
- {{ candyhouseAccount.planName }} / {{ candyhouseAccount.planCode }}
- Biz ユーザー上限
- {{ candyhouseAccount.bizUserLimit ?? '-' }}
- 月次 API 上限
- {{ candyhouseAccount.apiRequestLimitMonthly ?? '-' }}
- Hub3 必須
- {{ candyhouseAccount.hub3Required ? '必須' : '任意' }}
- 更新日時
- {{ formatDateTime(candyhouseAccount.updatedAt) }}
- 請求開始
- {{ formatDateTime(candyhouseAccount.billingStartedAt) }}
- 外部参照
- {{ candyhouseAccount.externalAccountReference || '-' }}
{{ candyhouseAccount.notes }}
月次利用量
取得日時: {{ formatDateTime(snapshot.capturedAt) }}
Hub3 一覧
{{ 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) }}
|
検証ページ
API 設定
所属テナント
{{ tenant.tenant.name }}
{{ tenant.tenant.slug }}
会員一覧
会員詳細
{{ selectedMember.fullName }}
{{ selectedMember.email || 'メール未登録' }}
- 電話
- {{ selectedMember.phone || '-' }}
- オンボード
- {{ formatDateTime(selectedMember.onboardedAt) }}
- Profile 連携
- {{ selectedMember.profile?.displayName || '未連携' }}
- Profile 状態
- {{ selectedMember.profile?.status || '-' }}
- Member ID
- {{ selectedMember.id }}
- 更新日時
- {{ formatDateTime(selectedMember.updatedAt) }}
契約プラン
{{ formatCurrency(subscription.plan.currency, subscription.plan.priceCents) }} / {{ subscription.plan.billingInterval }}
店舗アクセス
Access Permissions
SESAME / Unlock History
{{ request.sesameDevice.nickname || request.sesameDevice.deviceUuid }}
監査ログ
{{ log.actorProfile?.displayName || log.actorRole || 'system' }}
SESAME Test Unlock
API Response
{{ sesameOutput }}
Profile JSON
{{ profileJson }}
Member Detail JSON
{{ memberDetailJson }}
Activity
{{ activityLog }}