From 2cedbcb9b334cd497874736bbb740a1d5c5acb6c Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 15 Jul 2019 19:39:30 +0300 Subject: Teams/Organizations part 1, in progress. Add table: org Thanks to xet7 ! Related #802 --- models/counters.js | 1 + models/org.js | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 models/counters.js create mode 100644 models/org.js (limited to 'models') diff --git a/models/counters.js b/models/counters.js new file mode 100644 index 00000000..232353fb --- /dev/null +++ b/models/counters.js @@ -0,0 +1 @@ +Counters = new Mongo.Collection('counters'); diff --git a/models/org.js b/models/org.js new file mode 100644 index 00000000..cdbcbafc --- /dev/null +++ b/models/org.js @@ -0,0 +1,121 @@ +Org = new Mongo.Collection('org'); + +/** + * A Organization in wekan + */ +Org.attachSchema( + new SimpleSchema({ + id: { + /** + * the organization id + */ + type: Number, + optional: true, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert && !this.isSet) { + return incrementCounter('counters', 'org_id', 1); + } + }, + }, + version: { + /** + * the version of the organization + */ + type: Number, + optional: true, + }, + name: { + /** + * name of the organization + */ + type: String, + optional: true, + max: 190, + }, + address1: { + /** + * address1 of the organization + */ + type: String, + optional: true, + max: 255, + }, + address2: { + /** + * address2 of the organization + */ + type: String, + optional: true, + max: 255, + }, + city: { + /** + * city of the organization + */ + type: String, + optional: true, + max: 255, + }, + state: { + /** + * state of the organization + */ + type: String, + optional: true, + max: 255, + }, + zip_code: { + /** + * zip_code of the organization + */ + type: String, + optional: true, + max: 50, + }, + country: { + /** + * country of the organization + */ + type: String, + optional: true, + max: 255, + }, + billing_email: { + /** + * billing_email of the organization + */ + type: String, + optional: true, + max: 255, + }, + createdAt: { + /** + * creation date of the organization + */ + type: Date, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert) { + return new Date(); + } else { + this.unset(); + } + }, + }, + modifiedAt: { + type: Date, + denyUpdate: false, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert || this.isUpsert || this.isUpdate) { + return new Date(); + } else { + this.unset(); + } + }, + }, + }), +); + +export default Org; -- cgit v1.2.3-1-g7c22