diff --git a/src/main/resources/db/changelog/changes/20240416_01_cyril/01_create_file.sql b/src/main/resources/db/changelog/changes/20240416_01_cyril/01_create_file.sql new file mode 100644 index 0000000..20ab707 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240416_01_cyril/01_create_file.sql @@ -0,0 +1,44 @@ +-- liquibase formatted sql +-- changeset cyril:add file, file_ref, file_blob + +CREATE TABLE `file` ( + `id` INT NOT NULL AUTO_INCREMENT, + `version` INT NOT NULL DEFAULT '0', + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `createdBy` VARCHAR(30) NULL DEFAULT NULL, + `modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifiedBy` VARCHAR(30) NULL DEFAULT NULL, + `deleted` TINYINT(1) NOT NULL DEFAULT '0', + `skey` VARCHAR(32) NOT NULL, + `filename` VARCHAR(255) NOT NULL, + `extension` VARCHAR(10) NOT NULL, + `mimetype` VARCHAR(255) NOT NULL, + `filesize` BIGINT(20) NOT NULL, + `remarks` VARCHAR(500) NULL, + PRIMARY KEY (`id`)); + +CREATE TABLE `file_ref` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `refType` VARCHAR(20) NOT NULL, + `refId` INT(11) NOT NULL, + `refCode` VARCHAR(50) NULL, + `fileId` INT(11) NOT NULL, + PRIMARY KEY (`id`), + INDEX `FK_FILE_REF_ON_FILEID` (`fileId` ASC) VISIBLE, + CONSTRAINT `FK_FILE_REF_ON_FILEID` + FOREIGN KEY (`fileId`) + REFERENCES `file` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION); + +CREATE TABLE `file_blob` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `fileId` INT(11) NOT NULL, + `bytes` LONGBLOB NOT NULL, + PRIMARY KEY (`id`), + INDEX `FK_FILE_BLOB_ON_FILEID` (`fileId` ASC) INVISIBLE, + CONSTRAINT `FK_FILE_BLOB_ON_FILEID` + FOREIGN KEY (`fileId`) + REFERENCES `file` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION); diff --git a/src/main/resources/db/changelog/changes/20240416_01_cyril/02_create_claim_expense.sql b/src/main/resources/db/changelog/changes/20240416_01_cyril/02_create_claim_expense.sql new file mode 100644 index 0000000..9e4deae --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240416_01_cyril/02_create_claim_expense.sql @@ -0,0 +1,72 @@ +-- liquibase formatted sql +-- changeset cyril:add claim, expense + +CREATE TABLE `claim` ( + `id` INT NOT NULL AUTO_INCREMENT, + `version` INT NOT NULL DEFAULT '0', + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `createdBy` VARCHAR(30) NULL DEFAULT NULL, + `modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifiedBy` VARCHAR(30) NULL DEFAULT NULL, + `deleted` TINYINT(1) NOT NULL DEFAULT '0', + `projectId` INT(11) NOT NULL, + `staffId` INT(11) NOT NULL, + `description` VARCHAR(255) NOT NULL, + `amount` DECIMAL(14,2) NOT NULL, + `fileId` INT(11) NULL, + `decision` TINYINT(1) NOT NULL, + `approvedAmount` DECIMAL(14,2) NULL, + `verifiedDatetime` DATETIME NULL, + `verifiedBy` INT(11) NULL, + `remark` VARCHAR(255) NULL, + PRIMARY KEY (`id`), + INDEX `FK_CLAIM_ON_PROJECTID` (`projectId` ASC) INVISIBLE, + INDEX `FK_CLAIM_ON_STAFFID` (`staffId` ASC) INVISIBLE, + INDEX `FK_CLAIM_ON_FILEID` (`fileId` ASC) INVISIBLE, + CONSTRAINT `FK_CLAIM_ON_PROJECTID` + FOREIGN KEY (`projectId`) + REFERENCES `project` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `FK_CLAIM_ON_STAFFID` + FOREIGN KEY (`staffId`) + REFERENCES `staff` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `FK_CLAIM_ON_FILEID` + FOREIGN KEY (`fileId`) + REFERENCES `file` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION); + +CREATE TABLE `expense` ( + `id` INT NOT NULL AUTO_INCREMENT, + `version` INT NOT NULL DEFAULT '0', + `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `createdBy` VARCHAR(30) NULL DEFAULT NULL, + `modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `modifiedBy` VARCHAR(30) NULL DEFAULT NULL, + `deleted` TINYINT(1) NOT NULL DEFAULT '0', + `projectId` INT(11) NOT NULL, + `staffId` INT(11) NOT NULL, + `description` VARCHAR(255) NOT NULL, + `amount` DECIMAL(14,2) NOT NULL, + `supporting` INT(11) NULL, + `decision` TINYINT(1) NOT NULL, + `approvedAmount` DECIMAL(14,2) NULL, + `verifiedDatetime` DATETIME NULL, + `verifiedBy` INT(11) NULL, + `remark` VARCHAR(255) NULL, + PRIMARY KEY (`id`), + INDEX `FK_EXPENSE_ON_PROJECTID` (`projectId` ASC) INVISIBLE, + INDEX `FK_EXPENSE_ON_STAFFID` (`staffId` ASC) VISIBLE, + CONSTRAINT `FK_EXPENSE_ON_PROJECTID` + FOREIGN KEY (`projectId`) + REFERENCES `project` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `FK_EXPENSE_ON_STAFFID` + FOREIGN KEY (`staffId`) + REFERENCES `staff` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION); diff --git a/src/main/resources/db/changelog/changes/20240418_01_cyril/01_update_staff.sql b/src/main/resources/db/changelog/changes/20240418_01_cyril/01_update_staff.sql new file mode 100644 index 0000000..8567183 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240418_01_cyril/01_update_staff.sql @@ -0,0 +1,14 @@ +-- liquibase formatted sql +-- changeset cyril:update staff + +ALTER TABLE `staff` +DROP FOREIGN KEY `FK_STAFF_ON_SALARYEFFID`; +ALTER TABLE `staff` + CHANGE COLUMN `salaryEffId` `salaryId` INT NOT NULL , +DROP INDEX `FK_STAFF_ON_SALARYEFFID` , +ADD INDEX `FK_STAFF_ON_SALARYID_idx` (`salaryId` ASC) VISIBLE; +; +ALTER TABLE `staff` + ADD CONSTRAINT `FK_STAFF_ON_SALARYID` + FOREIGN KEY (`salaryId`) + REFERENCES `salary` (`id`); \ No newline at end of file diff --git a/src/main/resources/db/changelog/changes/20240418_01_cyril/02_update_salary_effective.sql b/src/main/resources/db/changelog/changes/20240418_01_cyril/02_update_salary_effective.sql new file mode 100644 index 0000000..e421e22 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240418_01_cyril/02_update_salary_effective.sql @@ -0,0 +1,15 @@ +-- liquibase formatted sql +-- changeset cyril:update salary_effective + +DELETE FROM `salary_effective` WHERE (`id` = '1'); + +ALTER TABLE `salary_effective` + ADD COLUMN `staffId` INT NOT NULL AFTER `salaryId`, +ADD INDEX `FK_SALARY_EFFECTIVE_ON_STAFFID` (`staffId` ASC) VISIBLE; +; +ALTER TABLE `salary_effective` + ADD CONSTRAINT `FK_SALARY_EFFECTIVE_ON_STAFFID` + FOREIGN KEY (`staffId`) + REFERENCES `staff` (`id`) + ON DELETE NO ACTION + ON UPDATE NO ACTION;