遊艇租賃市場後端範本
供租賃操作的用戶、船隻、列表、預訂和船員指派
一個適合生產的 遊艇租賃市場後端 在 Back4app,包含用戶、船隻、列表、季節定價、預訂和船員指派工作流程。包括 ER 圖、數據字典、JSON 架構、API 沙盒及一個 AI 代理 提示以快速啟動。
包租後端摘要
此模板為您提供了一個遊艇包租後端,包含使用者、船隻、清單、季節定價、預訂和船員分配,讓操作員能夠更快地協調艦隊供應、客戶預訂和船員覆蓋。
- 船隻清單結構 — 將每個船隻建模為名稱、類型、容量、母港和操作員,然後通過清單發布它。
- 季節定價規則 — 在季節定價中存儲季節性費率,以便在每個清單中明確顯示旺季、肩季和靈活定價窗口。
- 船員預訂工作流程 — 根據船長、廚師、服務員和甲板工的預訂記錄跟踪船員分配行。
- 市場可見性 — 使用 Back4app 查詢和 Live Queries 以保持已發布的列表行、季節定價窗口和預訂狀態的最新。
理解遊艇租賃市場後端
季節性對遊艇租賃市場的影響很大;沒有歷史數據,無法預測需求、人員配置或閒置庫存中佔用的資金。詳細資訊不是可選的。使用 Back4app 上的船舶、列表、季節定價、預訂和船員分配來編碼遊艇租賃市場的可用性、定價鉤子和履行記錄,形成一個統一的後端。該架構涵蓋用戶(用戶名、電子郵件、密碼、角色、顯示名)、船舶(名稱、類型、容量、母港、運營商、是否啟用)、列表(船舶、標題、描述、狀態、基本貨幣、特色圖片URL、運營商)、季節定價(列表、季節名稱、開始日期、結束日期、每晚費率、押金金額、是否靈活)、預訂(列表、客人、入住日期、退房日期、客人數、狀態、總價格、特殊要求)和船員分配(預訂、船員姓名、角色、班次開始、班次結束、狀態),並內置身份驗證和市場工作流程。連接您首選的前端,快速發佈。
最佳用途:
遊艇租賃市場:後端快照
遊艇租賃市場不僅僅是關於速度;而是當有人問「給我看你怎麼知道這是真的。」時的防禦能力。
該中心是從 curiOSity 到關於 Vessel、Listing 和 SeasonalPricing 清晰的最快路徑,而無需打開五個不同的文檔。
租船市場功能
此中心中的每張技術卡片都使用相同的遊艇包租架構,包括用戶、船隻、列表、季節性定價、預訂和船員分配。
船舶紀錄和租賃規格
船舶儲存名稱、類型、容量、母港、操作者及是否啟用。
即時租賃列表
列表將船舶鏈接到標題、描述、狀態、基礎貨幣、主圖像網址和操作者。
季節性定價窗口
季節定價跟蹤季節名稱、開始日期、結束日期、每晚費用、押金金額及是否靈活。
船員分配管理
CrewAssignment 會記錄預訂、船員姓名、角色、班次開始、班次結束和狀態。
客人預訂請求
預訂會保留列表、客人、入住日期、退房日期、客人人數、狀態、總價格和特殊請求。
為什麼選擇 Back4app 進行遊艇租賃操作?
Back4app 為船隻、價格、預訂和船員提供市場原始功能,讓您的團隊可以專注於遊艇供應和客戶需求,而不必關注基礎設施。
- •清單和船隻控制: 船隻和清單類別將租船準備好的詳細資訊、可見性和特色狀態集中於一處。
- •無需猜測的季節性定價: 季節性定價儲存日期範圍內的每晚費率值,讓操作員能夠精準設置夏季和假期價格。
- •與預訂的船員協調: 船員指派將預訂與船員名稱、角色、班次開始和班次結束綁定,這使得船長和服務員的排班管理更為簡便。
迅速構建和迭代租船市場工作流程,透過每個平台的一個後端合約。
包租市場的好處
一個幫助經紀人、業主和運營商從詢問過渡到預訂的遊艇包租後端,減少了摩擦。
更快的上架啟動
從船隻和上架類別開始,而不是從頭開始建立包租庫存流程。
定價保持明確
使用 SeasonalPricing 字段,如 seasonName、startDate、endDate、nightlyRate 和 depositAmount,讓定價決策容易審查。
船員排班保持可見
CrewAssignment 將預訂、角色、班次開始和班次結束連接到每個包租,幫助運營商避免重疊。
一個模型中的市場操作
在需求、定價和可用性需要單一視圖時,可以一起查詢預訂、上架和船隻。
跨通道 API 交付
REST、GraphQL 和 SDK 接入使得支持經紀人門戶、移動應用和管理工具變得簡單易行。
AI 協助啟動
使用一個結構化的提示快速生成後端支架和集成指導。
準備好啟動您的遊艇租賃市場了嗎?
讓 Back4app AI 代理為您的遊艇租賃後端搭建框架,並從一個提示中生成船隻、定價、預訂和船員工作流程。
免費開始 — 每月 50 次 AI 代理提示,無需信用卡
技術堆疊
此遊艇租賃市場後端模板中的所有內容。
租船實體圖
船租市場結構的實體關係模型。
涵蓋遊艇船舶、租船列表、季節性費率、預訂和船員分配的架構。
查看圖表來源
erDiagram
User ||--o{ Vessel : "operator"
User ||--o{ Listing : "operator"
User ||--o{ Booking : "guest"
Vessel ||--o{ Listing : "vessel"
Listing ||--o{ SeasonalPricing : "listing"
Listing ||--o{ Booking : "listing"
Booking ||--o{ CrewAssignment : "booking"
User {
String objectId PK
String username
String email
String password
String role
String displayName
Date createdAt
Date updatedAt
}
Vessel {
String objectId PK
String name
String type
Number capacity
String homePort
String operatorId FK
Boolean isActive
Date createdAt
Date updatedAt
}
Listing {
String objectId PK
String vesselId FK
String title
String description
String status
String baseCurrency
String featuredImageUrl
String operatorId FK
Date createdAt
Date updatedAt
}
SeasonalPricing {
String objectId PK
String listingId FK
String seasonName
Date startDate
Date endDate
Number nightlyRate
Number depositAmount
Boolean isFlexible
Date createdAt
Date updatedAt
}
Booking {
String objectId PK
String listingId FK
String guestId FK
Date checkInDate
Date checkOutDate
Number guestCount
String status
Number totalPrice
String specialRequests
Date createdAt
Date updatedAt
}
CrewAssignment {
String objectId PK
String bookingId FK
String crewMemberName
String role
Date shiftStart
Date shiftEnd
String status
Date createdAt
Date updatedAt
}
租船整合流程
登錄、船舶列表、季節性定價更新、預訂請求和船員排程的典型運行流程。
查看圖表來源
sequenceDiagram
participant User
participant YachtCharterMarketplaceApp as Yacht Charter Marketplace App
participant Back4app as Back4app Cloud
User->>YachtCharterMarketplaceApp: Sign in as buyer or operator
YachtCharterMarketplaceApp->>Back4app: POST /login
Back4app-->>YachtCharterMarketplaceApp: Session token
User->>YachtCharterMarketplaceApp: Browse published vessel listings
YachtCharterMarketplaceApp->>Back4app: GET /classes/Listing?where={"status":"published"}
Back4app-->>YachtCharterMarketplaceApp: Listing rows with vessel pointers
User->>YachtCharterMarketplaceApp: Review seasonal pricing for a listing
YachtCharterMarketplaceApp->>Back4app: GET /classes/SeasonalPricing?where={"listing":{"__type":"Pointer","className":"Listing","objectId":"LISTING_ID"}}
Back4app-->>YachtCharterMarketplaceApp: SeasonalPricing rows
User->>YachtCharterMarketplaceApp: Create a booking request and crew plan
YachtCharterMarketplaceApp->>Back4app: POST /classes/Booking
Back4app-->>YachtCharterMarketplaceApp: Booking objectId
YachtCharterMarketplaceApp->>Back4app: POST /classes/CrewAssignment
Back4app-->>YachtCharterMarketplaceApp: CrewAssignment objectId
YachtCharterMarketplaceApp->>Back4app: Subscribe to live booking updates
Back4app-->>YachtCharterMarketplaceApp: Booking status changes實地指南
遊艇租賃市場架構中每個類別的完整實地級別參考。
| 欄位 | 類型 | 描述 | 必要 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自動 |
| username | String | Account username for sign in | |
| String | Primary email address for the marketplace account | ||
| password | String | Hashed password (write-only) | |
| role | String | Account role such as buyer, seller, or operator | |
| displayName | String | Public name shown in charter and fleet workflows | — |
| createdAt | Date | Auto-generated creation timestamp | 自動 |
| updatedAt | Date | Auto-generated last-update timestamp | 自動 |
8 欄位在 User
包租數據的訪問控制
ACL 和 CLP 策略如何保障用戶、船隻、列表、價格、預訂和船員分配的安全。
業主控制的包租庫存
只有業主或經紀人可以為他們的船隊創建或更新船隻和列表記錄。
範圍定價變更
季節性定價更新應限制為授權操作員,以便夜間費率變更可追蹤。
預訂及船員存取邊界
預訂和船員分配的讀取應限制於相關的經紀人、擁有者和操作員角色。
JSON Schema
原始 JSON 架構定義,準備複製到 Back4app 或用作實施參考。
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"displayName": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Vessel",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"type": {
"type": "String",
"required": true
},
"capacity": {
"type": "Number",
"required": true
},
"homePort": {
"type": "String",
"required": true
},
"operator": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"isActive": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Listing",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"vessel": {
"type": "Pointer",
"required": true,
"targetClass": "Vessel"
},
"title": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"baseCurrency": {
"type": "String",
"required": true
},
"featuredImageUrl": {
"type": "String",
"required": false
},
"operator": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SeasonalPricing",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"listing": {
"type": "Pointer",
"required": true,
"targetClass": "Listing"
},
"seasonName": {
"type": "String",
"required": true
},
"startDate": {
"type": "Date",
"required": true
},
"endDate": {
"type": "Date",
"required": true
},
"nightlyRate": {
"type": "Number",
"required": true
},
"depositAmount": {
"type": "Number",
"required": false
},
"isFlexible": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Booking",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"listing": {
"type": "Pointer",
"required": true,
"targetClass": "Listing"
},
"guest": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"checkInDate": {
"type": "Date",
"required": true
},
"checkOutDate": {
"type": "Date",
"required": true
},
"guestCount": {
"type": "Number",
"required": true
},
"status": {
"type": "String",
"required": true
},
"totalPrice": {
"type": "Number",
"required": true
},
"specialRequests": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CrewAssignment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"booking": {
"type": "Pointer",
"required": true,
"targetClass": "Booking"
},
"crewMemberName": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"shiftStart": {
"type": "Date",
"required": true
},
"shiftEnd": {
"type": "Date",
"required": true
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}AI 代理建構提示
使用 Back4app AI 代理從這個模板生成一個真正的遊艇租賃市場應用,包括前端、後端、身份驗證、船隻、定價、預訂和船員流程。
為遊艇租賃市場創建一個安全的 Back4app 後端,具有以下確切的架構和市場行為。 架構: 1. 用戶(使用 Back4app 內建):用戶名,電子郵件,密碼,角色,顯示名稱。 2. 船隻:名稱,類型,容量,母港,操作者(用戶的指標),是否啟用。 3. 列表:船隻(船隻的指標),標題,描述,狀態,基礎貨幣,特色圖片網址,操作者(用戶的指標)。 4. 季節定價:列表(列表的指標),季節名稱,開始日期,結束日期,每晚費用,押金金額,是否靈活。 5. 預訂:列表(列表的指標),客人(用戶的指標),入住日期,退房日期,客人數,狀態,總價格,特殊要求。 6. 船員指派:預訂(預訂的指標),船員姓名,角色,班次開始,班次結束,狀態。 安全性: - 操作者可以創建和編輯自己的船隻、列表、季節定價和船員指派記錄。 - 買家可以創建預訂請求並查看自己的預訂。 - 只有列表的操作者可以暫停或發布列表。 - 船員指派記錄必須連結到真實的預訂。 行為: - 瀏覽已發佈的列表,比較船隻詳細信息,閱讀季節定價,請求租賃,並為確認的預訂指派船員。 - 支持登錄、註冊、預訂管理、艦隊管理和定價管理。 交付: - 帶有架構、CLP、ACL 和船隻、列表、季節費率、預訂和船員指派示例市場數據的 Back4app 應用。
按下面的按鈕以使用此模板提示預填打開代理。
這是沒有技術後綴的基本提示。您可以在之後調整生成的前端堆疊。
API 沙盒
嘗試在遊艇租賃市場架構上使用 REST 和 GraphQL 端點。響應使用模擬數據,並不需要 Back4app 帳戶。
使用與此模板相同的架構。
選擇你的技術棧
展開每張卡片以查看如何將 Vessel、Listing 和 SeasonalPricing 與您選擇的技術堆疊整合。
Flutter 游艇租賃市場後端
React 游艇租賃市場後端
React 原生 游艇租賃市場後端
Next.js 游艇租賃市場後端
JavaScript 游艇租賃市場後端
Android 游艇租賃市場後端
iOS 游艇租賃市場後端
Vue 游艇租賃市場後端
Angular 游艇租賃市場後端
GraphQL 游艇租賃市場後端
REST API 游艇租賃市場後端
PHP 游艇租賃市場後端
.NET 游艇租賃市場後端
每項技術所獲得的內容
每個堆疊都使用相同的遊艇租賃後端架構和 API 合約。
統一的遊艇租賃數據結構
使用一個一致的架構來管理艦艇、列表、季節性定價、預訂和船員分配。
租賃市場流程支援
發布刊登、更新季節性價格並從單一後端處理訂單請求。
船員排班可見性
追蹤船員角色和班次時間,以便操作與每個包機請求保持一致。
靈活的市場所需角色
在不改變核心模型的情況下定義買方、賣方和操作員的體驗。
REST/GraphQL 為包機應用程序提供的 API
將網頁、移動和管理界面與相同的數據合約整合。
遊艇租賃堆疊比較
比較所有支援技術的設置速度、SDK 風格和 AI 支援。
| 框架 | 設置時間 | 市場優勢 | SDK 類型 | AI 支援 |
|---|---|---|---|---|
| 約 5 分鐘 | 單一代碼庫用於手機和網頁的遊艇租約預訂。 | 類型化 SDK | 完整 | |
| 少於5分鐘 | 快速的經紀人儀表板,用於船隻列表。 | 已類型化的SDK | 完整 | |
| ~3–7分鐘 | 跨平台的手機應用程式,用於租約操作。 | 已類型化的SDK | 完整 | |
| 快速(5分鐘)設置 | 伺服器渲染的市場平台,用於遊艇租約。 | 已類型化的SDK | 完整 | |
| ~3–5分鐘 | 為船舶列表提供輕量級的網頁整合。 | 已輸入的SDK | 完整 | |
| 大約5分鐘 | 適用於包租代理的原生Android應用程序。 | 已輸入的SDK | 完整 | |
| 少於5分鐘 | 適用於客戶預訂行程的原生iOS應用程序。 | 已輸入的SDK | 完整 | |
| ~3–7分鐘 | React 具有列出和定價更新的網頁 UI。 | 輸入型 SDK | 完整 | |
| 快速 (5 分鐘) 設定 | 企業管理應用程式,用於排班。 | 輸入型 SDK | 完整 | |
| 少於 2 分鐘 | 靈活的 GraphQL API 用於嵌套船隻和定價查詢。 | GraphQL API | 完整 | |
| 快速 (2 分鐘) 設定 | REST API 集成至市場端點。 | REST API | 完整 | |
| 約 3 分鐘 | 服務端 PHP 後端用於租船操作。 | REST API | 完整 | |
| 約 3–7 分鐘 | .NET 後端用於經紀人和操作工具。 | 類型化 SDK | 完整 |
設置時間反映了從項目啟動到使用此模板架構進行第一次船隻或列表查詢的預期持續時間。
遊艇租賃問題
有關使用此模板建立遊艇租賃市場後端的常見問題。