Add prompt_two.md

This commit is contained in:
Ghassan Yusuf 2025-12-19 22:41:00 +03:00
parent 7a31ccd2d6
commit ed7bf7790b

83
prompt_two.md Normal file
View File

@ -0,0 +1,83 @@
Understood. I have integrated your specific requirements—**Multi-tenancy**, **Laravel Blade**, **Bootstrap**, and the **Club Marketplace** model—into a singular, highly efficient "Master Prompt."
This prompt is designed to guide an AI developer (or me, if you want to proceed) to build the entire platform with clean logic and consistent styling.
---
# Master Project Prompt: Club Hub Marketplace
## 1. Core Objective
Build a **Multi-tenant SaaS Marketplace** where various sports clubs (like "Torox") can host their own management systems.
* **Tech Stack:** Laravel (PHP 8+), MySQL, **Laravel Blade Templates**, and **Bootstrap 5**.
* **Frontend Philosophy:** No SPAs (Vue/React). Use server-side rendering with Blade for speed and simplicity. Use **Bootstrap** for all UI components.
* **Multi-Tenancy:** Implement a "Single Database" approach where every entity (except global users/clubs) belongs to a `club_id`.
---
## 2. Enhanced Database Schema (Multi-Tenant)
### Core Multi-Tenant Structure
* **clubs:** `id`, `name`, `slug` (unique), `logo_path`, `cover_image`, `description`, `address`, `owner_id` (FK to users), `settings` (JSON for 'pay_later' toggle), `is_active`, `timestamps`.
* **Trait Implementation:** Create a `BelongsToClub` trait. This trait must apply a **Global Scope** to filter queries by `club_id` and automatically assign the `club_id` when creating records.
### Updated Tables (All must include `club_id`)
* **users:** Standard fields + `role` ('super_admin', 'club_admin', 'customer', 'trainer').
* **packages:** Name, price, duration, type (fixed/flexible), restrictions (age/gender), and `club_id`.
* **activities & schedules:** Linked to `club_id`.
* **subscriptions & payments:** Linked to `user_id`, `package_id`, and `club_id`.
* **family_relation_history:** Track parent/child links within a club context.
---
## 3. Key Feature Implementation (Blade + Bootstrap)
### A. The Three-Tier Interface
1. **Marketplace Landing:** A Bootstrap-styled homepage listing all clubs.
2. **Club Public Profile:** `/club/{slug}`. A showcase page for each club showing their specific packages and a "Join" button.
3. **Tenant Dashboard:** A private area for Club Admins to manage *their* members, schedules, and verify payments.
### B. User & Family Management
* **Auth:** Dual login (Email or Mobile).
* **Sub-Accounts:** Customers can create "Child" accounts (no credentials).
* **Adoption Flow:** Customers can "Adopt" an existing user via a confirmation request.
* **Promotion:** Convert a child account to an independent user by adding email/password.
### C. Enrollment & "Pay Later" Logic
* **Logic:** Check `club->settings['pay_later']`.
* **Enabled:** Subscription = `active`, Payment = `pending_payment`.
* **Disabled:** User must upload a Bootstrap-styled file input (Proof of Payment). Status = `pending_verification`.
* **Admin Verification:** A "Verification Queue" view where admins view the `proof_image_path` and approve/reject with notes.
### D. Booking System
* For **Flexible** packages: Ensure `sessions_remaining > 0` and `schedule->capacity > 0`.
* Use a Bootstrap-themed calendar or list view for members to book slots.
---
## 4. Automation & Logging
* **Daily Reminders:** A Laravel Command `club:remind-unpaid` to notify users across all clubs who have `unpaid` payment statuses.
* **Action Logging:** A Trait/Middleware to log all interactions (Logins, Bookings, Payments) into `user_action_logs` with a JSON payload of the changes.
---
## 5. Implementation Steps for AI
1. **Base Setup:** Install Laravel + **Bootstrap**.
2. **Tenancy:** Create `Club` model and the `BelongsToClub` trait.
3. **Migrations:** Build the database according to the Multi-Tenant schema.
4. **Blade Layouts:** Create a master Bootstrap layout with a sidebar for admins and a navbar for customers.
5. **Routes:** Define Marketplace routes, Club Profile routes, and Dashboard routes.
6. **Controllers:** Implement the logic for Family, Payments, and Bookings.
**Would you like me to start by writing the `Club` model, the `BelongsToClub` trait, and the first migration to set up the multi-tenant foundation?**