24 lines
992 B
JavaScript
24 lines
992 B
JavaScript
/**
|
|
* Mermaid Diagrams — per-user clinical pathway / algorithm diagrams.
|
|
* Source is plain Mermaid text; rendered to SVG client-side. Source
|
|
* encrypted at rest like personal_notes so a row dump stays useless
|
|
* without the app key.
|
|
*/
|
|
|
|
exports.up = (pgm) => {
|
|
pgm.createTable('mermaid_diagrams', {
|
|
id: { type: 'serial', primaryKey: true },
|
|
user_id: { type: 'integer', notNull: true, references: 'users(id)', onDelete: 'CASCADE' },
|
|
title: { type: 'text', notNull: true },
|
|
source: { type: 'text', notNull: true, default: '' },
|
|
notes: { type: 'text', notNull: true, default: '' },
|
|
created_at: { type: 'timestamptz', notNull: true, default: pgm.func('NOW()') },
|
|
updated_at: { type: 'timestamptz', notNull: true, default: pgm.func('NOW()') },
|
|
});
|
|
pgm.createIndex('mermaid_diagrams', 'user_id');
|
|
pgm.createIndex('mermaid_diagrams', ['user_id', 'updated_at']);
|
|
};
|
|
|
|
exports.down = (pgm) => {
|
|
pgm.dropTable('mermaid_diagrams');
|
|
};
|