Skip to content

Commit

Permalink
feature/1218 Settlement Model Handler Design (#176)
Browse files Browse the repository at this point in the history
* Added transferParticipantStateChange and FKs

* Init SettlementModelHandler SD

* Updated sequence diagrams

* Remove SVG files

Co-authored-by: Sam <elnyry@users.noreply.github.com>
  • Loading branch information
ggrg and Sam authored Feb 28, 2020
1 parent 8e0cdfd commit 8bbdb9a
Show file tree
Hide file tree
Showing 9 changed files with 334 additions and 107 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ CREATE TABLE `migration` (
`batch` int(11) DEFAULT NULL,
`migration_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=155 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -448,7 +448,7 @@ CREATE TABLE `participant` (
`createdBy` varchar(128) NOT NULL,
PRIMARY KEY (`participantId`),
UNIQUE KEY `participant_name_unique` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -498,7 +498,7 @@ CREATE TABLE `participantCurrency` (
CONSTRAINT `participantcurrency_currencyid_foreign` FOREIGN KEY (`currencyId`) REFERENCES `currency` (`currencyid`),
CONSTRAINT `participantcurrency_ledgeraccounttypeid_foreign` FOREIGN KEY (`ledgerAccountTypeId`) REFERENCES `ledgerAccountType` (`ledgeraccounttypeid`),
CONSTRAINT `participantcurrency_participantid_foreign` FOREIGN KEY (`participantId`) REFERENCES `participant` (`participantid`)
) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand All @@ -521,7 +521,7 @@ CREATE TABLE `participantEndpoint` (
KEY `participantendpoint_endpointtypeid_index` (`endpointTypeId`),
CONSTRAINT `participantendpoint_endpointtypeid_foreign` FOREIGN KEY (`endpointTypeId`) REFERENCES `endpointType` (`endpointtypeid`),
CONSTRAINT `participantendpoint_participantid_foreign` FOREIGN KEY (`participantId`) REFERENCES `participant` (`participantid`)
) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand All @@ -548,7 +548,7 @@ CREATE TABLE `participantLimit` (
CONSTRAINT `participantlimit_participantcurrencyid_foreign` FOREIGN KEY (`participantCurrencyId`) REFERENCES `participantCurrency` (`participantcurrencyid`),
CONSTRAINT `participantlimit_participantlimittypeid_foreign` FOREIGN KEY (`participantLimitTypeId`) REFERENCES `participantLimitType` (`participantlimittypeid`),
CONSTRAINT `participantlimit_startafterparticipantpositionchangeid_foreign` FOREIGN KEY (`startAfterParticipantPositionChangeId`) REFERENCES `participantPositionChange` (`participantpositionchangeid`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -603,7 +603,7 @@ CREATE TABLE `participantPosition` (
PRIMARY KEY (`participantPositionId`),
KEY `participantposition_participantcurrencyid_index` (`participantCurrencyId`),
CONSTRAINT `participantposition_participantcurrencyid_foreign` FOREIGN KEY (`participantCurrencyId`) REFERENCES `participantCurrency` (`participantcurrencyid`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand All @@ -625,7 +625,7 @@ CREATE TABLE `participantPositionChange` (
KEY `participantpositionchange_transferstatechangeid_index` (`transferStateChangeId`),
CONSTRAINT `participantpositionchange_participantpositionid_foreign` FOREIGN KEY (`participantPositionId`) REFERENCES `participantPosition` (`participantpositionid`),
CONSTRAINT `participantpositionchange_transferstatechangeid_foreign` FOREIGN KEY (`transferStateChangeId`) REFERENCES `transferStateChange` (`transferstatechangeid`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -991,7 +991,7 @@ CREATE TABLE `segment` (
`changedDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`segmentId`),
KEY `segment_keys_index` (`segmentType`,`enumeration`,`tableName`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -1119,6 +1119,7 @@ CREATE TABLE `settlementModel` (
`currencyId` varchar(3) DEFAULT NULL,
`requireLiquidityCheck` tinyint(1) NOT NULL DEFAULT '1',
`ledgerAccountTypeId` int(10) unsigned NOT NULL,
`autoPositionReset` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`settlementModelId`),
UNIQUE KEY `settlementmodel_name_unique` (`name`),
KEY `settlementmodel_settlementgranularityid_index` (`settlementGranularityId`),
Expand Down Expand Up @@ -1570,7 +1571,7 @@ CREATE TABLE `transferExtension` (
PRIMARY KEY (`transferExtensionId`),
KEY `transferextension_transferid_foreign` (`transferId`),
CONSTRAINT `transferextension_transferid_foreign` FOREIGN KEY (`transferId`) REFERENCES `transfer` (`transferid`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -1625,16 +1626,19 @@ CREATE TABLE `transferParticipant` (
`ledgerEntryTypeId` int(10) unsigned NOT NULL,
`amount` decimal(18,4) NOT NULL,
`createdDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`currentStateChangeId` bigint(20) unsigned DEFAULT NULL,
PRIMARY KEY (`transferParticipantId`),
KEY `transferparticipant_transferid_index` (`transferId`),
KEY `transferparticipant_participantcurrencyid_index` (`participantCurrencyId`),
KEY `transferparticipant_transferparticipantroletypeid_index` (`transferParticipantRoleTypeId`),
KEY `transferparticipant_ledgerentrytypeid_index` (`ledgerEntryTypeId`),
KEY `transferparticipant_currentstatechangeid_foreign` (`currentStateChangeId`),
CONSTRAINT `transferparticipant_currentstatechangeid_foreign` FOREIGN KEY (`currentStateChangeId`) REFERENCES `transferParticipantStateChange` (`transferparticipantstatechangeid`),
CONSTRAINT `transferparticipant_ledgerentrytypeid_foreign` FOREIGN KEY (`ledgerEntryTypeId`) REFERENCES `ledgerEntryType` (`ledgerentrytypeid`),
CONSTRAINT `transferparticipant_participantcurrencyid_foreign` FOREIGN KEY (`participantCurrencyId`) REFERENCES `participantCurrency` (`participantcurrencyid`),
CONSTRAINT `transferparticipant_transferid_foreign` FOREIGN KEY (`transferId`) REFERENCES `transfer` (`transferid`),
CONSTRAINT `transferparticipant_transferparticipantroletypeid_foreign` FOREIGN KEY (`transferParticipantRoleTypeId`) REFERENCES `transferParticipantRoleType` (`transferparticipantroletypeid`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand All @@ -1655,6 +1659,27 @@ CREATE TABLE `transferParticipantRoleType` (
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `transferParticipantStateChange`
--

DROP TABLE IF EXISTS `transferParticipantStateChange`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `transferParticipantStateChange` (
`transferParticipantStateChangeId` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`transferParticipantId` bigint(20) unsigned NOT NULL,
`settlementWindowStateId` varchar(50) NOT NULL,
`reason` varchar(512) DEFAULT NULL,
`createdDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`transferParticipantStateChangeId`),
KEY `transferparticipantstatechange_transferparticipantid_index` (`transferParticipantId`),
KEY `transferparticipantstatechange_settlementwindowstateid_index` (`settlementWindowStateId`),
CONSTRAINT `transferparticipantstatechange_settlementwindowstateid_foreign` FOREIGN KEY (`settlementWindowStateId`) REFERENCES `settlementWindowState` (`settlementwindowstateid`),
CONSTRAINT `transferparticipantstatechange_transferparticipantid_foreign` FOREIGN KEY (`transferParticipantId`) REFERENCES `transferParticipant` (`transferparticipantid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `transferRules`
--
Expand Down Expand Up @@ -1708,7 +1733,7 @@ CREATE TABLE `transferStateChange` (
KEY `transferstatechange_transferstateid_index` (`transferStateId`),
CONSTRAINT `transferstatechange_transferid_foreign` FOREIGN KEY (`transferId`) REFERENCES `transfer` (`transferid`),
CONSTRAINT `transferstatechange_transferstateid_foreign` FOREIGN KEY (`transferStateId`) REFERENCES `transferState` (`transferstateid`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand All @@ -1726,7 +1751,7 @@ CREATE TABLE `transferTimeout` (
PRIMARY KEY (`transferTimeoutId`),
UNIQUE KEY `transfertimeout_transferid_unique` (`transferId`),
CONSTRAINT `transfertimeout_transferid_foreign` FOREIGN KEY (`transferId`) REFERENCES `transfer` (`transferid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
Expand Down Expand Up @@ -1792,4 +1817,4 @@ CREATE TABLE `transferTimeout` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2020-01-23 19:33:54
-- Dump completed on 2020-02-20 22:51:43
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<diagram version="1" name="cl_settlement.erd" time="202001071109">
<diagram version="1" name="cl_settlement.erd" time="202002202249">
<entities>
<data-source id="mysql5-165de388ac0-4a3e261fc1d1cb30">
<entity id="1" name="contactType" fq-name="central_ledger.contactType" order="0" color-bg="254,251,0" x="1970" y="210">
Expand Down Expand Up @@ -35,10 +35,10 @@
<entity id="11" name="transferStateChange" fq-name="central_ledger.transferStateChange" order="10" color-bg="133,133,133" x="290" y="430">
<path name="central_ledger"/>
</entity>
<entity id="12" name="transfer" fq-name="central_ledger.transfer" order="11" color-bg="133,133,133" x="700" y="400">
<entity id="12" name="transfer" fq-name="central_ledger.transfer" order="11" color-bg="133,133,133" x="680" y="390">
<path name="central_ledger"/>
</entity>
<entity id="13" name="settlement" fq-name="central_ledger.settlement" order="12" color-bg="255,38,0" x="1450" y="720">
<entity id="13" name="settlement" fq-name="central_ledger.settlement" order="12" color-bg="255,38,0" x="1440" y="746">
<path name="central_ledger"/>
</entity>
<entity id="14" name="participantLimit" fq-name="central_ledger.participantLimit" order="13" color-bg="0,249,0" x="300" y="20">
Expand All @@ -47,7 +47,7 @@
<entity id="15" name="participantLimitType" fq-name="central_ledger.participantLimitType" order="14" color-bg="0,150,255" x="20" y="20">
<path name="central_ledger"/>
</entity>
<entity id="16" name="transferParticipant" fq-name="central_ledger.transferParticipant" order="15" color-bg="145,145,145" x="880" y="380">
<entity id="16" name="transferParticipant" fq-name="central_ledger.transferParticipant" order="15" color-bg="145,145,145" x="860" y="390">
<path name="central_ledger"/>
</entity>
<entity id="17" name="transferParticipantRoleType" fq-name="central_ledger.transferParticipantRoleType" order="16" color-bg="0,150,255" x="1490" y="230">
Expand All @@ -59,7 +59,7 @@
<entity id="19" name="transferFulfilment" fq-name="central_ledger.transferFulfilment" order="19" color-bg="145,145,145" x="480" y="1000">
<path name="central_ledger"/>
</entity>
<entity id="20" name="settlementWindow" fq-name="central_ledger.settlementWindow" order="20" color-bg="255,38,0" x="1630" y="860">
<entity id="20" name="settlementWindow" fq-name="central_ledger.settlementWindow" order="20" color-bg="255,38,0" x="1648" y="856">
<path name="central_ledger"/>
</entity>
<entity id="21" name="transferDuplicateCheck" fq-name="central_ledger.transferDuplicateCheck" order="21" color-bg="145,145,145" x="360" y="600">
Expand Down Expand Up @@ -104,10 +104,10 @@
<entity id="34" name="settlementStateChange" fq-name="central_ledger.settlementStateChange" order="34" color-bg="255,38,0" x="1893" y="589">
<path name="central_ledger"/>
</entity>
<entity id="35" name="settlementSettlementWindow" fq-name="central_ledger.settlementSettlementWindow" order="35" color-bg="255,38,0" x="1130" y="740">
<entity id="35" name="settlementSettlementWindow" fq-name="central_ledger.settlementSettlementWindow" order="35" color-bg="255,38,0" x="1130" y="814">
<path name="central_ledger"/>
</entity>
<entity id="36" name="settlementParticipantCurrency" fq-name="central_ledger.settlementParticipantCurrency" order="36" color-bg="255,38,0" x="1450" y="420">
<entity id="36" name="settlementParticipantCurrency" fq-name="central_ledger.settlementParticipantCurrency" order="36" color-bg="255,38,0" x="1460" y="410">
<path name="central_ledger"/>
</entity>
<entity id="37" name="settlementParticipantCurrencyStateChange" fq-name="central_ledger.settlementParticipantCurrencyStateChange" order="37" color-bg="255,38,0" x="1760" y="410">
Expand All @@ -128,7 +128,7 @@
<entity id="42" name="settlementWindowContentStateChange" fq-name="central_ledger.settlementWindowContentStateChange" order="42" color-bg="255,38,0" x="1460" y="1020">
<path name="central_ledger"/>
</entity>
<entity id="43" name="settlementContentAggregation" fq-name="central_ledger.settlementContentAggregation" order="43" color-bg="255,38,0" x="1140" y="430">
<entity id="43" name="settlementContentAggregation" fq-name="central_ledger.settlementContentAggregation" order="43" color-bg="255,38,0" x="1140" y="551">
<path name="central_ledger"/>
</entity>
<entity id="44" name="settlementModel" fq-name="central_ledger.settlementModel" order="44" color-bg="0,150,255" x="860" y="680">
Expand All @@ -146,6 +146,9 @@
<entity id="48" name="expiringTransfer" fq-name="central_ledger.expiringTransfer" order="46" color-bg="146,146,146" x="420" y="800">
<path name="central_ledger"/>
</entity>
<entity id="49" name="transferParticipantStateChange" fq-name="central_ledger.transferParticipantStateChange" order="49" color-bg="255,38,0" x="1140" y="370">
<path name="central_ledger"/>
</entity>
</data-source>
</entities>
<relations>
Expand All @@ -169,12 +172,14 @@
<relation name="ilppacket_transferid_foreign" fq-name="central_ledger.ilpPacket.ilppacket_transferid_foreign" type="fk" pk-ref="12" fk-ref="27"/>
<relation name="transferfulfilmentduplicatecheck_transferid_foreign" fq-name="central_ledger.transferFulfilmentDuplicateCheck.transferfulfilmentduplicatecheck_transferid_foreign" type="fk" pk-ref="12" fk-ref="29"/>
<relation name="transfererrorduplicatecheck_transferid_foreign" fq-name="central_ledger.transferErrorDuplicateCheck.transfererrorduplicatecheck_transferid_foreign" type="fk" pk-ref="12" fk-ref="40"/>
<relation name="expiringtransfer_transferid_foreign" fq-name="central_ledger.expiringTransfer.expiringtransfer_transferid_foreign" type="fk" pk-ref="12" fk-ref="48"/>
<relation name="settlementstatechange_settlementid_foreign" fq-name="central_ledger.settlementStateChange.settlementstatechange_settlementid_foreign" type="fk" pk-ref="13" fk-ref="34"/>
<relation name="settlementsettlementwindow_settlementid_foreign" fq-name="central_ledger.settlementSettlementWindow.settlementsettlementwindow_settlementid_foreign" type="fk" pk-ref="13" fk-ref="35"/>
<relation name="settlementparticipantcurrency_settlementid_foreign" fq-name="central_ledger.settlementParticipantCurrency.settlementparticipantcurrency_settlementid_foreign" type="fk" pk-ref="13" fk-ref="36"/>
<relation name="settlementwindowcontent_settlementid_foreign" fq-name="central_ledger.settlementWindowContent.settlementwindowcontent_settlementid_foreign" type="fk" pk-ref="13" fk-ref="41"/>
<relation name="settlementcontentaggregation_settlementid_foreign" fq-name="central_ledger.settlementContentAggregation.settlementcontentaggregation_settlementid_foreign" type="fk" pk-ref="13" fk-ref="43"/>
<relation name="participantlimit_participantlimittypeid_foreign" fq-name="central_ledger.participantLimit.participantlimit_participantlimittypeid_foreign" type="fk" pk-ref="15" fk-ref="14"/>
<relation name="transferparticipantstatechange_transferparticipantid_foreign" fq-name="central_ledger.transferParticipantStateChange.transferparticipantstatechange_transferparticipantid_foreign" type="fk" pk-ref="16" fk-ref="49"/>
<relation name="transferparticipant_transferparticipantroletypeid_foreign" fq-name="central_ledger.transferParticipant.transferparticipant_transferparticipantroletypeid_foreign" type="fk" pk-ref="17" fk-ref="16"/>
<relation name="sca_transferparticipantroletypeid_foreign" fq-name="central_ledger.settlementContentAggregation.sca_transferparticipantroletypeid_foreign" type="fk" pk-ref="17" fk-ref="43"/>
<relation name="transferfulfilment_settlementwindowid_foreign" fq-name="central_ledger.transferFulfilment.transferfulfilment_settlementwindowid_foreign" type="fk" pk-ref="20" fk-ref="19"/>
Expand All @@ -194,7 +199,8 @@
<relation name="transferfulfilment_transferid_foreign" fq-name="central_ledger.transferFulfilment.transferfulfilment_transferid_foreign" type="fk" pk-ref="29" fk-ref="19"/>
<relation name="settlementwindowstatechange_settlementwindowstateid_foreign" fq-name="central_ledger.settlementWindowStateChange.settlementwindowstatechange_settlementwindowstateid_foreign" type="fk" pk-ref="31" fk-ref="32"/>
<relation name="sws1_settlementwindowstateid_foreign" fq-name="central_ledger.settlementWindowContentStateChange.sws1_settlementwindowstateid_foreign" type="fk" pk-ref="31" fk-ref="42"/>
<relation name="settlementcontentaggregation_settlementwindowstateid_foreign" fq-name="central_ledger.settlementContentAggregation.settlementcontentaggregation_settlementwindowstateid_foreign" type="fk" pk-ref="31" fk-ref="43"/>
<relation name="settlementcontentaggregation_currentstateid_foreign" fq-name="central_ledger.settlementContentAggregation.settlementcontentaggregation_currentstateid_foreign" type="fk" pk-ref="31" fk-ref="43"/>
<relation name="transferparticipantstatechange_settlementwindowstateid_foreign" fq-name="central_ledger.transferParticipantStateChange.transferparticipantstatechange_settlementwindowstateid_foreign" type="fk" pk-ref="31" fk-ref="49"/>
<relation name="settlementwindow_currentstatechangeid_foreign" fq-name="central_ledger.settlementWindow.settlementwindow_currentstatechangeid_foreign" type="fk" pk-ref="32" fk-ref="20"/>
<relation name="settlementstatechange_settlementstateid_foreign" fq-name="central_ledger.settlementStateChange.settlementstatechange_settlementstateid_foreign" type="fk" pk-ref="33" fk-ref="34"/>
<relation name="spcsc_settlementstateid_foreign" fq-name="central_ledger.settlementParticipantCurrencyStateChange.spcsc_settlementstateid_foreign" type="fk" pk-ref="33" fk-ref="37"/>
Expand All @@ -212,6 +218,7 @@
<relation name="settlementmodel_settlementdelayid_foreign" fq-name="central_ledger.settlementModel.settlementmodel_settlementdelayid_foreign" type="fk" pk-ref="45" fk-ref="44"/>
<relation name="settlementmodel_settlementinterchangeid_foreign" fq-name="central_ledger.settlementModel.settlementmodel_settlementinterchangeid_foreign" type="fk" pk-ref="46" fk-ref="44"/>
<relation name="settlementmodel_settlementgranularityid_foreign" fq-name="central_ledger.settlementModel.settlementmodel_settlementgranularityid_foreign" type="fk" pk-ref="47" fk-ref="44"/>
<relation name="transferparticipant_currentstatechangeid_foreign" fq-name="central_ledger.transferParticipant.transferparticipant_currentstatechangeid_foreign" type="fk" pk-ref="49" fk-ref="16"/>
</relations>
<notes>
<note order="18" x="1900" y="20" w="204" h="151">COLOR LEGEND:
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 8bbdb9a

Please sign in to comment.