Files
OpenSign/apps/OpenSignServer/databases/migrations/20231110174122-update_setclp.cjs
T

151 lines
4.9 KiB
JavaScript

/**
*
* @param {Parse} Parse
*/
exports.up = async Parse => {
const userschema = new Parse.Schema('_User');
userschema.addString('Name').addString('phone').addString('ProfilePic');
const index = { phone: 1 };
userschema.addIndex('phone_1', index);
await userschema.update(null, { useMasterKey: true });
const contactbook = new Parse.Schema('contracts_Contactbook');
contactbook
.addString('UserRole')
.addPointer('TenantId', 'partners_Tenant')
.addPointer('UserId', '_User')
.addArray('TourStatus')
.addString('Name')
.addString('Phone')
.addString('Email')
.addPointer('CreatedBy', '_User')
.addPointer('ExtUserPtr', 'contracts_Users')
.addBoolean('IsDeleted', false);
await contactbook.save(null, { useMasterKey: true });
const extUsers = new Parse.Schema('contracts_Users');
extUsers
.addString('UserRole')
.addPointer('TenantId', 'partners_Tenant')
.addPointer('UserId', '_User')
.addArray('TourStatus')
.addString('Name')
.addString('Phone')
.addString('Email')
.addString('JobTitle')
.addBoolean('IsContactEntry', false)
.addString('Company')
.addBoolean('HeaderDocId')
.addPointer('CreatedBy', '_User')
.addString('Webhook')
.addBoolean('ShareWithTeam', false)
.setCLP({
get: {},
find: {},
count: {},
create: { '*': true },
update: { '*': true },
delete: {},
addField: {},
});
await extUsers.save(null, { useMasterKey: true });
const doc = new Parse.Schema('contracts_Document');
doc
.addString('Name')
.addString('URL')
.addString('Note')
.addBoolean('EnableEmailOTP')
.addArray('Signers')
.addString('Type')
.addString('Description')
.addPointer('ExtUserPtr', 'contracts_Users')
.addString('SignedUrl')
.addArray('AuditTrail')
.addArray('Placeholders')
.addPointer('Folder', 'contracts_Document')
.addPointer('CreatedBy', '_User')
.addDate('ExpiryDate')
.addBoolean('SendinOrder', false)
.addBoolean('AutomaticReminders', false)
.addBoolean('IsCompleted', false)
.addBoolean('IsDeclined', false)
.addNumber('RemindOnceInEvery', 5)
.addNumber('TimeToCompleteDays', 15)
.addBoolean('SentToOthers', false) // check once
.addBoolean('EnablePhoneOTP', false)
.addDate('AgreementValidUntil')
.addArray('Recipients')
.addArray('Clauses')
.addArray('AgreementDelta');
await doc.save(null, { useMasterKey: true });
const signature = new Parse.Schema('contracts_Signature');
signature
.addString('SignatureName')
.addString('SignText')
.addString('ImageURL')
.addString('SignTextFont')
.addString('InitialsText')
.addString('InitialsFont')
.addString('Initials')
.addPointer('UserId', '_User');
await signature.save(null, { useMasterKey: true });
const partners_DataFiles = new Parse.Schema('partners_DataFiles');
partners_DataFiles
.addNumber('FileSize')
.addString('FileUrl')
.addPointer('TenantPtr', 'partners_Tenant');
await partners_DataFiles.save(null, { useMasterKey: true });
const partners_Tenant = new Parse.Schema('partners_Tenant');
partners_Tenant
.addPointer('UserId', '_User')
.addString('ContactNumber')
.addBoolean('IsActive', true)
.addString('TenantName')
.addString('EmailAddress')
.addPointer('CreatedBy', '_User')
.addString('Domain')
.addString('Logo');
await partners_Tenant.save(null, { useMasterKey: true });
const partners_TenantCredits = new Parse.Schema('partners_TenantCredits');
partners_TenantCredits.addPointer('PartnersTenant', 'partners_Tenant').addNumber('usedStorage');
return partners_TenantCredits.save(null, { useMasterKey: true });
};
/**
*
* @param {Parse} Parse
*/
exports.down = async Parse => {
const userschema = new Parse.Schema('_User');
userschema.deleteField('Name').deleteField('phone').deleteField('ProfilePic');
const index = { phone: 1 };
userschema.deleteIndex('phone_1', index);
await userschema.update(null, { useMasterKey: true });
const contactbook = new Parse.Schema('contracts_Contactbook');
await contactbook.purge().then(() => contactbook.delete());
const extUsers = new Parse.Schema('contracts_Users');
await extUsers.purge().then(() => extUsers.delete());
const doc = new Parse.Schema('contracts_Document');
await doc.purge().then(() => doc.delete());
const signature = new Parse.Schema('contracts_Signature');
await signature.purge().then(() => signature.delete());
const partners_DataFiles = new Parse.Schema('partners_DataFiles');
await partners_DataFiles.purge().then(() => partners_DataFiles.delete());
const partners_Tenant = new Parse.Schema('partners_Tenant');
await partners_Tenant.purge().then(() => partners_Tenant.delete());
const partners_TenantCredits = new Parse.Schema('partners_TenantCredits');
return partners_TenantCredits.purge().then(() => partners_TenantCredits.delete());
};