summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/counters.js1
-rw-r--r--models/org.js121
2 files changed, 122 insertions, 0 deletions
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;