オーナー登録フロー¶
smooth-owner は Firebase Authentication を使用。Google または Apple アカウントでログインすると自動的に認証される。初回ログイン後は3ステップのオンボーディングが必須。
全体フロー¶
① 認証
flowchart LR
A[smooth-ownerにアクセス] --> B[Google / Apple でログイン]
B --> F{初回?}
F -- いいえ --> L[ダッシュボード]
F -- はい --> G[オンボーディングへ]
② オンボーディング(初回のみ)
flowchart LR
G[基本情報入力] --> H{法人?}
H -- はい --> I[会社情報入力] --> J
H -- いいえ --> J[Stripe Connect 設定]
J --> K[駐車場を登録]
K --> L[管理者審査・承認]
L --> M[ダッシュボードで運用開始]
各ステップの詳細¶
| ステップ | 登録内容 | 利用場面 |
|---|---|---|
| 1. 基本情報 | ・個人 or 法人の選択 ・氏名 ・電話番号 |
オーナープロフィールの識別・連絡先 |
| 2. 会社情報(法人のみ) | ・会社名 ・代表者名 ・担当者名 |
法人オーナーの請求・契約情報 |
| 3. Stripe Connect | ・銀行口座情報 ・本人確認書類 |
駐車料金の売上受け取り。完了しないとダッシュボード不可 |
| 4. 駐車場登録 | ・駐車場名・住所・緯度経度 ・スポット数・料金・無料時間・高さ制限など |
管理者審査後に一般公開・SmoothBox 設置で運用開始 |
認証フロー詳細¶
sequenceDiagram
participant Owner as オーナー
participant Firebase as Firebase Auth
participant App as smooth-owner
participant API as バックエンド
Owner->>App: Google / Apple でログインをクリック
App->>Firebase: Firebase popup サインイン
Owner->>Firebase: Google / Apple アカウントで認証
Firebase-->>App: Firebase ID Token を返す
App->>API: ID Token を送信(Server Action)
API->>Firebase: ID Token を検証
API->>API: ユーザーを特定 or 新規作成
API-->>App: JWT(アクセストークン + リフレッシュトークン)
App->>App: HTTP-only Cookie にトークンを保存
App->>Owner: オンボーディング or ダッシュボードへ遷移
DB 登録情報一覧¶
登録フローを通じて owners・parking_lots テーブルに以下の情報が保存される。
owners テーブル¶
| フィールド | 内容 | 登録タイミング |
|---|---|---|
firebase_uid |
Firebase ユーザー ID | Firebase 認証時(自動) |
email |
メールアドレス | Firebase 認証時(自動) |
owner_type |
individual / corporation |
基本情報入力 |
name |
氏名 | 基本情報入力 |
phone |
電話番号 | 基本情報入力 |
company_name |
会社名(法人のみ) | 会社情報入力 |
stripe_account_id |
Stripe Connect アカウント ID | Stripe Connect 設定時(自動) |
parking_lots テーブル¶
| フィールド | 内容 |
|---|---|
name |
駐車場名 |
address |
住所 |
lat / lng |
緯度・経度 |
total_spots |
総スポット数 |
hourly_rate |
時間料金(円/時) |
daily_max |
日最大料金(円) |
free_minutes |
無料時間(分) |
height_limit_cm |
高さ制限(cm) |
is_24h |
24時間営業フラグ |
status |
pending / approved |