diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/WithSecurityId.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/WithSecurityId.java new file mode 100644 index 000000000..410c67378 --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/WithSecurityId.java @@ -0,0 +1,7 @@ +package ru.spcex.clearing.gatewayapi.controller.request; + +import java.util.UUID; + +public interface WithSecurityId { + UUID getSecurityId(); +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/company/Company.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/company/Company.java index 0ffad9f2a..3f4774c68 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/company/Company.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/company/Company.java @@ -1,12 +1,9 @@ package ru.spcex.clearing.gatewayapi.controller.request.company; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; /** @@ -62,32 +59,6 @@ public class Company extends WithMapId { ) private String initiatorCode; - - @ApiModelProperty(hidden = true) - @JsonIgnore - private CompanyInfo companyInfo; - - @ApiModelProperty(hidden = true) - @JsonIgnore - private List companyClearingCategoryList = new ArrayList<>(); - - @ApiModelProperty(hidden = true) - @JsonIgnore - private List memberCompanySymbolsList = new ArrayList<>(); - - @ApiModelProperty(hidden = true) - @JsonIgnore - private List contactList = new ArrayList<>(); - - @ApiModelProperty(hidden = true) - @JsonIgnore - private List memberProfileDocumentList = new ArrayList<>(); - - @ApiModelProperty(hidden = true) - @JsonIgnore - private List memberClientList = new ArrayList<>(); - - public UUID getId() { return id; } @@ -144,51 +115,4 @@ public class Company extends WithMapId { this.initiatorCode = initiatorCode; } - public CompanyInfo getCompanyInfo() { - return companyInfo; - } - - public void setCompanyInfo(CompanyInfo companyInfo) { - this.companyInfo = companyInfo; - } - - public List getCompanyClearingCategoryList() { - return companyClearingCategoryList; - } - - public void setCompanyClearingCategoryList(List companyClearingCategoryList) { - this.companyClearingCategoryList = companyClearingCategoryList; - } - - public List getMemberCompanySymbolsList() { - return memberCompanySymbolsList; - } - - public void setMemberCompanySymbolsList(List memberCompanySymbolsList) { - this.memberCompanySymbolsList = memberCompanySymbolsList; - } - - public List getContactList() { - return contactList; - } - - public void setContactList(List contactList) { - this.contactList = contactList; - } - - public List getProfileDocumentList() { - return memberProfileDocumentList; - } - - public void setProfileDocumentList(List memberProfileDocumentList) { - this.memberProfileDocumentList = memberProfileDocumentList; - } - - public List getClientList() { - return memberClientList; - } - - public void setClientList(List memberClientList) { - this.memberClientList = memberClientList; - } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/CouponSchedule.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/CouponSchedule.java index d16e15be1..5a4ad2505 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/CouponSchedule.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/CouponSchedule.java @@ -5,12 +5,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; +import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId; import java.math.BigDecimal; import java.time.LocalDate; import java.util.UUID; -public class CouponSchedule extends WithMapId { +public class CouponSchedule extends WithMapId implements WithSecurityId { @JsonProperty("security_id") @ApiModelProperty( value = "Ссылка на security", @@ -73,6 +74,7 @@ public class CouponSchedule extends WithMapId { private Boolean isDeleted; + @Override public UUID getSecurityId() { return securityId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IncomeListing.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IncomeListing.java index 5762f16cb..96c2625de 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IncomeListing.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IncomeListing.java @@ -5,12 +5,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; +import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId; import java.math.BigDecimal; import java.time.LocalDate; import java.util.UUID; -public class IncomeListing extends WithMapId { +public class IncomeListing extends WithMapId implements WithSecurityId { @JsonProperty("security_id") @ApiModelProperty( value = "Ссылка на security", @@ -121,6 +122,7 @@ public class IncomeListing extends WithMapId { ) private LocalDate endDate; + @Override public UUID getSecurityId() { return securityId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanyInfo.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanyInfo.java index 5069b79b1..374da281b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanyInfo.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanyInfo.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId; import java.util.UUID; @ApiModel("Профиль компании эмитента") -public class IssuerCompanyInfo { +public class IssuerCompanyInfo implements WithCompanyId { @JsonProperty("company_id") @ApiModelProperty( value = "Ссылка на company", @@ -55,7 +56,7 @@ public class IssuerCompanyInfo { ) private String fullNameEng; - + @Override public UUID getCompanyId() { return companyId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanySymbols.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanySymbols.java index 6cbf7b160..fd28e8538 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanySymbols.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerCompanySymbols.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; import java.util.UUID; @ApiModel("Реквизиты компании эмитента") -public class IssuerCompanySymbols extends WithMapId { +public class IssuerCompanySymbols extends WithMapId implements WithCompanyId { @JsonProperty("company_id") @ApiModelProperty( value = "Ссылка на company", @@ -49,6 +50,7 @@ public class IssuerCompanySymbols extends WithMapId { private String companySymbolValue; + @Override public UUID getCompanyId() { return companyId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerContact.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerContact.java index 15ebab821..e604a8d8e 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerContact.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/IssuerContact.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.gatewayapi.controller.request.listing.fond; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import ru.spcex.clearing.gatewayapi.controller.request.WithCompanyId; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; import java.util.UUID; @ApiModel("Контакты компании эмитента") -public class IssuerContact extends WithMapId { +public class IssuerContact extends WithMapId implements WithCompanyId { @JsonProperty("company_id") @ApiModelProperty( value = "Ссылка на company", @@ -53,6 +54,7 @@ public class IssuerContact extends WithMapId { private String contactValue; + @Override public UUID getCompanyId() { return companyId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/Nominal.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/Nominal.java index 55aba7bcf..851e2616b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/Nominal.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/request/listing/fond/Nominal.java @@ -6,12 +6,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer; import ru.spcex.clearing.gatewayapi.controller.request.WithMapId; +import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId; import java.math.BigDecimal; import java.time.LocalDate; import java.util.UUID; -public class Nominal extends WithMapId { +public class Nominal extends WithMapId implements WithSecurityId { @JsonProperty("security_id") @ApiModelProperty( value = "Ссылка на security", @@ -51,6 +52,7 @@ public class Nominal extends WithMapId { private BigDecimal accruedCoupon; + @Override public UUID getSecurityId() { return securityId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/ListingFondProcessor.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/ListingFondProcessor.java new file mode 100644 index 000000000..d50e7879d --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/ListingFondProcessor.java @@ -0,0 +1,69 @@ +package ru.spcex.clearing.gatewayapi.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import ru.spcex.clearing.gatewayapi.controller.request.WithSecurityId; +import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.*; +import ru.spcex.clearing.gatewayapi.service.adapter.SecurityRequestAdapter; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.company.EquitySecurityGatewayRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.FixedIncomeGatewayRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityGatewayRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.platform.enumeration.InstrumentType; + +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + +@Service +public class ListingFondProcessor { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final SecurityRequestAdapter securityRequestAdapter; + private final KafkaSender kafkaSender; + + public ListingFondProcessor(SecurityRequestAdapter securityRequestAdapter, + KafkaSender kafkaSender) { + this.securityRequestAdapter = securityRequestAdapter; + this.kafkaSender = kafkaSender; + } + + public void process(FondListingsRequest request) { + List securityList = request.getSecurities(); + for (FondSecurity security : securityList) { + UUID securityId = security.getId(); + log.debug("Grouping by securityId: {}", securityId); + List incomeListings = groupByCompanyId(request.getListingList(), securityId); + List couponSchedules = groupByCompanyId(request.getCouponSchedules(), securityId); + List nominals = groupByCompanyId(request.getNominalList(), securityId); + + List listingRequests = incomeListings.stream(). + map(securityRequestAdapter::toIncomeListing).toList(); + List couponPeriodRequests = couponSchedules.stream(). + map(securityRequestAdapter::toCouponPeriodRequest).toList(); + List cashFlowRequests = nominals.stream(). + map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList(); + + SecurityGatewayRequest securityGatewayRequest; + if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { + FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security); + securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest); + } else { + EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security); + securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest); + } + securityGatewayRequest.setListing(listingRequests); + securityGatewayRequest.setCouponPeriods(couponPeriodRequests); + securityGatewayRequest.setFixedIncomesCashFlow(cashFlowRequests); + + kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_MULTIREQUEST, securityGatewayRequest); + } + } + + private List groupByCompanyId(List listToProcess, UUID securityId) { + return listToProcess.stream().filter(t -> t.getSecurityId().equals(securityId)).collect(Collectors.toList()); + } +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java new file mode 100644 index 000000000..85d398cef --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java @@ -0,0 +1,70 @@ +package ru.spcex.clearing.gatewayapi.service.adapter; + +import org.springframework.stereotype.Service; +import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.CouponSchedule; +import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.FondSecurity; +import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.IncomeListing; +import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.Nominal; +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*; + +@Service +public class SecurityRequestAdapter { + + public FixedIncomeSecurityNewRequest toFixedIncomeSecurityRequest(FondSecurity fondSecurity) { + FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = new FixedIncomeSecurityNewRequest(); + fixedIncomeSecurityNewRequest.setSecuritySymbol(fondSecurity.getSecuritySymbol()); + fixedIncomeSecurityNewRequest.setShortName(fondSecurity.getShortName()); + fixedIncomeSecurityNewRequest.setFullName(fondSecurity.getFullName()); + fixedIncomeSecurityNewRequest.setIsin(fondSecurity.getIsin()); + fixedIncomeSecurityNewRequest.setBondType(fondSecurity.getBondType()); + fixedIncomeSecurityNewRequest.setNominalValue(fondSecurity.getNominalValue()); + fixedIncomeSecurityNewRequest.setNominalCurrency(fondSecurity.getNominalCurrency()); + fixedIncomeSecurityNewRequest.setMaturityDate(fondSecurity.getMaturityDate()); + fixedIncomeSecurityNewRequest.setCouponFrequency(fondSecurity.getCouponFrequency().longValue()); + fixedIncomeSecurityNewRequest.setShortNameEng(fondSecurity.getShortNameEng()); + fixedIncomeSecurityNewRequest.setFullNameEng(fondSecurity.getFullNameEng()); + fixedIncomeSecurityNewRequest.setWorkflowStatus(fondSecurity.getWorkflowStatus()); + fixedIncomeSecurityNewRequest.setInstrumentType(fondSecurity.getInstrumentType()); + return fixedIncomeSecurityNewRequest; + } + + public EquitySecurityNewRequest toEquitySecurityNewRequest(FondSecurity fondSecurity) { + EquitySecurityNewRequest equitySecurityNewRequest = new EquitySecurityNewRequest(); + equitySecurityNewRequest.setSecuritySymbol(fondSecurity.getSecuritySymbol()); + equitySecurityNewRequest.setShortName(fondSecurity.getShortName()); + equitySecurityNewRequest.setFullName(fondSecurity.getFullName()); + equitySecurityNewRequest.setIsin(fondSecurity.getIsin()); + equitySecurityNewRequest.setShareType(fondSecurity.getShareType()); + equitySecurityNewRequest.setShortNameEng(fondSecurity.getShortNameEng()); + equitySecurityNewRequest.setFullNameEng(fondSecurity.getFullNameEng()); + equitySecurityNewRequest.setWorkflowStatus(fondSecurity.getWorkflowStatus()); + equitySecurityNewRequest.setInstrumentType(fondSecurity.getInstrumentType()); + return equitySecurityNewRequest; + } + + public ListingNewRequest toIncomeListing(IncomeListing incomeListing) { + ListingNewRequest listingNewRequest = new ListingNewRequest(); + listingNewRequest.setMarket(incomeListing.getCode()); + listingNewRequest.setLotSize(incomeListing.getLotSize()); + listingNewRequest.setTradingCurrency(incomeListing.getTradingCurrency()); + listingNewRequest.setWorkflowStatus(incomeListing.getWorkflowStatus()); + return listingNewRequest; + } + + public CouponPeriodNewRequest toCouponPeriodRequest(CouponSchedule couponSchedule) { + CouponPeriodNewRequest couponPeriodNewRequest = new CouponPeriodNewRequest(); + couponPeriodNewRequest.setCouponRate(couponSchedule.getCouponRate()); + couponPeriodNewRequest.setNumber(couponSchedule.getCouponNumber()); + couponPeriodNewRequest.setPeriodEndDate(couponSchedule.getPeriodEndDate()); + couponPeriodNewRequest.setPeriodStartDate(couponSchedule.getPeriodStartDate()); + return couponPeriodNewRequest; + } + + public FixedIncomeCashFlowNewRequest toFixedIncomeCashFlowRequest(Nominal nominal) { + FixedIncomeCashFlowNewRequest fixedIncomeCashFlowNewRequest = new FixedIncomeCashFlowNewRequest(); + fixedIncomeCashFlowNewRequest.setAccruedCoupon(nominal.getAccruedCoupon()); + fixedIncomeCashFlowNewRequest.setNominalValue(nominal.getNominal()); + fixedIncomeCashFlowNewRequest.setNumber(nominal.getCouponNumber()); + return fixedIncomeCashFlowNewRequest; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index b0ed0dfe2..dd0b4cb30 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -44,6 +44,7 @@ public interface Consts { String DESTINATION_PLANNER_DELETE = "planner-delete"; String DESTINATION_COMPANY_MULTIREQUEST = "company-multirequest-new"; + String DESTINATION_SECURITY_MULTIREQUEST = "company-multirequest-new"; String DESTINATION_COMPANY_NEW = "company-new"; String DESTINATION_COMPANY_DELETE = "company-delete"; String DESTINATION_COMPANY_UPDATE = "company-update"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java new file mode 100644 index 000000000..71b1b07c9 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java @@ -0,0 +1,19 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.company; + +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest; + +public class EquitySecurityGatewayRequest extends SecurityGatewayRequest { + public EquitySecurityGatewayRequest(EquitySecurityNewRequest request) { + super(request); + } + + @Override + public EquitySecurityNewRequest getSecurity() { + return super.getSecurity(); + } + + @Override + public void setSecurity(EquitySecurityNewRequest security) { + super.setSecurity(security); + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java new file mode 100644 index 000000000..a4dd23060 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java @@ -0,0 +1,19 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.company; + +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest; + +public class FixedIncomeGatewayRequest extends SecurityGatewayRequest { + public FixedIncomeGatewayRequest(FixedIncomeSecurityNewRequest request) { + super(request); + } + + @Override + public FixedIncomeSecurityNewRequest getSecurity() { + return super.getSecurity(); + } + + @Override + public void setSecurity(FixedIncomeSecurityNewRequest security) { + super.setSecurity(security); + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityGatewayRequest.java new file mode 100644 index 000000000..0b3c7080c --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityGatewayRequest.java @@ -0,0 +1,72 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.company; + +import com.fasterxml.jackson.annotation.JsonProperty; +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeCashFlowNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.securitites.ListingNewRequest; +import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; +import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol; + +import java.util.ArrayList; +import java.util.List; + +public abstract class SecurityGatewayRequest { + @JsonProperty + private String uuid; + + @JsonProperty + protected T security; + @JsonProperty + private List listing = new ArrayList<>(); + @JsonProperty + private List couponPeriods = new ArrayList<>(); + @JsonProperty + private List fixedIncomesCashFlow = new ArrayList<>(); + + public SecurityGatewayRequest(T security) { + this.security = security; + } + + @JsonProperty + private String securityType; + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public T getSecurity() { + return security; + } + + public void setSecurity(T security) { + this.security = security; + } + + public List getListing() { + return listing; + } + + public void setListing(List listing) { + this.listing = listing; + } + + public List getCouponPeriods() { + return couponPeriods; + } + + public void setCouponPeriods(List couponPeriods) { + this.couponPeriods = couponPeriods; + } + + public List getFixedIncomesCashFlow() { + return fixedIncomesCashFlow; + } + + public void setFixedIncomesCashFlow(List fixedIncomesCashFlow) { + this.fixedIncomesCashFlow = fixedIncomesCashFlow; + } +}