CREATE TABLE `billingReminderLogs` (
	`id` int AUTO_INCREMENT NOT NULL,
	`invoiceId` int NOT NULL,
	`userId` int NOT NULL,
	`reminderKind` enum('sebelum_jatuh_tempo','jatuh_tempo','lewat_jatuh_tempo') NOT NULL,
	`destination` varchar(32) NOT NULL,
	`templateName` varchar(128) NOT NULL,
	`providerMessageId` varchar(255),
	`status` enum('queued','sent','failed','skipped','delivered','read') NOT NULL DEFAULT 'queued',
	`errorMessage` text,
	`attemptedAt` timestamp NOT NULL DEFAULT (now()),
	`createdAt` timestamp NOT NULL DEFAULT (now()),
	CONSTRAINT `billingReminderLogs_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `billingReminderSettings` (
	`id` int AUTO_INCREMENT NOT NULL,
	`enabled` boolean NOT NULL DEFAULT false,
	`cronExpression` varchar(64) NOT NULL DEFAULT '0 0 2 * * *',
	`scheduleCronTaskUid` varchar(65),
	`daysBeforeDue` int NOT NULL DEFAULT 3,
	`templateName` varchar(128) NOT NULL DEFAULT 'mbiz_tagihan_jatuh_tempo',
	`templateLanguage` varchar(16) NOT NULL DEFAULT 'id',
	`updatedBy` int NOT NULL,
	`createdAt` timestamp NOT NULL DEFAULT (now()),
	`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `billingReminderSettings_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `customerNotificationPreferences` (
	`id` int AUTO_INCREMENT NOT NULL,
	`userId` int NOT NULL,
	`whatsappNumber` varchar(32),
	`whatsappOptIn` boolean NOT NULL DEFAULT false,
	`reminderEnabled` boolean NOT NULL DEFAULT true,
	`updatedBy` int NOT NULL,
	`createdAt` timestamp NOT NULL DEFAULT (now()),
	`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
	CONSTRAINT `customerNotificationPreferences_id` PRIMARY KEY(`id`),
	CONSTRAINT `customerNotificationPreferences_userId_unique` UNIQUE(`userId`)
);
--> statement-breakpoint
ALTER TABLE `inventoryTransactions` ADD `approvalStatus` enum('tidak_perlu','menunggu','disetujui','ditolak') DEFAULT 'tidak_perlu' NOT NULL;--> statement-breakpoint
ALTER TABLE `inventoryTransactions` ADD `reviewedBy` int;--> statement-breakpoint
ALTER TABLE `inventoryTransactions` ADD `reviewedAt` timestamp;--> statement-breakpoint
ALTER TABLE `inventoryTransactions` ADD `reviewNote` text;