blob: ccf1393bf54b4cb762bba2c0190b5d85d64d8bf7 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
CREATE TABLE IF NOT EXISTS BC_CUSTOMER (
BC_ID INTEGER AUTO_INCREMENT,
BC_NAME VARCHAR (64),
BC_STARTED_DATE TIMESTAMP,
BC_EMAIL VARCHAR (64),
BC_ADDRESS VARCHAR (256),
CONSTRAINT PK_BC_CUSTOMER PRIMARY KEY (BC_ID)
);
CREATE HASH INDEX BC_CUSTOMER_IND_BY_BC_NAME ON BC_CUSTOMER(BC_NAME);
CREATE HASH INDEX BC_CUSTOMER_IND_BY_BC_EMAIL ON BC_CUSTOMER(BC_EMAIL);
CREATE TABLE IF NOT EXISTS BC_ITEM (
BC_ID INTEGER AUTO_INCREMENT,
BC_NAME VARCHAR (64),
BC_COST VARCHAR (64),
BC_DESCRIPTION VARCHAR(128),
BC_PARENT_ITEM_ID INTEGER,
CONSTRAINT PK_BC_ITEM PRIMARY KEY (BC_ID)
);
INSERT INTO BC_ITEM (BC_NAME,BC_COST,BC_DESCRIPTION,BC_PARENT_ITEM_ID) values ('Demo',NULL,NULL,NULL);
INSERT INTO BC_ITEM (BC_NAME,BC_COST,BC_DESCRIPTION,BC_PARENT_ITEM_ID) values ('SMB',NULL,NULL,NULL);
INSERT INTO BC_ITEM (BC_NAME,BC_COST,BC_DESCRIPTION,BC_PARENT_ITEM_ID) values ('Professional',NULL,NULL,NULL);
INSERT INTO BC_ITEM (BC_NAME,BC_COST,BC_DESCRIPTION,BC_PARENT_ITEM_ID) values ('Enterprise',NULL,NULL,NULL);
ALTER TABLE BC_ITEM ADD CONSTRAINT IF NOT EXISTS BC_ITEM_FK_BY_PARENT_ITEM_ID FOREIGN KEY (BC_PARENT_ITEM_ID) REFERENCES BC_ITEM (BC_ID);
CREATE TABLE IF NOT EXISTS BC_SUBSCRIPTION (
BC_ID INTEGER AUTO_INCREMENT,
BC_FILTER VARCHAR (32),
BC_IS_ACTIVE INTEGER,
BC_ACTIVE_SINCE TIMESTAMP,
BC_ACTIVE_UNTIL TIMESTAMP,
BC_ITEM_ID INTEGER,
BC_TENANT_ID INTEGER,
CONSTRAINT PK_BC_SUBSCRIPTION PRIMARY KEY (BC_ID)
);
ALTER TABLE BC_SUBSCRIPTION ADD CONSTRAINT IF NOT EXISTS BC_SUBSCRIPTION_FK_BY_ITEM_ID FOREIGN KEY (BC_ITEM_ID) REFERENCES BC_ITEM (BC_ID);
CREATE TABLE IF NOT EXISTS BC_INVOICE (
BC_ID INTEGER AUTO_INCREMENT,
BC_TENANT_ID INTEGER,
BC_DATE TIMESTAMP,
BC_START_DATE TIMESTAMP,
BC_END_DATE TIMESTAMP,
BC_BOUGHT_FORWARD VARCHAR (64),
BC_CARRIED_FORWARD VARCHAR (64),
BC_TOTAL_PAYMENTS VARCHAR (64),
BC_TOTAL_COST VARCHAR (64),
CONSTRAINT PK_BC_INVOICE PRIMARY KEY (BC_ID)
);
CREATE TABLE IF NOT EXISTS BC_PAYMENT (
BC_ID INTEGER AUTO_INCREMENT,
BC_DATE TIMESTAMP,
BC_AMOUNT VARCHAR (64),
BC_DESCRIPTION VARCHAR (128),
BC_INVOICE_ID INTEGER,
BC_TENANT_ID INTEGER,
CONSTRAINT PK_BC_PAYMENT PRIMARY KEY (BC_ID)
);
ALTER TABLE BC_PAYMENT ADD CONSTRAINT IF NOT EXISTS BC_PAYMENT_FK_BY_INVOICE_ID FOREIGN KEY (BC_INVOICE_ID) REFERENCES BC_INVOICE (BC_ID);
-- this is n-n relationship
CREATE TABLE IF NOT EXISTS BC_PAYMENT_SUBSCRIPTION (
BC_PAYMENT_ID INTEGER,
BC_SUBSCRIPTION_ID INTEGER,
CONSTRAINT PK_BC_SUBSCRIPTION_ORDER PRIMARY KEY (BC_PAYMENT_ID, BC_SUBSCRIPTION_ID)
);
ALTER TABLE BC_PAYMENT_SUBSCRIPTION ADD CONSTRAINT IF NOT EXISTS BC_PAYMENT_SUBSCRIPTION_FK_BY_PAYMENT_ID FOREIGN KEY (BC_PAYMENT_ID) REFERENCES BC_PAYMENT (BC_ID);
ALTER TABLE BC_PAYMENT_SUBSCRIPTION ADD CONSTRAINT IF NOT EXISTS BC_PAYMENT_SUBSCRIPTION_FK_BY_SUBSCRIPTION_ID FOREIGN KEY (BC_SUBSCRIPTION_ID) REFERENCES BC_SUBSCRIPTION (BC_ID);
CREATE TABLE IF NOT EXISTS BC_INVOICE_SUBSCRIPTION (
BC_ID INTEGER AUTO_INCREMENT,
BC_INVOICE_ID INTEGER,
BC_SUBSCRIPTION_ID INTEGER,
CONSTRAINT PK_BC_INVOICE_ITEM PRIMARY KEY (BC_ID)
);
ALTER TABLE BC_INVOICE_SUBSCRIPTION ADD CONSTRAINT IF NOT EXISTS BC_INVOICE_SUBSCRIPTION_FK_BY_INVOICE_ID FOREIGN KEY (BC_INVOICE_ID) REFERENCES BC_INVOICE (BC_ID);
ALTER TABLE BC_INVOICE_SUBSCRIPTION ADD CONSTRAINT IF NOT EXISTS BC_INVOICE_SUBSCRIPTION_FK_BY_SUBSCRIPTION_ID FOREIGN KEY (BC_SUBSCRIPTION_ID) REFERENCES BC_SUBSCRIPTION (BC_ID);
CREATE TABLE IF NOT EXISTS BC_INVOICE_SUBSCRIPTION_ITEM (
BC_INVOICE_SUBSCRIPTION_ID INTEGER,
BC_ITEM_ID INTEGER,
BC_COST VARCHAR (64),
BC_DESCRIPTION VARCHAR (64),
CONSTRAINT PK_BC_INVOICE_SUBSCRIPTION_ITEM PRIMARY KEY (BC_INVOICE_SUBSCRIPTION_ID, BC_ITEM_ID)
);
ALTER TABLE BC_INVOICE_SUBSCRIPTION_ITEM ADD CONSTRAINT IF NOT EXISTS BC_INVOICE_SUBSCRIPTION_ITEM_FK_BY_INVOICE_SUBSCRIPTION_ID FOREIGN KEY (BC_INVOICE_SUBSCRIPTION_ID) REFERENCES BC_INVOICE_SUBSCRIPTION (BC_ID);
ALTER TABLE BC_INVOICE_SUBSCRIPTION_ITEM ADD CONSTRAINT IF NOT EXISTS BC_INVOICE_SUBSCRIPTION_ITEM_FK_BY_ITEM_ID FOREIGN KEY (BC_ITEM_ID) REFERENCES BC_ITEM(BC_ID);
CREATE TABLE IF NOT EXISTS BC_DISCOUNT (
BC_ID INTEGER AUTO_INCREMENT,
BC_TENANT_ID INTEGER,
BC_PERCENTAGE FLOAT,
BC_AMOUNT FLOAT,
BC_START_DATE TIMESTAMP,
BC_END_DATE TIMESTAMP,
BC_PERCENTAGE_TYPE INTEGER,
CONSTRAINT PK_BC_DISCOUNT PRIMARY KEY (BC_ID)
);