diff --git a/app/Controllers/SubscriptionController.php b/app/Controllers/SubscriptionController.php new file mode 100644 index 0000000000000000000000000000000000000000..b42c39a91d42425233b49e40080e6abfdba1e9af --- /dev/null +++ b/app/Controllers/SubscriptionController.php @@ -0,0 +1,25 @@ +<?php +ob_start(); +require_once(__DIR__ . '/../Models/Subscription.php'); + + +class SubscriptionController { + private $subscriptionModel; + + public function __construct() { + $this->subscriptionModel = new SubscriptionModel(); + } + + public function createSubscription($creator_id, $subscriber_id, $creator_name) { + return $this->subscriptionModel->createSubscription($creator_id, $subscriber_id, $creator_name); + } + + public function getSubscription($subscriber_id) { + return $this->subscriptionModel->getSubscription($subscriber_id); + } + + public function updateSubscription($creator_id, $subscriber_id, $status) { + return $this->subscriptionModel->updateSubscription($creator_id, $subscriber_id, $status); + } +} +?> \ No newline at end of file diff --git a/app/Models/Subscription.php b/app/Models/Subscription.php new file mode 100644 index 0000000000000000000000000000000000000000..46dcabc8b0770086e43d488ef5364d90d0f1b21f --- /dev/null +++ b/app/Models/Subscription.php @@ -0,0 +1,32 @@ +<?php + require_once(__DIR__ . '/../../db/connect.php'); + + class SubscriptionModel { + public function createSubscription($creator_id, $subscriber_id, $creator_name) { + global $db; + + $stmt = $db->prepare("INSERT INTO subscription (creator_id, subscriber_id, creator_name) VALUES (?, ?, ?)"); + if ($stmt->execute([$creator_id, $subscriber_id, $creator_name])) { + return "Subscription created successfully"; + } + } + + public function getSubscription($subscriber_id) { + global $db; + + $stmt = $db->prepare("SELECT * FROM subscription WHERE subscriber_id = ?"); + $stmt->execute([$subscriber_id]); + + return $stmt->fetchAll(PDO::FETCH_ASSOC); + } + + public function updateSubscription($creator_id, $subscriber_id, $status) { + global $db; + + $stmt = $db->prepare("UPDATE subscription SET status = ? WHERE creator_id = ? AND subscriber_id = ?"); + if ($stmt->execute([$status, $creator_id, $subscriber_id])) { + return "Subscription updated successfully"; + } + } + } +?> \ No newline at end of file diff --git a/db/init.sql b/db/init.sql index 2260e6011f4701b1ec4506bee5c96de4a4b8e595..0beaedfc29604f9454f333b3a4411b5108553768 100644 --- a/db/init.sql +++ b/db/init.sql @@ -36,4 +36,13 @@ CREATE TABLE IF NOT EXISTS pembelian ( pembelian_created_time DATETIME, FOREIGN KEY (ticket_id) REFERENCES tickets(ticket_id), FOREIGN KEY (user_id) REFERENCES users(user_ID) ON DELETE SET NULL +); + +CREATE TABLE IF NOT EXISTS subscription ( + creator_id int NOT NULL, + subscriber_id int NOT NULL, + status enum('PENDING','ACCEPTED','REJECTED') NOT NULL DEFAULT 'PENDING', + creator_name char(255) NOT NULL, + PRIMARY KEY (creator_id, subscriber_id), + FOREIGN KEY (subscriber_id) REFERENCES users(user_ID) ON DELETE CASCADE ); \ No newline at end of file