駐車セッション¶
駐車セッションは smooth の中核となる機能です。ドライバーが駐車場に入場してから出場・決済が完了するまでの一連のライフサイクルを管理します。
セッションのステータス遷移¶
stateDiagram-v2
[*] --> pending_entry: CASE A: 同一プレートを初回認識
pending_entry --> active: 同一プレートを3回連続認識で入庫確定
active --> pending_exit: CASE C: OCR失敗を3回連続検知
pending_exit --> active: CASE B: 同じプレートを再検知(誤検知キャンセル)
pending_exit --> completed: 5分間プレート未検知で出庫確定 → 決済実行
active --> completed: CASE B: 別プレートを3回連続検知(強制完了)
pending_entry --> cancelled: 異常系(未登録プレートなど)
completed --> [*]
cancelled --> [*]
ステータスの説明¶
| ステータス | 説明 |
|---|---|
pending_entry |
入場を検知したが、同一プレートの3回連続認識待ち |
active |
駐車中(入場確定・出場待ち) |
pending_exit |
OCR未認識が3回連続し、出庫確認中 |
completed |
出庫確定・決済完了・セッション終了 |
cancelled |
キャンセル(未登録プレート・異常系など) |
入庫・出庫の判定ロジック¶
入庫確定(pending_entry → active)¶
SmoothBox から画像が送られるたびにOCRを実行し、同一ナンバープレートが3回連続認識された時点で入庫確定(active)となります。
出庫確認フロー(active → pending_exit → completed)¶
- OCRでプレートが読めない状態が3回連続続くと
pending_exitに遷移 pending_exit移行後、5分間プレートが見えなければ出庫確定- 出庫確定時の
exit_timeは決済完了時刻ではなく、最初にプレートが見えなくなった時刻(exit_check_started_at)が使われる
pending_exit中に同じプレートが再検知された場合はactiveに復帰します(誤出庫判定のキャンセル)。
別プレート検知による強制完了(CASE B)¶
駐車中(active)に異なるプレートが3回連続検知されると、「車が入れ替わった」と判定し、前の車のセッションを強制完了させます。その後、新しいプレートで入庫フロー(CASE A)が始まります。
この動作は、カメラの視野角が広く隣接スポットの車を誤検知する場合に誤った強制完了を引き起こすことがあります。
料金計算¶
- 滞在時間(
entry_time〜exit_check_started_at)をもとに計算 - 駐車場ごとの料金設定に従う(時間帯別料金・日最大料金・無料時間)
- クーポンが適用されている場合は割引後の金額
関連API¶
| エンドポイント | 説明 |
|---|---|
GET /sessions |
ログインユーザーのセッション一覧 |
GET /sessions/active |
現在のアクティブセッション |
GET /sessions/{sessionId} |
セッション詳細 |
GET /parking-owner/sessions |
オーナー向けセッション一覧 |
GET /parking-owner/sessions/parking-status |
リアルタイム稼働状況 |