aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js')
-rw-r--r--trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js b/trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js
new file mode 100644
index 0000000..0dfd37e
--- /dev/null
+++ b/trunk/etherpad/src/etherpad/db_migrations/m0005_create_billing_tables.js
@@ -0,0 +1,73 @@
+/**
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS-IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import("etherpad.utils.isPrivateNetworkEdition");
+import("sqlbase.sqlobj");
+
+function run() {
+ if (isPrivateNetworkEdition()) {
+ return;
+ }
+
+ var idColspec = "INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY";
+
+ sqlobj.createTable('billing_purchase', {
+ id: idColspec,
+ type: "ENUM('onetimepurchase', 'subscription')",
+ customer: "INT(11) NOT NULL",
+ product: "VARCHAR(128) NOT NULL",
+ cost: "INT(11) NOT NULL",
+ coupon: "VARCHAR(128) NOT NULL",
+ time: "DATETIME",
+ paidThrough: "DATETIME",
+ status: "ENUM('active', 'inactive')"
+ }, {
+ type: true,
+ customer: true,
+ product: true
+ });
+
+ sqlobj.createTable('billing_invoice', {
+ id: idColspec,
+ time: "DATETIME",
+ purchase: "INT(11) NOT NULL",
+ amt: "INT(11) NOT NULL",
+ status: "ENUM('pending', 'paid', 'void', 'refunded')"
+ }, {
+ status: true
+ });
+
+ sqlobj.createTable('billing_transaction', {
+ id: idColspec,
+ customer: "INT(11)",
+ time: "DATETIME",
+ amt: "INT(11)",
+ payInfo: "VARCHAR(128)",
+ txnId: "VARCHAR(128)", // depends on gateway used?
+ status: "ENUM('new', 'success', 'failure', 'pending')"
+ }, {
+ customer: true,
+ txnId: true
+ });
+
+ sqlobj.createTable('billing_adjustment', {
+ id: idColspec,
+ transaction: "INT(11)",
+ invoice: "INT(11)",
+ time: "DATETIME",
+ amt: "INT(11)"
+ });
+}