-- ডাটাবেজ তৈরি এবং সিলেক্ট করা
CREATE DATABASE IF NOT EXISTS movie_world_city_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE movie_world_city_db;

-- --------------------------------------------------------

-- ৩. ক্যাটাগরি বা জেনার টেবিল (Categories)
CREATE TABLE `genres` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tmdb_id` int(11) DEFAULT NULL,
  `name` varchar(50) NOT NULL,
  `slug` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ৪. মুভি টেবিল (Movies)
-- এখানে মুভির ডিটেইলস এবং ভিউ কাউন্ট থাকবে
CREATE TABLE `movies` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tmdb_id` int(11) NOT NULL,
  `imdb_id` varchar(20) DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `description` text,
  `poster_thumb` varchar(255) DEFAULT NULL, -- ছোট থাম্বনেইল
  `poster_banner` varchar(255) DEFAULT NULL, -- বড় ব্যানার (Horizontal)
  `release_date` date DEFAULT NULL,
  `runtime` int(11) DEFAULT 0, -- মিনিটে
  `rating` float DEFAULT 0.0,
  `genres` varchar(255) DEFAULT NULL, -- কমা দিয়ে সেপারেট করা (Action, Drama)
  `video_type` enum('local','url','embed','api_fallback') DEFAULT 'local',
  `video_url` text, -- ফাইলের লোকেশন বা লিংক
  `download_url` text, -- আলাদা ডাউনলোড লিংক (যদি থাকে)
  `views_total` int(11) DEFAULT 0,
  `views_today` int(11) DEFAULT 0,
  `is_published` tinyint(1) DEFAULT 1,
  `created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `tmdb_id` (`tmdb_id`),
  KEY `views_total` (`views_total`) -- ট্রেন্ডিং এর জন্য ইনডেক্স
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ৫. টিভি সিরিজ টেবিল (TV Series)
CREATE TABLE `tv_series` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tmdb_id` int(11) NOT NULL,
  `imdb_id` varchar(20) DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `description` text,
  `poster_thumb` varchar(255) DEFAULT NULL,
  `poster_banner` varchar(255) DEFAULT NULL,
  `release_date` date DEFAULT NULL,
  `rating` float DEFAULT 0.0,
  `genres` varchar(255) DEFAULT NULL,
  `views_total` int(11) DEFAULT 0,
  `is_published` tinyint(1) DEFAULT 1,
  `created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ৬. সিজন টেবিল (Seasons)
CREATE TABLE `seasons` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `series_id` int(11) NOT NULL,
  `season_number` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `publish_date` date DEFAULT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`series_id`) REFERENCES `tv_series`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ৭. এপিসোড টেবিল (Episodes)
CREATE TABLE `episodes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `series_id` int(11) NOT NULL,
  `season_id` int(11) NOT NULL,
  `episode_number` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `overview` text,
  `still_path` varchar(255) DEFAULT NULL, -- এপিসোডের ছবি
  `video_type` enum('local','url','embed','api_fallback') DEFAULT 'local',
  `video_url` text,
  `download_url` text,
  `views` int(11) DEFAULT 0,
  `created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`series_id`) REFERENCES `tv_series`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`season_id`) REFERENCES `seasons`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ৯. মিসিং মুভি লগ (API Fallback Logs)
-- ইউজার যখন এমন কোনো মুভি সার্চ বা দেখার চেষ্টা করে যা ডাটাবেজে নেই, তখন এখানে লগ হবে
CREATE TABLE `api_requests_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tmdb_id` int(11) NOT NULL,
  `title` varchar(255) DEFAULT NULL,
  `type` enum('movie','tv') NOT NULL,
  `request_count` int(11) DEFAULT 1,
  `last_requested_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `is_resolved` tinyint(1) DEFAULT 0, -- এডমিন আপলোড করলে ১ হবে
  PRIMARY KEY (`id`),
  UNIQUE KEY `tmdb_id` (`tmdb_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

-- ১০. দৈনিক ভিজিটর রিপোর্ট (Analytics)
CREATE TABLE `daily_stats` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `report_date` date NOT NULL,
  `total_views` int(11) DEFAULT 0,
  `new_users` int(11) DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `report_date` (`report_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;