コンテンツにスキップ

オーナー登録フロー

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 登録情報一覧

登録フローを通じて ownersparking_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