summaryrefslogtreecommitdiffstats
path: root/models/org.js
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-07-15 19:39:30 +0300
committerLauri Ojansivu <x@xet7.org>2019-07-15 19:39:30 +0300
commit2cedbcb9b334cd497874736bbb740a1d5c5acb6c (patch)
tree90d35fda65a87edb8e3d6fc68487115d1f243db0 /models/org.js
parent2b1ba0b8f84428f0e9fb71c71f9332fcd559379d (diff)
downloadwekan-2cedbcb9b334cd497874736bbb740a1d5c5acb6c.tar.gz
wekan-2cedbcb9b334cd497874736bbb740a1d5c5acb6c.tar.bz2
wekan-2cedbcb9b334cd497874736bbb740a1d5c5acb6c.zip
Teams/Organizations part 1, in progress. Add table: org
Thanks to xet7 ! Related #802
Diffstat (limited to 'models/org.js')
-rw-r--r--models/org.js121
1 files changed, 121 insertions, 0 deletions
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;