Implemented system to track member qualifications from training reports

This commit is contained in:
2026-03-31 18:57:47 -04:00
parent e672159c51
commit 0deb2ac316
10 changed files with 518 additions and 4 deletions

View File

@@ -0,0 +1,45 @@
'use strict';
var dbm;
var type;
var seed;
var fs = require('fs');
var path = require('path');
var Promise;
exports.setup = function(options, seedLink) {
dbm = options.dbmigrate;
type = dbm.dataType;
seed = seedLink;
Promise = options.Promise;
};
exports.up = function(db) {
var filePath = path.join(__dirname, 'sqls', '20260330120000-qualification-sync-up.sql');
return new Promise(function(resolve, reject) {
fs.readFile(filePath, { encoding: 'utf-8' }, function(err, data) {
if (err) return reject(err);
console.log('received data: ' + data);
resolve(data);
});
}).then(function(data) {
return db.runSql(data);
});
};
exports.down = function(db) {
var filePath = path.join(__dirname, 'sqls', '20260330120000-qualification-sync-down.sql');
return new Promise(function(resolve, reject) {
fs.readFile(filePath, { encoding: 'utf-8' }, function(err, data) {
if (err) return reject(err);
console.log('received data: ' + data);
resolve(data);
});
}).then(function(data) {
return db.runSql(data);
});
};
exports._meta = {
version: 1,
};

View File

@@ -0,0 +1,18 @@
ALTER TABLE members_qualifications
DROP FOREIGN KEY fk_members_qualifications_course_id,
DROP FOREIGN KEY fk_members_qualifications_awarded_by,
DROP FOREIGN KEY fk_members_qualifications_revoked_by,
DROP FOREIGN KEY fk_members_qualifications_source_event,
DROP KEY uq_members_qualifications_member_course,
DROP KEY idx_members_qualifications_active,
DROP KEY idx_members_qualifications_source_event,
DROP COLUMN course_id,
DROP COLUMN active,
DROP COLUMN awarded_by_id,
DROP COLUMN revoked_by_id,
DROP COLUMN revoked_reason,
DROP COLUMN revoked_at,
DROP COLUMN source_course_event_id,
ADD COLUMN qualification_id INT(11) DEFAULT 0,
ADD KEY fk_members_qualifications_qualifications_id (qualification_id),
ADD CONSTRAINT fk_members_qualifications_qualifications_id FOREIGN KEY (qualification_id) REFERENCES qualifications(id) ON UPDATE CASCADE;

View File

@@ -0,0 +1,18 @@
ALTER TABLE members_qualifications
DROP FOREIGN KEY fk_members_qualifications_qualifications_id,
DROP KEY fk_members_qualifications_qualifications_id,
DROP COLUMN qualification_id,
ADD COLUMN course_id INT(11) NOT NULL AFTER member_id,
ADD COLUMN active TINYINT(1) NOT NULL DEFAULT 1,
ADD COLUMN awarded_by_id INT(11) DEFAULT NULL,
ADD COLUMN revoked_by_id INT(11) DEFAULT NULL,
ADD COLUMN revoked_reason TEXT DEFAULT NULL,
ADD COLUMN revoked_at DATETIME DEFAULT NULL,
ADD COLUMN source_course_event_id INT(11) DEFAULT NULL,
ADD UNIQUE KEY uq_members_qualifications_member_course (member_id, course_id),
ADD KEY idx_members_qualifications_active (member_id, course_id, active),
ADD KEY idx_members_qualifications_source_event (source_course_event_id),
ADD CONSTRAINT fk_members_qualifications_course_id FOREIGN KEY (course_id) REFERENCES courses(id) ON UPDATE CASCADE,
ADD CONSTRAINT fk_members_qualifications_awarded_by FOREIGN KEY (awarded_by_id) REFERENCES members(id) ON UPDATE CASCADE,
ADD CONSTRAINT fk_members_qualifications_revoked_by FOREIGN KEY (revoked_by_id) REFERENCES members(id) ON UPDATE CASCADE,
ADD CONSTRAINT fk_members_qualifications_source_event FOREIGN KEY (source_course_event_id) REFERENCES course_events(id) ON UPDATE CASCADE;