Skip to content
Snippets Groups Projects
Commit a7562d26 authored by Muhammad Rifko Favian's avatar Muhammad Rifko Favian
Browse files

feat: subscription model

parent 47dd071f
No related merge requests found
<?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
<?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
...@@ -36,4 +36,13 @@ CREATE TABLE IF NOT EXISTS pembelian ( ...@@ -36,4 +36,13 @@ CREATE TABLE IF NOT EXISTS pembelian (
pembelian_created_time DATETIME, pembelian_created_time DATETIME,
FOREIGN KEY (ticket_id) REFERENCES tickets(ticket_id), FOREIGN KEY (ticket_id) REFERENCES tickets(ticket_id),
FOREIGN KEY (user_id) REFERENCES users(user_ID) ON DELETE SET NULL 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
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment