summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.meteor/packages1
-rw-r--r--.meteor/versions1
-rw-r--r--models/counters.js1
-rw-r--r--models/org.js121
-rw-r--r--server/migrations.js3
5 files changed, 127 insertions, 0 deletions
diff --git a/.meteor/packages b/.meteor/packages
index a4c9a081..ccbff63d 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -93,3 +93,4 @@ meteorhacks:picker
lamhieu:unblock
meteorhacks:aggregate@1.3.0
wekan-markdown
+konecty:mongo-counter
diff --git a/.meteor/versions b/.meteor/versions
index 8b5ff115..13400796 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -79,6 +79,7 @@ kadira:blaze-layout@2.3.0
kadira:dochead@1.5.0
kadira:flow-router@2.12.1
kenton:accounts-sandstorm@0.7.0
+konecty:mongo-counter@0.0.5_3
lamhieu:meteorx@2.0.1
lamhieu:unblock@1.0.0
launch-screen@1.1.1
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;
diff --git a/server/migrations.js b/server/migrations.js
index f3776edd..8b902db2 100644
--- a/server/migrations.js
+++ b/server/migrations.js
@@ -17,6 +17,7 @@ import Swimlanes from '../models/swimlanes';
import Triggers from '../models/triggers';
import UnsavedEdits from '../models/unsavedEdits';
import Users from '../models/users';
+import Org from '../models/org';
// Anytime you change the schema of one of the collection in a non-backward
// compatible way you have to write a migration in this file using the following
@@ -703,6 +704,7 @@ const firstBatchOfDbsToAddCreatedAndUpdated = [
Swimlanes,
Triggers,
UnsavedEdits,
+ Org,
];
firstBatchOfDbsToAddCreatedAndUpdated.forEach(db => {
@@ -737,6 +739,7 @@ const modifiedAtTables = [
Triggers,
UnsavedEdits,
Users,
+ Org,
];
Migrations.add('add-missing-created-and-modified', () => {