Files
OpenSign/apps/OpenSignServer/databases/migrations/20240708200454-create_multiuser_classes.cjs
T

54 lines
1.7 KiB
JavaScript

/**
*
* @param {Parse} Parse
*/
exports.up = async Parse => {
const teamschema = new Parse.Schema('contracts_Teams');
teamschema.addString('Name');
teamschema.addBoolean('IsActive', { defaultValue: true });
teamschema.addPointer('ParentId', 'contracts_Teams');
teamschema.addPointer('OrganizationId', 'contracts_Organizations');
teamschema.addArray('Ancestors');
await teamschema.save();
const orgSchema = new Parse.Schema('contracts_Organizations');
orgSchema.addString('Name');
orgSchema.addBoolean('IsActive', { defaultValue: true });
orgSchema.addPointer('TenantId', 'partners_Tenant');
orgSchema.addPointer('CreatedBy', '_User');
orgSchema.addPointer('ExtUserId', 'contracts_Users');
await orgSchema.save();
const schema = new Parse.Schema('contracts_Users');
schema.addBoolean('IsDisabled', { defaultValue: false });
schema.addPointer('OrganizationId', 'contracts_Organizations');
schema.addArray('TeamIds');
await schema.update();
const templateschema = new Parse.Schema('contracts_Template');
templateschema.addArray('SharedWith');
return templateschema.update();
};
/**
*
* @param {Parse} Parse
*/
exports.down = async Parse => {
const teamschema = new Parse.Schema('contracts_Teams');
await teamschema.purge().then(() => teamschema.delete());
const orgSchema = new Parse.Schema('contracts_Organizations');
await orgSchema.purge().then(() => orgSchema.delete());
const schema = new Parse.Schema('contracts_Users');
schema.deleteField('IsDisabled');
schema.deleteField('OrganizationId');
schema.deleteField('TeamIds');
await schema.update();
const templateschema = new Parse.Schema('contracts_Template');
templateschema.deleteField('SharedWith');
return templateschema.update();
};