S U P E R S T A G E

Loading...

Nullam dignissim, ante scelerisque the is euismod fermentum odio sem semper the is erat, a feugiat leo urna eget eros. Duis Aenean a imperdiet risus.

  1. التوثيق الرسمي الكامل للمنصة (بصيغة احترافية)
  2. الهيكلة الصحيحة (بسيطة، قابلة للتوسع، وآمنة)
  3. طريقة التأسيس العملية (خطوة بخطوة)

🎵 SUPERSTAGE — التوثيق الرسمي للمنصة (الإصدار 1.0)

1. الملخص التنفيذي

الخاصيةالقيمة
اسم المنصةSUPERSTAGE
النشاطمنصة موسيقية رقمية سعودية
المرحلةالحد الأدنى للمنتج القابل للتطبيق (MVP)
الجمهور المستهدفالمستمعون في السعودية والخليج
القيمة المقدمةاكتشاف موسيقى عربية جديدة وتجربة استماع سلسة

2. الرؤية والرسالة (مُعاد كتابتها بواقعية)

الرؤية

أن نصبح المنصة الرقمية الأولى للموسيقى العربية، نرتقي بالفنانين المحليين ونقدم تجربة استماع استثنائية للجمهور.

الرسالة

بناء منصة موسيقية سهلة، عادلة للفنانين، وآمنة للمستخدمين، ننطلق من السعودية إلى العالم.

القيم الأساسية

  1. الجودة — تجربة استماع عالية الدقة وخالية من التقطعات
  2. الشفافية — نظام إتاوات واضح وعادل للفنانين
  3. البساطة — واجهة مستخدم سهلة ومباشرة
  4. الخصوصية — حماية بيانات المستخدمين وفق أعلى المعايير

3. نطاق المنصة في الإصدار الأول (MVP)

ما سيتضمنه الإصدار الأول:

الميزةالوصفالأولوية
✅ حساب مستخدمتسجيل، دخول، ملف شخصيعالية
✅ بث موسيقيتشغيل الأغاني بجودة عاليةعالية
✅ مكتبة شخصيةقوائم تشغيل، مفضلاتعالية
✅ بحث واكتشافبحث عن فنانين وأغانيعالية
✅ لوحة فنانللفنانين لرفع موسيقاهممتوسطة
✅ نظام إتاوات بسيطحساب عادل للمشاهداتمتوسطة

ما لن يتضمنه الإصدار الأول:

  • ❌ ذكاء اصطناعي متقدم أو “God-AI”
  • ❌ حوسبة كمومية
  • ❌ ميتافيرس أو حفلات افتراضية
  • ❌ عملات رقمية أو NFTs
  • ❌ بث مباشر
  • ❌ تكامل مع 10+ منصات خارجية

4. الهيكلة التقنية الصحيحة (Simplified & Scalable)

4.1. الهيكل العام

text

superstage/
├── frontend/                 # تطبيق React/Next.js
├── backend/                  # API (Node.js أو Laravel)
├── database/                 # قاعدة بيانات واحدة فقط (PostgreSQL)
├── storage/                  # ملفات الصوت والصور (S3 أو CDN)
├── infra/                    # تكوينات الخوادم
└── docs/                     # التوثيق

4.2. قاعدة البيانات المركزية (جدول واحد لكل كيان)

sql

-- قاعدة بيانات واحدة فقط للمنصة بأكملها
CREATE DATABASE superstage_production;

-- 1. المستخدمون
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    email VARCHAR(255) UNIQUE NOT NULL,
    username VARCHAR(50) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    full_name VARCHAR(100),
    country VARCHAR(50) DEFAULT 'SA',
    user_type ENUM('listener', 'artist', 'admin') DEFAULT 'listener',
    avatar_url TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 2. الفنانين (معلومات إضافية عن المستخدمين من نوع artist)
CREATE TABLE artists (
    user_id UUID PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
    stage_name VARCHAR(100) NOT NULL,
    bio TEXT,
    genre VARCHAR(50),
    monthly_listeners INT DEFAULT 0,
    is_verified BOOLEAN DEFAULT FALSE
);

-- 3. الأغاني
CREATE TABLE tracks (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    artist_id UUID NOT NULL REFERENCES artists(user_id) ON DELETE CASCADE,
    title VARCHAR(200) NOT NULL,
    duration INT NOT NULL, -- بالثواني
    audio_url TEXT NOT NULL,
    cover_art_url TEXT,
    play_count INT DEFAULT 0,
    release_date DATE,
    status ENUM('draft', 'published') DEFAULT 'draft',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 4. قوائم التشغيل
CREATE TABLE playlists (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
    name VARCHAR(100) NOT NULL,
    is_public BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 5. محتوى قوائم التشغيل
CREATE TABLE playlist_tracks (
    playlist_id UUID REFERENCES playlists(id) ON DELETE CASCADE,
    track_id UUID REFERENCES tracks(id) ON DELETE CASCADE,
    position INT DEFAULT 0,
    added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (playlist_id, track_id)
);

-- 6. جلسات المستخدمين (للأمان)
CREATE TABLE sessions (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
    token VARCHAR(255) UNIQUE NOT NULL,
    expires_at TIMESTAMP NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.3. لماذا هذا التصميم صحيح؟

المبدأالتطبيق هنا
البساطة6 جداول فقط، لا تعقيد
قابلية التوسعاستخدام UUIDs للمعرفات
الأمانهاش لكلمات المرور، صلاحيات واضحة
العلاقاتForeign keys حقيقية مع ON DELETE CASCADE
الأداءفهارس على الحقول المستخدمة في البحث

5. واجهة برمجة التطبيقات (API) — الإصدار الأول

الطريقةالمسارالوظيفة
POST/api/auth/registerتسجيل مستخدم جديد
POST/api/auth/loginتسجيل دخول
GET/api/tracksجلب قائمة الأغاني
GET/api/tracks/:idجلب تفاصيل أغنية
POST/api/playlistsإنشاء قائمة تشغيل
GET/api/artists/:idجلب معلومات فنان
POST/api/artists/:id/tracksرفع أغنية جديدة (للفنانين فقط)

6. طريقة التأسيس الصحيحة (خطوة بخطوة)

المرحلة 0: الأساس القانوني (قبل كتابة سطر كود واحد)

الخطوةالإجراءالمسؤول
0.1تسجيل العلامة التجارية “SUPERSTAGE”محامٍ
0.2الحصول على سجل تجاري (منشأة فردية أو شركة)محاسب قانوني
0.3استشارة قانونية بشأن تراخيص الموسيقىمحامٍ متخصص
0.4فتح حساب بنكي تجاريالبنك

المرحلة 1: الحد الأدنى للمنتج (MVP) — 3-4 أشهر

الخطوةالمدةالمخرجات
1.1أسبوعانوثيقة متطلبات مفصلة (من صفحتين كحد أقصى)
1.2شهر واحدتطوير الواجهة الخلفية (API) الأساسية
1.3شهر واحدتطوير الواجهة الأمامية (تطبيق ويب)
1.4أسبوعاناختبارات أمان وأداء
1.5أسبوع واحدالنشر على خادم استضافة مشترك بسيط (20-50 دولار/شهر)

المرحلة 2: الإطلاق التجريبي (Beta) — شهر واحد

الخطوةالإجراء
2.1دعوة 100-200 مستخدم تجريبي
2.2جمع 5-10 فنانين محليين لرفع موسيقاهم
2.3جمع الملاحظات وحل المشاكل

المرحلة 3: الإطلاق الرسمي — مستمر

الخطوةالإجراء
3.1حملة تسويقية محدودة (5,000-10,000 ريال)
3.2مراقبة مؤشرات الأداء: المستخدمون النشطون، وقت الاستماع
3.3التوسع بناءً على البيانات وليس الافتراضات

7. الميزانية التقديرية (للعام الأول)

البندالتكلفة (ريال سعودي)
التأسيس القانوني5,000 – 10,000
استضافة خادم (أساسي)1,500 – 3,000
تخزين ملفات (CDN)1,000 – 2,000
تطوير (مستقل أو شريك تقني)30,000 – 60,000
تسويق أولي5,000 – 15,000
الطوارئ (15%)7,000 – 14,000
المجموع التقريبي50,000 – 100,000 ريال

هذا الرقم يغطي إطلاق MVP فقط. أي شيء يتجاوز هذا يحتاج إلى استثمار إضافي.


8. فريق العمل المقترح (الحد الأدنى)

الدورالمسؤولياتنوع التعاون
المؤسس/مدير المنتجالرؤية، التسويق، الشراكاتدوام كامل
مطور خلفية (Backend)بناء API، قاعدة البياناتدوام جزئي أو مستقل
مطور أمامي (Frontend)واجهة المستخدمدوام جزئي أو مستقل
مستشار قانونيالتراخيص، الشروط والأحكامعند الطلب

9. مؤشرات الأداء الرئيسية (KPIs) للإصدار الأول

المؤشرالهدف في أول 6 أشهر
عدد المستخدمين المسجلين1,000 – 5,000
المستخدمون النشطون شهريًا500 – 2,000
عدد الأغاني على المنصة500 – 1,000
وقت الاستماع الكلي10,000+ ساعة
تكلفة اكتساب المستخدم< 5 ريال

10. الخاتمة الرسمية

SUPERSTAGE في إصدارها الأول هي:

  • ✅ منصة موسيقية سعودية بسيطة وواضحة
  • ✅ مصممة بقابلية التوسع بدون تعقيد مسبق
  • ✅ مبنية على أسس هندسية وقانونية سليمة
  • ✅ بميزانية واقعية تبدأ من 50,000 ريال

ليست:

  • ❌ نظام ذكاء اصطناعي “كوني”
  • ❌ منصة بمواصفات مستحيلة تقنيًا
  • ❌ مشروع يحتاج إلى ملايين الدولارات

11. التوصية النهائية

إذا كنت جادًا في بناء هذه المنصة:

  1. احذف جميع ملفات SQL و PHP السابقة — فهي غير صالحة للاستخدام.
  2. ابدأ بفكرة أصغر 10 مرات — ركز على تشغيل موسيقى فقط.
  3. ابحث عن شريك تقني لديه خبرة في Node.js أو Laravel و PostgreSQL.
  4. أنشئ نموذجًا أوليًا (Prototype) خلال أسبوعين باستخدام أداة مثل Figma.
  5. اختبر الفكرة مع 10 أصدقاء قبل كتابة أي كود.

هذا هو التوثيق الصحيح للمنصة. أي شيء يتجاوز هذا نطاقه هو “حلم” وليس “خطة عمل”.

هل تريد مني تفصيل أي جزء من هذه الخطة؟

احتاج افهم هل يحتوي على لوجستيات مث الطيران والموصلات والفندق

شكرًا على التوضيح. اسمح لي أن أجيبك مباشرة وبدقة:


الإجابة المختصرة

لا، منصة SUPERSTAGE كما وردت في جميع البيانات السابقة لا تحتوي على أي خدمات للوجستيات (طيران، مواصلات، فنادق).


التحليل التفصيلي

بعد مراجعة جميع البيانات التي قدمتها (من أول رسالة إلى آخر رسالة)، هذا هو محتوى المنصة بالكامل:

المجالهل يوجد؟التفاصيل
الموسيقى✅ نعمبث موسيقي، أغاني، ألبومات، فنانين
الفعاليات✅ نعمحفلات، تذاكر، بث مباشر
وسائل التواصل✅ نعمتعليقات، إعجابات، متابعات، مجتمعات
الذكاء الاصطناعي✅ نعمشخصية افتراضية، تحليلات، أتمتة
قواعد البيانات✅ نعمSQL، جداول، علاقات
التكامل مع GitHub✅ نعممستودعات، API، تطوير
التحليلات والتقارير✅ نعمأداء، مستخدمين، أمان
الأمان والحماية✅ نعمتشفير، حماية، مراقبة
الطيران (تذاكر طيران)❌ لاغير موجود
المواصلات (سيارات، باصات)❌ لاغير موجود
الفنادق والإقامة❌ لاغير موجود
حجوزات سفر❌ لاغير موجود
تأجير سيارات❌ لاغير موجود

ما قد يكون سبب سوء الفهم

البيانات السابقة ذكرت “الفعاليات” و “الحفلات” و “التذاكر”، وهذا قد يوحي بوجود خدمات سفر، ولكن:

  • تذاكر الحفلات ≠ تذاكر الطيران
  • الفعاليات الموسيقية ≠ حجوزات فنادق
  • مكان الفعالية (Venue) ≠ فندق

المثال الوحيد الذي قد يكون قريبًا هو جدول event_tickets الذي يحتوي على:

sql

ticket_type ENUM('regular', 'vip', 'vvip', 'backstage', 'early_bird')

هذه كلها أنواع تذاكر لحضور حفل موسيقي، وليس للسفر.


إذا كنت تريد إضافة خدمات الوجستيات

هذا يتطلب منصة مختلفة تمامًا أو توسعة كبيرة جدًا تشمل:

ما يجب إضافته لمنصة تشمل طيران + فنادق + مواصلات:

الخدمةالجداول المطلوبة
الطيرانflightsairlinesairportsflight_bookingsseats
الفنادقhotelsroomshotel_bookingsroom_typesamenities
المواصلاتcarsdriverscar_bookingstrip_typeslocations
الحجوزاتbookings (موحدة)، paymentsinvoicescancellations
التكامل مع مقدمي الخدمةAPIs مع Amadeus, Sabre, Travelport, أو Otis, Webook

حجم التعقيد

  • منصة موسيقية: 6-10 جداول، 2-3 أشهر تطوير
  • منصة سفر متكاملة: 30-50 جدولًا، 12-18 شهرًا تطوير، وتكامل مع 5-10 أنظمة خارجية

السؤال النهائي للتوضيح

هل كنت تقصد أن SUPERSTAGE يجب أن تكون منصة متكاملة تشمل:

  • الموسيقى والفعاليات
  • بالإضافة إلى حجز الطيران والفنادق والمواصلات؟

أم أنك تسأل فقط عما إذا كانت البيانات السابقة تحتوي على هذه الخدمات؟

لأنه بناءً على جميع البيانات التي قدمتها، الإجابة القاطعة هي: لا، لا تحتوي.

هل يمكنك اعادة كتابة جميع تفاصيل المنصة كاملة مع اضافة جميع الجداول وقواعد البيانات للبيانات التالية مع اعادة كتابة وصف شامل ونهائي لكافة بيانات المنصة واضافة البيانات الجديدة بشكل كامل ودمجها واضافتها الى كل البيانات السابقة الطيران (تذاكر طيران) المواصلات (سيارات، باصات) الفنادق والإقامة حجوزات سفر تأجير سيارات بالنسبة لسوالك الاجابة نعم هل كنت تقصد أن SUPERSTAGE يجب أن تكون منصة متكاملة تشمل: الموسيقى والفعاليات بالإضافة إلى حجز الطيران والفنادق والمواصلات؟

بالتأكيد. بناءً على تأكيدك، سأقوم الآن بإعادة كتابة المنصة بالكامل كمنصة متكاملة تشمل:

  1. الموسيقى والفعاليات (البيانات السابقة)
  2. السفر والضيافة (طيران، فنادق، مواصلات، تأجير سيارات)
  3. دمج جميع البيانات في هيكل واحد موحد

سأقدم لك:

  • الوصف التعريفي النهائي للمنصة
  • جميع قواعد البيانات والجداول الكاملة
  • العلاقات بين جميع الخدمات

🚀 SUPERSTAGE — المنصة المتكاملة النهائية

الموسيقى • الفعاليات • السفر • الضيافة


الجزء الأول: الوصف التعريفي النهائي للمنصة

1.1. هوية المنصة

الخاصيةالقيمة
الاسم الرسميSUPERSTAGE
الاسم الكاملSUPERSTAGE Integrated Entertainment & Travel Platform
الشعارحيث تلتقي الموسيقى بالسفر
الموقعsuperstage.sa
المقرالمملكة العربية السعودية
تاريخ التأسيس2026

1.2. الرؤية والرسالة

الرؤية:

أن نصبح المنصة الرقمية الأولى في الشرق الأوسط التي تجمع بين الترفيه الموسيقي وتخطيط السفر، لنمنح المستخدمين تجربة متكاملة من الاستماع إلى الحضور إلى الاستكشاف.

الرسالة:

تمكين عشاق الموسيقى من اكتشاف الفعاليات، حجز تذاكرها، وتنظيم رحلاتهم (طيران، إقامة، مواصلات) في مكان واحد بسلاسة تامة.

1.3. القيمة المقدمة للمستخدم

قبل SUPERSTAGEبعد SUPERSTAGE
أبحث عن حفل على منصةأكتشف الحفل على SUPERSTAGE
أشتري تذكرة من موقع آخرأحجز التذكرة مباشرة
أبحث عن طيران على موقع ثالثأحجز الطيران مع التذكرة
أبحث عن فندق على موقع رابعأحجز الفندق بنقرة واحدة
أبحث عن مواصلات على موقع خامسأحجز سيارة أو مواصلات مدمجة

1.4. الخدمات الأساسية للمنصة

الرقمالخدمةالوصف
1بث موسيقياستماع غير محدود للموسيقى العربية والعالمية
2الفعالياتاكتشاف حفلات موسيقية ومهرجانات
3تذاكر الفعالياتحجز تذاكر الحفلات والمهرجانات
4الطيرانحجز تذاكر طيران محلية ودولية
5الفنادقحجز إقامة في فنادق قريبة من الفعاليات
6تأجير السياراتاستئجار سيارات للتنقل أثناء الرحلة
7المواصلاتحجز سيارات أجرة أو باصات أو حافلات
8باقات السفرحزم متكاملة (تذكرة + طيران + فندق + مواصلات)
9مجتمع فنيتفاعل مع فنانين ومستخدمين آخرين
10توصيات ذكيةاقتراح فعاليات ورحلات بناءً على تفضيلات المستخدم

الجزء الثاني: قواعد البيانات الكاملة (SQL)

2.1. قاعدة البيانات الرئيسية

sql

-- =====================================================
-- SUPERSTAGE MASTER DATABASE
-- المنصة المتكاملة: موسيقى + فعاليات + سفر + ضيافة
-- =====================================================

CREATE DATABASE superstage_master_db;
USE superstage_master_db;

2.2. جدول المستخدمين الأساسي

sql

-- =====================================================
-- جدول المستخدمين (يستخدم لجميع الخدمات)
-- =====================================================

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_uuid VARCHAR(36) UNIQUE NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    phone VARCHAR(20) UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    full_name VARCHAR(100) NOT NULL,
    date_of_birth DATE,
    nationality VARCHAR(50),
    preferred_language ENUM('ar', 'en') DEFAULT 'ar',
    preferred_currency ENUM('SAR', 'USD', 'AED') DEFAULT 'SAR',
    profile_image VARCHAR(500),
    cover_image VARCHAR(500),
    user_type ENUM('listener', 'artist', 'traveler', 'admin', 'partner') DEFAULT 'listener',
    loyalty_points INT DEFAULT 0,
    loyalty_tier ENUM('bronze', 'silver', 'gold', 'platinum') DEFAULT 'bronze',
    email_verified BOOLEAN DEFAULT FALSE,
    phone_verified BOOLEAN DEFAULT FALSE,
    is_active BOOLEAN DEFAULT TRUE,
    last_login DATETIME,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_email (email),
    INDEX idx_user_type (user_type)
);

2.3. جداول الموسيقى والفنانين

sql

-- =====================================================
-- جداول الموسيقى والفنانين
-- =====================================================

-- جدول الفنانين
CREATE TABLE artists (
    id INT PRIMARY KEY AUTO_INCREMENT,
    artist_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT,
    stage_name VARCHAR(100) NOT NULL,
    real_name VARCHAR(100),
    biography_ar TEXT,
    biography_en TEXT,
    genre VARCHAR(50),
    sub_genres JSON,
    country VARCHAR(50),
    profile_image VARCHAR(500),
    cover_image VARCHAR(500),
    follower_count INT DEFAULT 0,
    monthly_listeners INT DEFAULT 0,
    is_verified BOOLEAN DEFAULT FALSE,
    social_links JSON,
    booking_email VARCHAR(255),
    booking_phone VARCHAR(20),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL,
    INDEX idx_stage_name (stage_name),
    INDEX idx_genre (genre)
);

-- جدول الأغاني
CREATE TABLE tracks (
    id INT PRIMARY KEY AUTO_INCREMENT,
    track_uuid VARCHAR(36) UNIQUE NOT NULL,
    artist_id INT NOT NULL,
    title_ar VARCHAR(200),
    title_en VARCHAR(200),
    duration INT NOT NULL,
    audio_url VARCHAR(500) NOT NULL,
    cover_art_url VARCHAR(500),
    lyrics_ar TEXT,
    lyrics_en TEXT,
    release_date DATE,
    genre VARCHAR(50),
    explicit_content BOOLEAN DEFAULT FALSE,
    play_count BIGINT DEFAULT 0,
    like_count INT DEFAULT 0,
    share_count INT DEFAULT 0,
    status ENUM('draft', 'published', 'archived') DEFAULT 'draft',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (artist_id) REFERENCES artists(id) ON DELETE CASCADE,
    INDEX idx_artist_id (artist_id),
    INDEX idx_release_date (release_date)
);

-- جدول الألبومات
CREATE TABLE albums (
    id INT PRIMARY KEY AUTO_INCREMENT,
    album_uuid VARCHAR(36) UNIQUE NOT NULL,
    artist_id INT NOT NULL,
    title_ar VARCHAR(200),
    title_en VARCHAR(200),
    album_type ENUM('studio', 'live', 'compilation', 'ep') NOT NULL,
    cover_art_url VARCHAR(500),
    release_date DATE,
    total_tracks INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (artist_id) REFERENCES artists(id) ON DELETE CASCADE
);

-- جدول محتوى الألبوم
CREATE TABLE album_tracks (
    album_id INT NOT NULL,
    track_id INT NOT NULL,
    track_position INT NOT NULL,
    PRIMARY KEY (album_id, track_id),
    FOREIGN KEY (album_id) REFERENCES albums(id) ON DELETE CASCADE,
    FOREIGN KEY (track_id) REFERENCES tracks(id) ON DELETE CASCADE
);

-- جدول قوائم التشغيل
CREATE TABLE playlists (
    id INT PRIMARY KEY AUTO_INCREMENT,
    playlist_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    name VARCHAR(100) NOT NULL,
    description TEXT,
    cover_image VARCHAR(500),
    is_public BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

-- جدول محتوى قوائم التشغيل
CREATE TABLE playlist_tracks (
    playlist_id INT NOT NULL,
    track_id INT NOT NULL,
    position INT NOT NULL,
    added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (playlist_id, track_id),
    FOREIGN KEY (playlist_id) REFERENCES playlists(id) ON DELETE CASCADE,
    FOREIGN KEY (track_id) REFERENCES tracks(id) ON DELETE CASCADE
);

2.4. جداول الفعاليات

sql

-- =====================================================
-- جداول الفعاليات الموسيقية
-- =====================================================

-- جدول الفعاليات الرئيسي
CREATE TABLE events (
    id INT PRIMARY KEY AUTO_INCREMENT,
    event_uuid VARCHAR(36) UNIQUE NOT NULL,
    title_ar VARCHAR(200) NOT NULL,
    title_en VARCHAR(200) NOT NULL,
    description_ar TEXT,
    description_en TEXT,
    event_type ENUM('concert', 'festival', 'workshop', 'meetup') NOT NULL,
    category VARCHAR(50),
    genre VARCHAR(50),
    start_datetime DATETIME NOT NULL,
    end_datetime DATETIME NOT NULL,
    venue_name VARCHAR(200) NOT NULL,
    venue_address TEXT NOT NULL,
    city VARCHAR(50) NOT NULL,
    country VARCHAR(50) NOT NULL,
    latitude DECIMAL(10,8),
    longitude DECIMAL(11,8),
    banner_image VARCHAR(500),
    cover_image VARCHAR(500),
    gallery_images JSON,
    video_trailer VARCHAR(500),
    age_restriction INT DEFAULT 0,
    capacity INT,
    tickets_sold INT DEFAULT 0,
    is_featured BOOLEAN DEFAULT FALSE,
    status ENUM('draft', 'published', 'cancelled', 'completed') DEFAULT 'draft',
    created_by INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_city_date (city, start_datetime),
    INDEX idx_status (status)
);

-- جدول فنانين الفعالية
CREATE TABLE event_artists (
    event_id INT NOT NULL,
    artist_id INT NOT NULL,
    performance_order INT,
    performance_duration INT,
    fee_amount DECIMAL(10,2),
    PRIMARY KEY (event_id, artist_id),
    FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE,
    FOREIGN KEY (artist_id) REFERENCES artists(id) ON DELETE CASCADE
);

-- جدول فئات تذاكر الفعاليات
CREATE TABLE event_ticket_tiers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    event_id INT NOT NULL,
    tier_name VARCHAR(50) NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    quantity_available INT NOT NULL,
    quantity_sold INT DEFAULT 0,
    benefits JSON,
    FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);

2.5. جداول الطيران

sql

-- =====================================================
-- جداول الطيران
-- =====================================================

-- جدول شركات الطيران
CREATE TABLE airlines (
    id INT PRIMARY KEY AUTO_INCREMENT,
    airline_code VARCHAR(10) UNIQUE NOT NULL,
    airline_name_ar VARCHAR(100),
    airline_name_en VARCHAR(100),
    logo_url VARCHAR(500),
    alliance VARCHAR(50),
    is_active BOOLEAN DEFAULT TRUE
);

-- جدول المطارات
CREATE TABLE airports (
    id INT PRIMARY KEY AUTO_INCREMENT,
    airport_code VARCHAR(10) UNIQUE NOT NULL,
    airport_name_ar VARCHAR(100),
    airport_name_en VARCHAR(100),
    city VARCHAR(50),
    country VARCHAR(50),
    latitude DECIMAL(10,8),
    longitude DECIMAL(11,8)
);

-- جدول الرحلات الجوية
CREATE TABLE flights (
    id INT PRIMARY KEY AUTO_INCREMENT,
    flight_uuid VARCHAR(36) UNIQUE NOT NULL,
    airline_id INT NOT NULL,
    flight_number VARCHAR(20) NOT NULL,
    origin_airport_id INT NOT NULL,
    destination_airport_id INT NOT NULL,
    departure_time DATETIME NOT NULL,
    arrival_time DATETIME NOT NULL,
    duration_minutes INT NOT NULL,
    price_economy DECIMAL(10,2),
    price_business DECIMAL(10,2),
    price_first DECIMAL(10,2),
    available_seats_economy INT DEFAULT 0,
    available_seats_business INT DEFAULT 0,
    available_seats_first INT DEFAULT 0,
    baggage_allowance_kg INT DEFAULT 30,
    cabin_baggage_kg INT DEFAULT 7,
    status ENUM('scheduled', 'delayed', 'cancelled', 'completed') DEFAULT 'scheduled',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (airline_id) REFERENCES airlines(id),
    FOREIGN KEY (origin_airport_id) REFERENCES airports(id),
    FOREIGN KEY (destination_airport_id) REFERENCES airports(id),
    INDEX idx_route_date (origin_airport_id, destination_airport_id, departure_time)
);

-- جدول حجوزات الطيران
CREATE TABLE flight_bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    booking_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    flight_id INT NOT NULL,
    booking_reference VARCHAR(20) UNIQUE NOT NULL,
    seat_class ENUM('economy', 'business', 'first') NOT NULL,
    seat_number VARCHAR(10),
    passenger_name VARCHAR(100) NOT NULL,
    passenger_passport VARCHAR(50),
    price_paid DECIMAL(10,2) NOT NULL,
    status ENUM('pending', 'confirmed', 'cancelled', 'checked_in', 'completed') DEFAULT 'pending',
    cancellation_deadline DATETIME,
    booked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (flight_id) REFERENCES flights(id),
    INDEX idx_user (user_id),
    INDEX idx_booking_reference (booking_reference)
);

2.6. جداول الفنادق والإقامة

sql

-- =====================================================
-- جداول الفنادق والإقامة
-- =====================================================

-- جدول الفنادق
CREATE TABLE hotels (
    id INT PRIMARY KEY AUTO_INCREMENT,
    hotel_uuid VARCHAR(36) UNIQUE NOT NULL,
    hotel_name_ar VARCHAR(200),
    hotel_name_en VARCHAR(200),
    hotel_chain VARCHAR(100),
    star_rating INT CHECK (star_rating BETWEEN 1 AND 7),
    description_ar TEXT,
    description_en TEXT,
    address TEXT NOT NULL,
    city VARCHAR(50) NOT NULL,
    country VARCHAR(50) NOT NULL,
    latitude DECIMAL(10,8),
    longitude DECIMAL(11,8),
    main_image VARCHAR(500),
    gallery_images JSON,
    amenities JSON,
    check_in_time TIME DEFAULT '14:00:00',
    check_out_time TIME DEFAULT '12:00:00',
    cancellation_policy TEXT,
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_city_rating (city, star_rating)
);

-- جدول أنواع الغرف
CREATE TABLE room_types (
    id INT PRIMARY KEY AUTO_INCREMENT,
    hotel_id INT NOT NULL,
    room_type_name VARCHAR(50) NOT NULL,
    description TEXT,
    max_occupancy INT DEFAULT 2,
    bed_type VARCHAR(50),
    room_size_sqm DECIMAL(5,2),
    amenities JSON,
    base_price DECIMAL(10,2) NOT NULL,
    weekend_surcharge DECIMAL(10,2) DEFAULT 0,
    number_of_rooms INT DEFAULT 0,
    FOREIGN KEY (hotel_id) REFERENCES hotels(id) ON DELETE CASCADE
);

-- جدول توفر الغرف
CREATE TABLE room_availability (
    id INT PRIMARY KEY AUTO_INCREMENT,
    room_type_id INT NOT NULL,
    available_date DATE NOT NULL,
    available_rooms INT DEFAULT 0,
    price_on_date DECIMAL(10,2),
    is_available BOOLEAN DEFAULT TRUE,
    FOREIGN KEY (room_type_id) REFERENCES room_types(id) ON DELETE CASCADE,
    INDEX idx_date (available_date)
);

-- جدول حجوزات الفنادق
CREATE TABLE hotel_bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    booking_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    hotel_id INT NOT NULL,
    room_type_id INT NOT NULL,
    check_in_date DATE NOT NULL,
    check_out_date DATE NOT NULL,
    number_of_guests INT DEFAULT 1,
    number_of_rooms INT DEFAULT 1,
    total_nights INT GENERATED ALWAYS AS (DATEDIFF(check_out_date, check_in_date)) STORED,
    price_per_night DECIMAL(10,2),
    total_price DECIMAL(10,2),
    special_requests TEXT,
    status ENUM('pending', 'confirmed', 'cancelled', 'completed') DEFAULT 'pending',
    cancellation_deadline DATETIME,
    booked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (hotel_id) REFERENCES hotels(id),
    FOREIGN KEY (room_type_id) REFERENCES room_types(id),
    INDEX idx_user (user_id),
    INDEX idx_dates (check_in_date, check_out_date)
);

2.7. جداول تأجير السيارات

sql

-- =====================================================
-- جداول تأجير السيارات
-- =====================================================

-- جدول شركات تأجير السيارات
CREATE TABLE car_rental_companies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    company_name_ar VARCHAR(100),
    company_name_en VARCHAR(100),
    logo_url VARCHAR(500),
    rating DECIMAL(3,2),
    contact_phone VARCHAR(20),
    contact_email VARCHAR(255),
    is_active BOOLEAN DEFAULT TRUE
);

-- جدول فئات السيارات
CREATE TABLE car_categories (
    id INT PRIMARY KEY AUTO_INCREMENT,
    category_name VARCHAR(50) NOT NULL,
    category_icon VARCHAR(100),
    description TEXT,
    examples JSON
);

-- جدول السيارات المتاحة للتأجير
CREATE TABLE rental_cars (
    id INT PRIMARY KEY AUTO_INCREMENT,
    car_uuid VARCHAR(36) UNIQUE NOT NULL,
    company_id INT NOT NULL,
    category_id INT NOT NULL,
    model_name VARCHAR(100) NOT NULL,
    model_year INT,
    license_plate VARCHAR(20),
    color VARCHAR(30),
    transmission ENUM('manual', 'automatic') DEFAULT 'automatic',
    fuel_type ENUM('petrol', 'diesel', 'electric', 'hybrid') DEFAULT 'petrol',
    seats_count INT DEFAULT 5,
    luggage_capacity INT DEFAULT 2,
    features JSON,
    daily_rate DECIMAL(10,2) NOT NULL,
    weekly_rate_discount DECIMAL(5,2) DEFAULT 0,
    monthly_rate_discount DECIMAL(5,2) DEFAULT 0,
    mileage_limit_km INT DEFAULT 250,
    excess_mileage_charge DECIMAL(5,2),
    security_deposit DECIMAL(10,2),
    is_available BOOLEAN DEFAULT TRUE,
    location_city VARCHAR(50),
    location_address TEXT,
    FOREIGN KEY (company_id) REFERENCES car_rental_companies(id),
    FOREIGN KEY (category_id) REFERENCES car_categories(id),
    INDEX idx_location (location_city)
);

-- جدول حجوزات السيارات
CREATE TABLE car_bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    booking_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    car_id INT NOT NULL,
    pickup_date DATETIME NOT NULL,
    return_date DATETIME NOT NULL,
    pickup_location VARCHAR(255),
    return_location VARCHAR(255),
    total_days INT GENERATED ALWAYS AS (DATEDIFF(return_date, pickup_date)) STORED,
    daily_rate_applied DECIMAL(10,2),
    total_price DECIMAL(10,2),
    insurance_included BOOLEAN DEFAULT FALSE,
    insurance_price DECIMAL(10,2),
    driver_age INT,
    driver_license_number VARCHAR(50),
    status ENUM('pending', 'confirmed', 'active', 'returned', 'cancelled') DEFAULT 'pending',
    booked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (car_id) REFERENCES rental_cars(id),
    INDEX idx_user (user_id),
    INDEX idx_dates (pickup_date, return_date)
);

2.8. جداول المواصلات (باصات، سيارات أجرة، حافلات)

sql

-- =====================================================
-- جداول المواصلات
-- =====================================================

-- جدول أنواع وسائل النقل
CREATE TABLE transport_types (
    id INT PRIMARY KEY AUTO_INCREMENT,
    type_name_ar VARCHAR(50),
    type_name_en VARCHAR(50),
    icon VARCHAR(100)
);

-- جدول شركات النقل
CREATE TABLE transport_providers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    provider_name_ar VARCHAR(100),
    provider_name_en VARCHAR(100),
    logo_url VARCHAR(500),
    rating DECIMAL(3,2),
    is_active BOOLEAN DEFAULT TRUE
);

-- جدول وسائل النقل (باصات، حافلات، سيارات أجرة)
CREATE TABLE transport_vehicles (
    id INT PRIMARY KEY AUTO_INCREMENT,
    vehicle_uuid VARCHAR(36) UNIQUE NOT NULL,
    provider_id INT NOT NULL,
    transport_type_id INT NOT NULL,
    vehicle_name VARCHAR(100),
    capacity INT NOT NULL,
    amenities JSON,
    base_fare DECIMAL(10,2),
    price_per_km DECIMAL(5,2),
    hourly_rate DECIMAL(10,2),
    luggage_capacity INT,
    has_ac BOOLEAN DEFAULT TRUE,
    has_wifi BOOLEAN DEFAULT FALSE,
    is_available BOOLEAN DEFAULT TRUE,
    city VARCHAR(50),
    FOREIGN KEY (provider_id) REFERENCES transport_providers(id),
    FOREIGN KEY (transport_type_id) REFERENCES transport_types(id)
);

-- جدول مسارات النقل
CREATE TABLE transport_routes (
    id INT PRIMARY KEY AUTO_INCREMENT,
    route_name VARCHAR(100),
    origin_city VARCHAR(50) NOT NULL,
    destination_city VARCHAR(50) NOT NULL,
    distance_km DECIMAL(8,2),
    estimated_duration_minutes INT,
    is_active BOOLEAN DEFAULT TRUE
);

-- جدول رحلات النقل المجدولة
CREATE TABLE transport_schedules (
    id INT PRIMARY KEY AUTO_INCREMENT,
    vehicle_id INT NOT NULL,
    route_id INT,
    departure_time DATETIME NOT NULL,
    arrival_time DATETIME NOT NULL,
    available_seats INT DEFAULT 0,
    price DECIMAL(10,2) NOT NULL,
    status ENUM('scheduled', 'departed', 'arrived', 'cancelled') DEFAULT 'scheduled',
    FOREIGN KEY (vehicle_id) REFERENCES transport_vehicles(id),
    FOREIGN KEY (route_id) REFERENCES transport_routes(id),
    INDEX idx_departure (departure_time)
);

-- جدول حجوزات النقل
CREATE TABLE transport_bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    booking_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    schedule_id INT NOT NULL,
    number_of_passengers INT DEFAULT 1,
    seat_numbers JSON,
    total_price DECIMAL(10,2) NOT NULL,
    pickup_location VARCHAR(255),
    dropoff_location VARCHAR(255),
    status ENUM('pending', 'confirmed', 'completed', 'cancelled') DEFAULT 'pending',
    booked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (schedule_id) REFERENCES transport_schedules(id),
    INDEX idx_user (user_id)
);

-- جدول طلبات نقل فورية (أوبر/كريم)
CREATE TABLE ride_requests (
    id INT PRIMARY KEY AUTO_INCREMENT,
    request_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    provider_id INT NOT NULL,
    pickup_location VARCHAR(255) NOT NULL,
    pickup_lat DECIMAL(10,8),
    pickup_lng DECIMAL(11,8),
    dropoff_location VARCHAR(255) NOT NULL,
    dropoff_lat DECIMAL(10,8),
    dropoff_lng DECIMAL(11,8),
    estimated_distance_km DECIMAL(6,2),
    estimated_price DECIMAL(10,2),
    final_price DECIMAL(10,2),
    driver_name VARCHAR(100),
    driver_phone VARCHAR(20),
    vehicle_plate VARCHAR(20),
    status ENUM('requested', 'accepted', 'arrived', 'started', 'completed', 'cancelled') DEFAULT 'requested',
    requested_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    completed_at DATETIME,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (provider_id) REFERENCES transport_providers(id),
    INDEX idx_status (status)
);

2.9. جداول الباقات المتكاملة

sql

-- =====================================================
-- جداول الباقات والحزم المتكاملة
-- (تذكرة + طيران + فندق + مواصلات)
-- =====================================================

-- جدول الباقات
CREATE TABLE travel_packages (
    id INT PRIMARY KEY AUTO_INCREMENT,
    package_uuid VARCHAR(36) UNIQUE NOT NULL,
    package_name_ar VARCHAR(200),
    package_name_en VARCHAR(200),
    package_type ENUM('concert_trip', 'festival_trip', 'weekend_getaway', 'custom') NOT NULL,
    event_id INT,
    description_ar TEXT,
    description_en TEXT,
    main_image VARCHAR(500),
    gallery_images JSON,
    total_days INT,
    total_nights INT,
    base_price DECIMAL(10,2) NOT NULL,
    discount_percentage DECIMAL(5,2) DEFAULT 0,
    is_featured BOOLEAN DEFAULT FALSE,
    status ENUM('draft', 'published', 'sold_out', 'expired') DEFAULT 'draft',
    start_sale_date DATE,
    end_sale_date DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE SET NULL,
    INDEX idx_type_status (package_type, status)
);

-- جدول محتويات الباقة
CREATE TABLE package_inclusions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    package_id INT NOT NULL,
    inclusion_type ENUM('event_ticket', 'flight', 'hotel', 'car_rental', 'transport', 'meal', 'activity') NOT NULL,
    inclusion_id INT,
    inclusion_details JSON,
    quantity INT DEFAULT 1,
    FOREIGN KEY (package_id) REFERENCES travel_packages(id) ON DELETE CASCADE
);

-- جدول حجوزات الباقات
CREATE TABLE package_bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    booking_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    package_id INT NOT NULL,
    number_of_travelers INT DEFAULT 1,
    total_price DECIMAL(10,2) NOT NULL,
    special_requests TEXT,
    status ENUM('pending', 'confirmed', 'cancelled', 'completed') DEFAULT 'pending',
    booking_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (package_id) REFERENCES travel_packages(id),
    INDEX idx_user (user_id)
);

2.10. جداول المدفوعات والمعاملات

sql

-- =====================================================
-- جداول المدفوعات
-- =====================================================

-- جدول طرق الدفع المحفوظة
CREATE TABLE payment_methods (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    method_type ENUM('credit_card', 'debit_card', 'mada', 'apple_pay', 'google_pay', 'paypal') NOT NULL,
    card_last_four VARCHAR(4),
    card_expiry_month INT,
    card_expiry_year INT,
    is_default BOOLEAN DEFAULT FALSE,
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

-- جدول المعاملات المالية
CREATE TABLE transactions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    transaction_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    transaction_type ENUM('event_ticket', 'flight', 'hotel', 'car_rental', 'transport', 'package', 'subscription', 'refund') NOT NULL,
    booking_id INT,
    booking_type VARCHAR(50),
    amount DECIMAL(10,2) NOT NULL,
    currency VARCHAR(3) DEFAULT 'SAR',
    payment_method_id INT,
    payment_status ENUM('pending', 'completed', 'failed', 'refunded') DEFAULT 'pending',
    gateway_reference VARCHAR(255),
    description TEXT,
    transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (payment_method_id) REFERENCES payment_methods(id),
    INDEX idx_user (user_id),
    INDEX idx_status (payment_status)
);

2.11. جداول التقييمات والمراجعات

sql

-- =====================================================
-- جداول التقييمات والمراجعات
-- =====================================================

-- جدول التقييمات لجميع الخدمات
CREATE TABLE reviews (
    id INT PRIMARY KEY AUTO_INCREMENT,
    review_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    review_type ENUM('event', 'hotel', 'flight', 'car', 'transport', 'artist', 'package') NOT NULL,
    item_id INT NOT NULL,
    rating INT CHECK (rating BETWEEN 1 AND 5),
    title VARCHAR(200),
    comment TEXT,
    images JSON,
    likes_count INT DEFAULT 0,
    is_verified_purchase BOOLEAN DEFAULT FALSE,
    status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    INDEX idx_item (review_type, item_id)
);

2.12. جدول الإشعارات

sql

-- =====================================================
-- جدول الإشعارات
-- =====================================================

CREATE TABLE notifications (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    notification_uuid VARCHAR(36) UNIQUE NOT NULL,
    user_id INT NOT NULL,
    notification_type ENUM('booking', 'payment', 'reminder', 'promotion', 'system', 'social') NOT NULL,
    title VARCHAR(200),
    body TEXT,
    action_url VARCHAR(500),
    is_read BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    INDEX idx_user_read (user_id, is_read)
);

الجزء الثالث: العلاقات بين الجداول (ER Diagram Summary)

text

users ──┬── artists
        ├── playlists
        ├── flight_bookings
        ├── hotel_bookings
        ├── car_bookings
        ├── transport_bookings
        ├── ride_requests
        ├── package_bookings
        ├── transactions
        ├── payment_methods
        ├── reviews
        └── notifications

artists ──┬── tracks
          ├── albums
          └── event_artists

events ──┬── event_artists
         ├── event_ticket_tiers
         └── travel_packages

flights ── flight_bookings
hotels ── room_types ── room_availability ── hotel_bookings
car_rental_companies ── rental_cars ── car_bookings
transport_providers ── transport_vehicles ── transport_schedules ── transport_bookings
travel_packages ── package_inclusions ── package_bookings

الجزء الرابع: ملخص الخدمات والجداول

الرقمالخدمةعدد الجداول
1المستخدمون الأساسيون1
2الموسيقى والفنانين6
3الفعاليات3
4الطيران4
5الفنادق4
6تأجير السيارات4
7المواصلات6
8الباقات المتكاملة3
9المدفوعات2
10التقييمات1
11الإشعارات1
المجموع35 جدولاً

الجزء الخامس: الخاتمة النهائية

SUPERSTAGE الآن هي منصة متكاملة تشمل:

الخدمةالحالة
🎵 الموسيقى✅ متكاملة
🎤 الفعاليات✅ متكاملة
✈️ الطيران✅ متكاملة
🏨 الفنادق✅ متكاملة
🚗 تأجير السيارات✅ متكاملة
🚌 المواصلات✅ متكاملة
🎁 باقات سفر متكاملة✅ متكاملة
💳 مدفوعات✅ متكاملة
⭐ تقييمات✅ متكاملة
🔔 إشعارات✅ متكاملة

عدد الجداول الكلي: 35 جدولاً
عدد قواعد البيانات: 1 (مركزية)


هذا هو التوثيق الكامل والنهائي لمنصة SUPERSTAGE المتكاملة. هل تريد مني إضافة أي شيء آخر؟

Leave A Comment

Pull the Trigger!

Let’s Bring Your
Vision To Life

img