SoloptiLink AI(SoloptiLinkAI)公式ロゴSoloptiLinkAI
📅
デプロイ済みサービス業全般(サロン・クリニック・教室・施設予約)

汎用予約システム

リソース×サービス×時間枠の三軸をダブルブッキング構造防止で統合管理

約15分
開発期間
3ロール
ロール数
9モデル
モデル数
300件(過去30日〜未来14日)
予約件数

実際に触ってみる

デモアカウント

運営管理者demo@soloptilink.comPW: demo1234
受付・予約担当staff@soloptilink.comPW: demo1234
お客様customer@soloptilink.comPW: demo1234

概要

「美容室の予約システムを作って」「クリニックの予約・カルテを統合したい」「会議室や設備のレンタルを管理したい」と一言伝えるだけで構築できる汎用予約システムが PostgreSQL + 認証つきで稼働中。リソース(RES-XXXX 形式)・サービス(SVC-XXXX)・顧客(CST-XXXX)・予約(RSV-XXXX)・予約明細(RSI-XXXX)・支払(PAY-XXXX)はすべて Serializable トランザクションで自動採番。予約は pending → confirmed → checked_in → completed のステートマシンで管理され、canceled/no_show は終端かつ locked=true により状態変更がサーバー側で禁止されます(飛び越し遷移も canTransition で拒否)。同一リソース・同一時刻のダブルブッキングは @@unique([resourceId, slotAt]) の DB-level 一意制約と API 側の事前チェックによる二重防御で構造的に防止し、衝突時は 409「この時間帯は既に予約されています」を返却。加えてリソースごとに曜日別営業時間(ResourceSchedule)を持ち、営業時間外・休業日の予約は isWithinBusinessHours がサーバー側で拒否します。キャンセルポリシーは standard24h(24h 前まで無料/当日 50%)/strict(72h 前 50%/当日 100%)/flex(いつでも無料)の 3 種類を予約単位で選択でき、computeCancelFee がスロット時刻と現在時刻からキャンセル料をサーバー側で再計算。支払(PAY)は paid(実支払)/refunded(返金)/pending(保留)を区別し、completed 予約は全額・canceled 予約は再計算したキャンセル料・confirmed 予約は 30% の予約金(deposit)が記録され、支払総額・返金総額が予約詳細でリアルタイム集計されます。3 ロール RBAC(運営管理者/受付・予約担当/お客様)で、お客様は自分の予約のみ閲覧でき、リソース・サービス・営業スケジュール・顧客マスタの管理と経営レポート(予約件数/ステータス別内訳/売上/キャンセル率)の閲覧は運営管理者・受付担当のみ、リソースおよびサービスの新規登録は運営管理者のみとサーバー側で権限制御(職務分掌・PFP-046)。全 CRUD 操作に監査ログを標準装備。

搭載機能

3 ロール RBAC(お客様は自分の予約のみ閲覧可・PFP-046 職務分掌)
ダブルブッキング構造防止(@@unique([resourceId, slotAt]) DB-level + API 二重防御 → 409)
予約ステートマシン(pending→confirmed→checked_in→completed/canceled・no_show)
完了・キャンセル後 locked=true による不変保護(飛び越し遷移も canTransition で拒否)
曜日別営業時間(ResourceSchedule)で時間外・休業日の予約を拒否
キャンセルポリシー 3 種(standard24h/strict/flex)を computeCancelFee で自動計算
支払ライフサイクル(paid/refunded/pending)と予約金 30% 自動記録
自動採番(RES/SVC/CST/RSV/RSI/PAY をすべて Serializable トランザクションで)
経営レポート(予約件数/ステータス別内訳/売上/キャンセル率)+監査ログ標準装備

技術スタック

Next.js 14.2.18TypeScriptPrisma 5.22.0PostgreSQLTailwind CSSNextAuth 4.24.11Zod

同じようなシステムが欲しい?

SoloptiLinkAIなら一言で作れます

資料をダウンロード