diff --git a/prompt_two.md b/prompt_two.md new file mode 100644 index 0000000..65eff1f --- /dev/null +++ b/prompt_two.md @@ -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?** \ No newline at end of file