killbill-memoizeit

Details

diff --git a/entitlement/src/main/java/org/killbill/billing/entitlement/dao/BlockingStateModelDao.java b/entitlement/src/main/java/org/killbill/billing/entitlement/dao/BlockingStateModelDao.java
index 8c10dfc..62f0483 100644
--- a/entitlement/src/main/java/org/killbill/billing/entitlement/dao/BlockingStateModelDao.java
+++ b/entitlement/src/main/java/org/killbill/billing/entitlement/dao/BlockingStateModelDao.java
@@ -158,7 +158,7 @@ public class BlockingStateModelDao extends EntityModelDaoBase implements EntityM
 
     @Override
     public TableName getHistoryTableName() {
-        return null;
+        return TableName.BLOCKING_STATES;
     }
 
     @Override
diff --git a/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg b/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
index f5227a1..baf6b96 100644
--- a/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
+++ b/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
@@ -1,6 +1,7 @@
 import "org/killbill/billing/util/entity/dao/EntitySqlDao.sql.stg"
 
 tableName() ::= "blocking_states"
+historyTableName() ::= "blocking_state_history"
 
 andCheckSoftDeletionWithComma(prefix) ::= "and <prefix>is_active"
 
diff --git a/entitlement/src/main/resources/org/killbill/billing/entitlement/ddl.sql b/entitlement/src/main/resources/org/killbill/billing/entitlement/ddl.sql
index c085a6b..5e9dd05 100644
--- a/entitlement/src/main/resources/org/killbill/billing/entitlement/ddl.sql
+++ b/entitlement/src/main/resources/org/killbill/billing/entitlement/ddl.sql
@@ -24,3 +24,29 @@ CREATE TABLE blocking_states (
 CREATE INDEX blocking_states_id ON blocking_states(blockable_id);
 CREATE INDEX blocking_states_id_real ON blocking_states(id);
 CREATE INDEX blocking_states_tenant_account_record_id ON blocking_states(tenant_record_id, account_record_id);
+
+DROP TABLE IF EXISTS blocking_state_history;
+CREATE TABLE blocking_state_history (
+    record_id serial unique,
+    id varchar(36) NOT NULL,
+    target_record_id bigint /*! unsigned */ not null,
+    blockable_id varchar(36) NOT NULL,
+    type varchar(20) NOT NULL,
+    state varchar(50) NOT NULL,
+    service varchar(20) NOT NULL,
+    block_change bool NOT NULL,
+    block_entitlement bool NOT NULL,
+    block_billing bool NOT NULL,
+    effective_date datetime NOT NULL,
+    is_active boolean default true,
+    change_type varchar(6) NOT NULL,
+    created_date datetime NOT NULL,
+    created_by varchar(50) NOT NULL,
+    updated_date datetime DEFAULT NULL,
+    updated_by varchar(50) DEFAULT NULL,
+    account_record_id bigint /*! unsigned */ not null,
+    tenant_record_id bigint /*! unsigned */ not null default 0,
+    PRIMARY KEY(record_id)
+) /*! CHARACTER SET utf8 COLLATE utf8_bin */;
+CREATE INDEX blocking_state_history_target_record_id ON blocking_state_history(target_record_id);
+CREATE INDEX blocking_state_history_tenant_record_id ON blocking_state_history(tenant_record_id);
\ No newline at end of file
diff --git a/entitlement/src/main/resources/org/killbill/billing/entitlement/migration/V20190221163050__blocking_state_history_tables.sql b/entitlement/src/main/resources/org/killbill/billing/entitlement/migration/V20190221163050__blocking_state_history_tables.sql
new file mode 100644
index 0000000..e9156fe
--- /dev/null
+++ b/entitlement/src/main/resources/org/killbill/billing/entitlement/migration/V20190221163050__blocking_state_history_tables.sql
@@ -0,0 +1,25 @@
+DROP TABLE IF EXISTS blocking_state_history;
+CREATE TABLE blocking_state_history (
+    record_id serial unique,
+    id varchar(36) NOT NULL,
+    target_record_id bigint /*! unsigned */ not null,
+    blockable_id varchar(36) NOT NULL,
+    type varchar(20) NOT NULL,
+    state varchar(50) NOT NULL,
+    service varchar(20) NOT NULL,
+    block_change bool NOT NULL,
+    block_entitlement bool NOT NULL,
+    block_billing bool NOT NULL,
+    effective_date datetime NOT NULL,
+    is_active boolean default true,
+    change_type varchar(6) NOT NULL,
+    created_date datetime NOT NULL,
+    created_by varchar(50) NOT NULL,
+    updated_date datetime DEFAULT NULL,
+    updated_by varchar(50) DEFAULT NULL,
+    account_record_id bigint /*! unsigned */ not null,
+    tenant_record_id bigint /*! unsigned */ not null default 0,
+    PRIMARY KEY(record_id)
+) /*! CHARACTER SET utf8 COLLATE utf8_bin */;
+CREATE INDEX blocking_state_history_target_record_id ON blocking_state_history(target_record_id);
+CREATE INDEX blocking_state_history_tenant_record_id ON blocking_state_history(tenant_record_id);
diff --git a/util/src/main/java/org/killbill/billing/util/dao/TableName.java b/util/src/main/java/org/killbill/billing/util/dao/TableName.java
index f32c9a2..f4158c9 100644
--- a/util/src/main/java/org/killbill/billing/util/dao/TableName.java
+++ b/util/src/main/java/org/killbill/billing/util/dao/TableName.java
@@ -30,7 +30,8 @@ public enum TableName {
     ACCOUNT_EMAIL("account_emails", ObjectType.ACCOUNT_EMAIL, ACCOUNT_EMAIL_HISTORY),
     BUNDLE_HISTORY("bundle_history"),
     BUNDLES("bundles", ObjectType.BUNDLE, BUNDLE_HISTORY),
-    BLOCKING_STATES("blocking_states", ObjectType.BLOCKING_STATES),
+    BLOCKING_STATE_HISTORY("blocking_state_history"),
+    BLOCKING_STATES("blocking_states", ObjectType.BLOCKING_STATES, BLOCKING_STATE_HISTORY),
     CUSTOM_FIELD_HISTORY("custom_field_history"),
     CUSTOM_FIELD("custom_fields", ObjectType.CUSTOM_FIELD, CUSTOM_FIELD_HISTORY),
     INVOICE_ITEMS("invoice_items", ObjectType.INVOICE_ITEM),