CREATE TABLE `announcements` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`image` varchar(255),
	`title` varchar(255) NOT NULL,
	`content` text NOT NULL,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `announcements_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `banks` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`account_name` varchar(255),
	`account_number` varchar(255),
	`bank_name` varchar(255),
	`bank_code` varchar(255),
	`status` enum('Active','Inactive') DEFAULT 'Active',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `banks_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `categories` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`bank_id` bigint,
	`name` varchar(255),
	`status` enum('Active','Inactive') DEFAULT 'Active',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `categories_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `contact_us` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`name` longtext,
	`email` longtext,
	`phone` longtext,
	`subject` longtext,
	`description` longtext,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `contact_us_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `dues` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`payment_category_id` bigint NOT NULL,
	`description` varchar(255),
	`amount` decimal(8,2) NOT NULL,
	`start_date` varchar(255) NOT NULL,
	`end_date` varchar(255) NOT NULL,
	`status` enum('Active','Inactive') DEFAULT 'Active',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `dues_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `events` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`image` varchar(255),
	`title` varchar(255),
	`description` text,
	`start_date` datetime,
	`end_date` datetime,
	`location` varchar(255),
	`organizer` varchar(255),
	`status` enum('Active','Inactive') DEFAULT 'Active',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `events_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `failed_jobs` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`uuid` varchar(255) NOT NULL,
	`connection` text NOT NULL,
	`queue` text NOT NULL,
	`payload` text NOT NULL,
	`exception` text NOT NULL,
	`failed_at` timestamp DEFAULT (now()),
	CONSTRAINT `failed_jobs_id` PRIMARY KEY(`id`),
	CONSTRAINT `failed_jobs_uuid_unique` UNIQUE(`uuid`)
);
--> statement-breakpoint
CREATE TABLE `galleries` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`title` varchar(255),
	`image` varchar(255),
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `galleries_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `users` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`membership_id` varchar(255),
	`account_type` varchar(255) NOT NULL,
	`first_name` varchar(255),
	`last_name` varchar(255),
	`name_of_member_organization` varchar(255),
	`name_of_representative` varchar(255),
	`username` varchar(255),
	`email` varchar(255) NOT NULL,
	`phone_number` varchar(255),
	`gender` varchar(255),
	`marital_status` varchar(255),
	`state` varchar(255),
	`place_business_employment` varchar(255),
	`nature_business_employment` varchar(255),
	`membership_professional_bodies` text,
	`previous_insolvency_work_experience` text,
	`referee_email_address` varchar(255),
	`email_verified_at` timestamp,
	`passport` varchar(255),
	`password` varchar(255) NOT NULL,
	`current_password` varchar(255),
	`address` text,
	`role` varchar(255),
	`status` enum('Active','Inactive','Pending','Unsubscribe') DEFAULT 'Active',
	`remember_token` varchar(100),
	`avatar` varchar(255),
	`isSubscribed` varchar(10) DEFAULT 'false',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `users_id` PRIMARY KEY(`id`),
	CONSTRAINT `users_membership_id_unique` UNIQUE(`membership_id`),
	CONSTRAINT `users_username_unique` UNIQUE(`username`),
	CONSTRAINT `users_email_unique` UNIQUE(`email`)
);
--> statement-breakpoint
CREATE TABLE `password_reset_tokens` (
	`email` varchar(255) NOT NULL,
	`token` varchar(255) NOT NULL,
	`created_at` timestamp,
	CONSTRAINT `password_reset_tokens_email` PRIMARY KEY(`email`)
);
--> statement-breakpoint
CREATE TABLE `personal_access_tokens` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`tokenable_type` varchar(255) NOT NULL,
	`tokenable_id` bigint NOT NULL,
	`name` varchar(255) NOT NULL,
	`token` varchar(64) NOT NULL,
	`abilities` text,
	`last_used_at` timestamp,
	`expires_at` timestamp,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `personal_access_tokens_id` PRIMARY KEY(`id`),
	CONSTRAINT `personal_access_tokens_token_unique` UNIQUE(`token`)
);
--> statement-breakpoint
CREATE TABLE `reset_code_passwords` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`email` varchar(255) NOT NULL,
	`code` varchar(255) NOT NULL,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `reset_code_passwords_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `notifications` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`from` bigint,
	`user_id` bigint,
	`title` varchar(255),
	`body` text,
	`image` varchar(255),
	`type` varchar(255),
	`link` varchar(255),
	`status` varchar(255) DEFAULT 'Unread',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `notifications_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `transactions` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`user_id` bigint NOT NULL,
	`due_id` bigint,
	`subscription_id` bigint,
	`amount` double,
	`receipt` varchar(255),
	`ref_id` varchar(255),
	`paid_at` varchar(255),
	`channel` varchar(255),
	`ip_address` varchar(255),
	`status` varchar(255),
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `transactions_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `memberships` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`name` varchar(255),
	`title` varchar(255),
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `memberships_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `subscriptions` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`amount` decimal(8,2) NOT NULL,
	`bank` longtext,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `subscriptions_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `members` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`user_id` bigint NOT NULL,
	`first_name` varchar(255),
	`last_name` varchar(255),
	`email` varchar(255) NOT NULL,
	`phone_number` varchar(255),
	`gender` varchar(255),
	`passport` varchar(255),
	`marital_status` varchar(255),
	`occupation` varchar(255),
	`address` text,
	`id_number` text,
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `members_id` PRIMARY KEY(`id`),
	CONSTRAINT `members_email_unique` UNIQUE(`email`)
);
--> statement-breakpoint
CREATE TABLE `partners` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`logo` varchar(255),
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `partners_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `posts` (
	`id` bigint AUTO_INCREMENT NOT NULL,
	`title` varchar(255) NOT NULL,
	`description` text NOT NULL,
	`image` varchar(255) NOT NULL,
	`views` varchar(255) DEFAULT '0',
	`created_at` timestamp DEFAULT (now()),
	`updated_at` timestamp DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `posts_id` PRIMARY KEY(`id`)
);
