.
This commit is contained in:
parent
0d9ae577df
commit
8a6ae8dcda
35 changed files with 2590 additions and 0 deletions
94
clearing-parent/gateway-api/pom.xml
Normal file
94
clearing-parent/gateway-api/pom.xml
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>clearing-parent</artifactId>
|
||||||
|
<groupId>ru.spcex.clearing</groupId>
|
||||||
|
<version>SPCEX-1.0.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>gateway-api</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.spcex.platform</groupId>
|
||||||
|
<artifactId>platform-imdg-api-hazelcast-impl</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.spcex.platform</groupId>
|
||||||
|
<artifactId>platform-messaging</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.springfox</groupId>
|
||||||
|
<artifactId>springfox-swagger2</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.springfox</groupId>
|
||||||
|
<artifactId>springfox-swagger-ui</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.spcex.clearing</groupId>
|
||||||
|
<artifactId>classes</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.spcex.clearing</groupId>
|
||||||
|
<artifactId>dictionary</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ru.spcex.platform</groupId>
|
||||||
|
<artifactId>platform-enum</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<finalName>${project.artifactId}</finalName>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.21.0</version>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.platform</groupId>
|
||||||
|
<artifactId>junit-platform-surefire-provider</artifactId>
|
||||||
|
<version>1.2.0-M1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-engine</artifactId>
|
||||||
|
<version>5.2.0-M1</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
public class GatewayApiApplication extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication app = new SpringApplication(GatewayApiApplication.class);
|
||||||
|
app.run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartup(ServletContext servletContext) throws ServletException {
|
||||||
|
super.onStartup(servletContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
||||||
|
return builder.sources(GatewayApiApplication.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected WebApplicationContext run(SpringApplication application) {
|
||||||
|
return super.run(application);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.config;
|
||||||
|
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.PropertySource;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings;
|
||||||
|
import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings;
|
||||||
|
import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@PropertySource("file:${spring.config.location}/application.properties")
|
||||||
|
@ConfigurationProperties("backend-api")
|
||||||
|
public class GatewayApiSettings {
|
||||||
|
private HazelcastClientParams hazelcast;
|
||||||
|
private KafkaProducerSettings kafkaProducer;
|
||||||
|
private KafkaConsumerSettings kafkaConsumer;
|
||||||
|
|
||||||
|
public HazelcastClientParams getHazelcast() {
|
||||||
|
return hazelcast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHazelcast(HazelcastClientParams hazelcast) {
|
||||||
|
this.hazelcast = hazelcast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public KafkaProducerSettings getKafkaProducer() {
|
||||||
|
return kafkaProducer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKafkaProducer(KafkaProducerSettings kafkaProducer) {
|
||||||
|
this.kafkaProducer = kafkaProducer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public KafkaConsumerSettings getKafkaConsumer() {
|
||||||
|
return kafkaConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKafkaConsumer(KafkaConsumerSettings kafkaConsumer) {
|
||||||
|
this.kafkaConsumer = kafkaConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebMvc
|
||||||
|
public class WebConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.config.deserializers;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import com.fasterxml.jackson.databind.JsonDeserializer;
|
||||||
|
import ru.spcex.platform.utils.time.TimeUtil;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class InstantDeserializer extends JsonDeserializer<Instant> {
|
||||||
|
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss:SSS");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Instant deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
|
||||||
|
String date = p.getText();
|
||||||
|
if (date == null || date.trim().length() == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return TimeUtil.parseInstantDateAndTime(date, formatter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.config.deserializers;
|
||||||
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import com.fasterxml.jackson.databind.JsonDeserializer;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class LocalDateDeserializer extends JsonDeserializer<LocalDate> {
|
||||||
|
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
|
||||||
|
String date = p.getText();
|
||||||
|
if (date == null || date.trim().length() == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return LocalDate.parse(date, formatter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.controller;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.FullRequest;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/")
|
||||||
|
public class GatewayController {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
|
@ApiOperation(value = "Test gateway post request")
|
||||||
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = String.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = String.class)})
|
||||||
|
@RequestMapping(path = "/inbound_request", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.TEXT_PLAIN_VALUE)
|
||||||
|
@ResponseBody
|
||||||
|
public String inboundRequest(@RequestBody FullRequest request) {
|
||||||
|
log.info("toString: {}", request.toString());
|
||||||
|
log.info("Call test method for gateway-api controller");
|
||||||
|
return "gateway-api controller test method";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.controller;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiResponse;
|
||||||
|
import io.swagger.annotations.ApiResponses;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/")
|
||||||
|
public class TestController {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
|
@ApiOperation(value = "Test gateway-api availability.")
|
||||||
|
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = String.class)})
|
||||||
|
@RequestMapping(method = RequestMethod.GET, path = "/system/ping", produces = MediaType.TEXT_PLAIN_VALUE)
|
||||||
|
@ResponseBody
|
||||||
|
public String processGet() {
|
||||||
|
log.info("Call test method for gateway-api controller");
|
||||||
|
return "gateway-api controller test method";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class FullRequest {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Передавать новый UUID, если процесс стартовал по расписанию, или UUID, возвращенный в Клиринговую
|
||||||
|
систему в ответ на запрос Клиринговой системы об экспорте ценных бумаг (см. п. «Сигнальный REST API»),
|
||||||
|
если процесс стартовал по запросу от Клиринговой системы.
|
||||||
|
""",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120002"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Передавать «DAY_START», если процесс стартовал по расписанию, или «ON_DEMAND»,
|
||||||
|
если процесс стартовал по запросу от Клиринговой системы.
|
||||||
|
""",
|
||||||
|
example = "DAY_START"
|
||||||
|
)
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@JsonProperty("datetime")
|
||||||
|
@JsonDeserialize(using = InstantDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Передавать дату и время формирования JSON объекта в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС:ссс».",
|
||||||
|
example = "01.01.2023 12:34:56:789"
|
||||||
|
)
|
||||||
|
private Instant datetime;
|
||||||
|
|
||||||
|
@JsonProperty("section")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Секция (FOND или MKR)", example = "FOND"
|
||||||
|
)
|
||||||
|
private String section;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getDatetime() {
|
||||||
|
return datetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDatetime(Instant datetime) {
|
||||||
|
this.datetime = datetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSection() {
|
||||||
|
return section;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSection(String section) {
|
||||||
|
this.section = section;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Client {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("client_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Код клиента",
|
||||||
|
example = "CLI001"
|
||||||
|
)
|
||||||
|
private String clientCode;
|
||||||
|
|
||||||
|
@JsonProperty("money_account")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Денежный счет клиента",
|
||||||
|
example = "1234567890"
|
||||||
|
)
|
||||||
|
private String moneyAccount;
|
||||||
|
|
||||||
|
@JsonProperty("depo_account")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Бумажный счет клиента",
|
||||||
|
example = "2223334449"
|
||||||
|
)
|
||||||
|
private String depoAccount;
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClientCode() {
|
||||||
|
return clientCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClientCode(String clientCode) {
|
||||||
|
this.clientCode = clientCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMoneyAccount() {
|
||||||
|
return moneyAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMoneyAccount(String moneyAccount) {
|
||||||
|
this.moneyAccount = moneyAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDepoAccount() {
|
||||||
|
return depoAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDepoAccount(String depoAccount) {
|
||||||
|
this.depoAccount = depoAccount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,132 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Company {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Идентификатор Эмитента в Модуле регистрации биржевых инструментов",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("short_name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Сокращенное наименование на русском языке",
|
||||||
|
example = "Банк ВТБ (ПАО)"
|
||||||
|
)
|
||||||
|
private String shortName;
|
||||||
|
|
||||||
|
@JsonProperty("full_name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Полное наименование на русском языке",
|
||||||
|
example = "Банк ВТБ (публичное акционерное общество)"
|
||||||
|
)
|
||||||
|
private String fullName;
|
||||||
|
|
||||||
|
@JsonProperty("trading_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Биржевой код участника",
|
||||||
|
example = "49"
|
||||||
|
)
|
||||||
|
private String tradingCode;
|
||||||
|
|
||||||
|
@JsonProperty("clearing_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Краткий клиринговый код участника клиринга. Заполняется, если участник является участником клиринга.",
|
||||||
|
example = "49"
|
||||||
|
)
|
||||||
|
private String clearingCode;
|
||||||
|
|
||||||
|
@JsonProperty("registration_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Регистрационный код участника",
|
||||||
|
example = "E/I/7702070139///////1/044525187"
|
||||||
|
)
|
||||||
|
private String registrationCode;
|
||||||
|
|
||||||
|
@JsonProperty("initiator_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Код инициатора. Заполняется, если участник является инициатором.",
|
||||||
|
example = "AB"
|
||||||
|
)
|
||||||
|
private String initiatorCode;
|
||||||
|
|
||||||
|
@JsonProperty("workflow_status")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«ACTV», если Эмитент не удален
|
||||||
|
«BLKD», если Эмитент удален
|
||||||
|
""",
|
||||||
|
example = "ACTV"
|
||||||
|
)
|
||||||
|
private String workflowStatus;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShortName() {
|
||||||
|
return shortName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortName(String shortName) {
|
||||||
|
this.shortName = shortName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFullName() {
|
||||||
|
return fullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFullName(String fullName) {
|
||||||
|
this.fullName = fullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkflowStatus() {
|
||||||
|
return workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkflowStatus(String workflowStatus) {
|
||||||
|
this.workflowStatus = workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTradingCode() {
|
||||||
|
return tradingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradingCode(String tradingCode) {
|
||||||
|
this.tradingCode = tradingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClearingCode() {
|
||||||
|
return clearingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClearingCode(String clearingCode) {
|
||||||
|
this.clearingCode = clearingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRegistrationCode() {
|
||||||
|
return registrationCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegistrationCode(String registrationCode) {
|
||||||
|
this.registrationCode = registrationCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInitiatorCode() {
|
||||||
|
return initiatorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInitiatorCode(String initiatorCode) {
|
||||||
|
this.initiatorCode = initiatorCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CompanyClearingCategory {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("category")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Категория клирингового обслуживания. Возможные значения:
|
||||||
|
· C - Категория «Ц»
|
||||||
|
· B - Категория «Б»
|
||||||
|
· F - Категория «Ф»
|
||||||
|
· I - Категория «И»
|
||||||
|
· V - Категория «В»
|
||||||
|
· T - Категория «Т»
|
||||||
|
· K - Категория «К»
|
||||||
|
""",
|
||||||
|
example = "F"
|
||||||
|
)
|
||||||
|
private String category;
|
||||||
|
|
||||||
|
@JsonProperty("workflow_status")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Статус допуска к категории на текущую дату. Возможные значения:
|
||||||
|
· ACTV – Участник клиринга
|
||||||
|
· APPL – Допущен к клиринговому обслуживанию
|
||||||
|
· SSPD – Допуск приостановлен
|
||||||
|
· ROPN – Допуск возобновлен
|
||||||
|
· CLOS – Допуск прекращен
|
||||||
|
""",
|
||||||
|
example = "CLOS"
|
||||||
|
)
|
||||||
|
private String workflowStatus;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCategory() {
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategory(String category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkflowStatus() {
|
||||||
|
return workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkflowStatus(String workflowStatus) {
|
||||||
|
this.workflowStatus = workflowStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CompanyInfo {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("country_code")
|
||||||
|
@ApiModelProperty(value = "RUS", example = "RUS")
|
||||||
|
private String countryCode;
|
||||||
|
|
||||||
|
@JsonProperty("legal_kind")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Вид субъекта. Всегда «JURD» (Юридическое лицо)",
|
||||||
|
example = "JURD"
|
||||||
|
)
|
||||||
|
private String legalKind;
|
||||||
|
|
||||||
|
@JsonProperty("organization_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Признак кредитной организации. Возможные значения:
|
||||||
|
· «CRED» - является кредитной организацией
|
||||||
|
· «NCRD» - не является кредитной организациейe
|
||||||
|
""",
|
||||||
|
example = "CRED"
|
||||||
|
)
|
||||||
|
private String organizationType;
|
||||||
|
|
||||||
|
@JsonProperty("professional_sign")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Признак проф. участника. Возможные значения:
|
||||||
|
· ALWD – Да
|
||||||
|
· DEND - Нет
|
||||||
|
""",
|
||||||
|
example = "DNED"
|
||||||
|
)
|
||||||
|
private String professionalSign;
|
||||||
|
|
||||||
|
@JsonProperty("residence")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Резиденция. Трехсимвольный код страны из классификатора ОКСМ.",
|
||||||
|
example = "RUS"
|
||||||
|
)
|
||||||
|
private String residence;
|
||||||
|
|
||||||
|
@JsonProperty("short_name_eng")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Сокращенное наименование на английском языке",
|
||||||
|
example = "VTB (PJSC)"
|
||||||
|
)
|
||||||
|
private String shortNameEng;
|
||||||
|
|
||||||
|
@JsonProperty("full_name_eng")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Полное наименование на английском языке",
|
||||||
|
example = "VTB (public joint stock company)"
|
||||||
|
)
|
||||||
|
private String fullNameEng;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountryCode() {
|
||||||
|
return countryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryCode(String countryCode) {
|
||||||
|
this.countryCode = countryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLegalKind() {
|
||||||
|
return legalKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLegalKind(String legalKind) {
|
||||||
|
this.legalKind = legalKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrganizationType() {
|
||||||
|
return organizationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrganizationType(String organizationType) {
|
||||||
|
this.organizationType = organizationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResidence() {
|
||||||
|
return residence;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResidence(String residence) {
|
||||||
|
this.residence = residence;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShortNameEng() {
|
||||||
|
return shortNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortNameEng(String shortNameEng) {
|
||||||
|
this.shortNameEng = shortNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFullNameEng() {
|
||||||
|
return fullNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFullNameEng(String fullNameEng) {
|
||||||
|
this.fullNameEng = fullNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProfessionalSign() {
|
||||||
|
return professionalSign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProfessionalSign(String professionalSign) {
|
||||||
|
this.professionalSign = professionalSign;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CompanySymbols {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("company_symbol")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Тип реквизита. Возможные значения:
|
||||||
|
· INN - Индивидуальный налоговый номер (ИНН)
|
||||||
|
· CIO - Код иностранной организации (КИО)
|
||||||
|
· OGRN - Основной государственный регистрационный номер (ОГРН)
|
||||||
|
· CPP - Код причины постановки (КПП)
|
||||||
|
· OCPO - Общероссийский классификатор предприятий и организаций (ОКПО)
|
||||||
|
· BIC - Банковский идентификационный код (БИК)
|
||||||
|
· LICB - Номер банковской лицензии (Лицензия банка)
|
||||||
|
· LICR – Номер брокерской лицензии
|
||||||
|
· LICD - Номер дилерской лицензии
|
||||||
|
· LICT - Номер лицензии по управлению ЦБ
|
||||||
|
· LICС - Номер лицензии по брокерской деятельности ПФИ (производных финансовых инструментов)
|
||||||
|
· LICF - Номер лицензии форекс-дилера
|
||||||
|
""",
|
||||||
|
example = "INN"
|
||||||
|
)
|
||||||
|
private String companySymbol;
|
||||||
|
|
||||||
|
@JsonProperty("company_symbol_value")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Значения для company_symbol:
|
||||||
|
Для OCVD - Регистрационные данные\\ОКВЭД
|
||||||
|
Для INN - Основные сведения\\ИНН
|
||||||
|
Для CPP - Основные сведения\\КПП
|
||||||
|
Для OCPO - Основные сведения\\ОКПО
|
||||||
|
Для BIC - Основные сведения\\БИК
|
||||||
|
Для OGRN - Основные сведения\\ОГРН
|
||||||
|
""",
|
||||||
|
example = "7702070139"
|
||||||
|
)
|
||||||
|
private String companySymbolValue;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCompanySymbol() {
|
||||||
|
return companySymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanySymbol(String companySymbol) {
|
||||||
|
this.companySymbol = companySymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCompanySymbolValue() {
|
||||||
|
return companySymbolValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanySymbolValue(String companySymbolValue) {
|
||||||
|
this.companySymbolValue = companySymbolValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Contact {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на компанию",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("contact_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Передавать строки:
|
||||||
|
· ADRS
|
||||||
|
· POST
|
||||||
|
· CONT
|
||||||
|
· MAIL
|
||||||
|
· GDIR
|
||||||
|
· TRST
|
||||||
|
· FAX
|
||||||
|
· INFO
|
||||||
|
· WEB
|
||||||
|
""",
|
||||||
|
example = "WEB"
|
||||||
|
)
|
||||||
|
private String contactType;
|
||||||
|
|
||||||
|
@JsonProperty("contact_value")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Значения для contact_type:
|
||||||
|
Для ADRS - Контакты\\Юридический адрес
|
||||||
|
Для POST - Контакты\\Почтовый адрес
|
||||||
|
Для CONT - Контакты\\ФИО контактного лица
|
||||||
|
Для MAIL - Контакты\\Адрес электронной почты
|
||||||
|
Для GDIR - Контакты\\ФИО руководителя + «, » + Должность руководителя + «, » + Телефон руководителя
|
||||||
|
Для TRST - Контакты\\ФИО отв. за фондовую деятельность + «, » + Должность отв. за фондовую деятельность + «, » + Телефон отв. за фондовую деятельность
|
||||||
|
Для FAX - Контакты\\Факс
|
||||||
|
Для INFO - Контакты\\ФИО контактного лица + «, » + Должность контактного лица + «, » + Эл. почта контактного лица + «, » + Телефон контактного лица
|
||||||
|
Для WEB - Контакты\\Веб-сайт
|
||||||
|
""",
|
||||||
|
example = "example@ex.ample"
|
||||||
|
)
|
||||||
|
private String contactValue;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContactType() {
|
||||||
|
return contactType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContactType(String contactType) {
|
||||||
|
this.contactType = contactType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContactValue() {
|
||||||
|
return contactValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContactValue(String contactValue) {
|
||||||
|
this.contactValue = contactValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CouponSchedule {
|
||||||
|
@JsonProperty("security_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на security",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID securityId;
|
||||||
|
|
||||||
|
@JsonProperty("period_start_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата начала купонного периода, формат «ДД.ММ.ГГГГ»",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate periodStartDate;
|
||||||
|
|
||||||
|
@JsonProperty("period_end_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата выплаты купона, формат «ДД.ММ.ГГГГ»",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate periodEndDate;
|
||||||
|
|
||||||
|
@JsonProperty("coupon_rate")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Процентная ставка",
|
||||||
|
example = "7.5"
|
||||||
|
)
|
||||||
|
private BigDecimal couponRate;
|
||||||
|
|
||||||
|
@JsonProperty("coupon_number")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Порядковый номер",
|
||||||
|
example = "100"
|
||||||
|
)
|
||||||
|
private Long couponNumber;
|
||||||
|
|
||||||
|
@JsonProperty("coupon_currency")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Валюта",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String couponCurrency;
|
||||||
|
|
||||||
|
@JsonProperty("accrued_coupon")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Сумма",
|
||||||
|
example = "100.15"
|
||||||
|
)
|
||||||
|
private BigDecimal accruedCoupon;
|
||||||
|
|
||||||
|
@JsonProperty("is_deleted")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
true, если Купон удален
|
||||||
|
false, если Купон не удален
|
||||||
|
""",
|
||||||
|
example = "true"
|
||||||
|
)
|
||||||
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getSecurityId() {
|
||||||
|
return securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecurityId(UUID securityId) {
|
||||||
|
this.securityId = securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getPeriodStartDate() {
|
||||||
|
return periodStartDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPeriodStartDate(LocalDate periodStartDate) {
|
||||||
|
this.periodStartDate = periodStartDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getPeriodEndDate() {
|
||||||
|
return periodEndDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPeriodEndDate(LocalDate periodEndDate) {
|
||||||
|
this.periodEndDate = periodEndDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCouponRate() {
|
||||||
|
return couponRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponRate(BigDecimal couponRate) {
|
||||||
|
this.couponRate = couponRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCouponNumber() {
|
||||||
|
return couponNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponNumber(Long couponNumber) {
|
||||||
|
this.couponNumber = couponNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCouponCurrency() {
|
||||||
|
return couponCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponCurrency(String couponCurrency) {
|
||||||
|
this.couponCurrency = couponCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getAccruedCoupon() {
|
||||||
|
return accruedCoupon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccruedCoupon(BigDecimal accruedCoupon) {
|
||||||
|
this.accruedCoupon = accruedCoupon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDeleted() {
|
||||||
|
return isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleted(Boolean deleted) {
|
||||||
|
isDeleted = deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Currency {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "id",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120005"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("currency_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Значение из справочника «Коды валют» (dir_currency_code) dir_currency_code.letter_code",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String currencyCode;
|
||||||
|
|
||||||
|
@JsonProperty("currency_code_numeric")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Значение из справочника «Коды валют» (dir_currency_code) dir_currency_code.numeric_code",
|
||||||
|
example = "643"
|
||||||
|
)
|
||||||
|
private String currencyCodeNumeric;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrencyCode() {
|
||||||
|
return currencyCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrencyCode(String currencyCode) {
|
||||||
|
this.currencyCode = currencyCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrencyCodeNumeric() {
|
||||||
|
return currencyCodeNumeric;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrencyCodeNumeric(String currencyCodeNumeric) {
|
||||||
|
this.currencyCodeNumeric = currencyCodeNumeric;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class DirAuctionBiddingType {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "id",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("type_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Тип",
|
||||||
|
example = "D"
|
||||||
|
)
|
||||||
|
private String typeCode;
|
||||||
|
|
||||||
|
@JsonProperty("name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Наименование",
|
||||||
|
example = "Депозитный аукцион"
|
||||||
|
)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@JsonProperty("is_deleted")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Флаг удалённости",
|
||||||
|
example = "true"
|
||||||
|
)
|
||||||
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTypeCode() {
|
||||||
|
return typeCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTypeCode(String typeCode) {
|
||||||
|
this.typeCode = typeCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDeleted() {
|
||||||
|
return isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleted(Boolean deleted) {
|
||||||
|
isDeleted = deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
public class DirCurrencyCode {
|
||||||
|
@JsonProperty("letter_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Символьный код валюты",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String letterCode;
|
||||||
|
|
||||||
|
@JsonProperty("numeric_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Численный код валюты",
|
||||||
|
example = "643"
|
||||||
|
)
|
||||||
|
private String numericCode;
|
||||||
|
|
||||||
|
public String getLetterCode() {
|
||||||
|
return letterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLetterCode(String letterCode) {
|
||||||
|
this.letterCode = letterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumericCode() {
|
||||||
|
return numericCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumericCode(String numericCode) {
|
||||||
|
this.numericCode = numericCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class DirTradingModeMkr {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "id",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120006"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("trading_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "trading_code",
|
||||||
|
example = "XMDT"
|
||||||
|
)
|
||||||
|
private String tradingCode;
|
||||||
|
|
||||||
|
@JsonProperty("name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "name",
|
||||||
|
example = "Размещение: депозитный аукцион"
|
||||||
|
)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@JsonProperty("settle_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "settle_code",
|
||||||
|
example = "T0, Bn"
|
||||||
|
)
|
||||||
|
private String settleCode;
|
||||||
|
|
||||||
|
@JsonProperty("is_deleted")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
true, если Режим торгов удален
|
||||||
|
false, если Режим торгов не удален
|
||||||
|
""",
|
||||||
|
example = "true"
|
||||||
|
)
|
||||||
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTradingCode() {
|
||||||
|
return tradingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradingCode(String tradingCode) {
|
||||||
|
this.tradingCode = tradingCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSettleCode() {
|
||||||
|
return settleCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSettleCode(String settleCode) {
|
||||||
|
this.settleCode = settleCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDeleted() {
|
||||||
|
return isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleted(Boolean deleted) {
|
||||||
|
isDeleted = deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,285 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ExchangeInstrument {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "id",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120002"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Код биржевого инструмента",
|
||||||
|
example = "DSTАА10VX7X8X9"
|
||||||
|
)
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@JsonProperty("name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Наименование биржевого инструмента",
|
||||||
|
example = "Договор банковского депозита"
|
||||||
|
)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@JsonProperty("initiator_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Идентификатор Инициатора (Участника торгов) в Модуле «Реестр Участников торгов, Участников клиринга и клиентов УТ/УК».",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID initiatorId;
|
||||||
|
|
||||||
|
@JsonProperty("auction_bidding_type_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Тип аукциона\\торгов. Ссылка на dir_auction_bidding_type (id)",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID auctionBiddingTypeId;
|
||||||
|
|
||||||
|
@JsonProperty("exchange_offexchange")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Биржевой\\Внебиржевой
|
||||||
|
Передавать:
|
||||||
|
· «exchange», если «Биржевой»
|
||||||
|
· «off_exchange», если «Внебиржевой»
|
||||||
|
""",
|
||||||
|
example = "exchange"
|
||||||
|
)
|
||||||
|
private String exchangeOffExchange;
|
||||||
|
|
||||||
|
@JsonProperty("price_measurement_unit")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Единица измерения цены
|
||||||
|
Передавать:
|
||||||
|
· «Percentage_of_face_value», если «Процент от номинала»
|
||||||
|
· «In_settlement_currency», если «В валюте расчетов»
|
||||||
|
""",
|
||||||
|
example = "Percentage_of_face_value"
|
||||||
|
)
|
||||||
|
private String priceMeasurementUnit;
|
||||||
|
|
||||||
|
@JsonProperty("price_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Вид цены
|
||||||
|
Передавать:
|
||||||
|
· «FLOATING», если «Плавающая»
|
||||||
|
· «FIXED», если «Фиксированная»
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
private String priceType;
|
||||||
|
|
||||||
|
@JsonProperty("settlement_currency_letter_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Валюта расчетов. Ссылка на dir_currency_code (letter_code)",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String settlementCurrencyLetterCode;
|
||||||
|
|
||||||
|
@JsonProperty("order_execution_type_by_price")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Тип исполнения заявок по цене
|
||||||
|
Передавать:
|
||||||
|
· «depositor_application_price», если «По цене заявки вкладчика»
|
||||||
|
· «Counter_price», если «По встречной цене»
|
||||||
|
""",
|
||||||
|
example = "Counter_price"
|
||||||
|
)
|
||||||
|
private String orderExecutionTypeByPrice;
|
||||||
|
|
||||||
|
@JsonProperty("order_execution_type_by_volume")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Тип исполнения заявок по объему
|
||||||
|
Передавать:
|
||||||
|
· «Proportional_lot», если «Пропорционально с точностью до лота (остаток остается)»
|
||||||
|
· «Proportional_rub», если «Пропорционально с точностью до рубля (остаток остается)»
|
||||||
|
· «FULLY», если «Полностью»
|
||||||
|
""",
|
||||||
|
example = "FULLY"
|
||||||
|
)
|
||||||
|
private String orderExecutionTypeByVolume;
|
||||||
|
|
||||||
|
@JsonProperty("clearing_organization")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Клиринговая организация",
|
||||||
|
example = "Клиринговая организация"
|
||||||
|
)
|
||||||
|
private String clearingOrganization;
|
||||||
|
|
||||||
|
@JsonProperty("settlement_organization")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Расчётная организация",
|
||||||
|
example = "Расчётная организация"
|
||||||
|
)
|
||||||
|
private String settlementOrganization;
|
||||||
|
|
||||||
|
@JsonProperty("specification_approval_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата принятия Решения об утверждении Спецификации биржевого инструмента",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate specificationApprovalDate;
|
||||||
|
|
||||||
|
@JsonProperty("specification_approval_number")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Номер принятия Решения об утверждении Спецификации биржевого инструмента",
|
||||||
|
example = "070323-01"
|
||||||
|
)
|
||||||
|
private LocalDate specificationApprovalNumber;
|
||||||
|
|
||||||
|
@JsonProperty("workflow_status")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«ACTV», если статус Спецификации биржевого инструмента:
|
||||||
|
БИ допущен к торгам
|
||||||
|
|
||||||
|
«BLKD», если статус Спецификации биржевого инструмента:
|
||||||
|
БИ не допущен к торгам
|
||||||
|
Торги БИ приостановлены
|
||||||
|
Торги БИ прекращены
|
||||||
|
""",
|
||||||
|
example = "ACTV"
|
||||||
|
)
|
||||||
|
private String workflowStatus;
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getInitiatorId() {
|
||||||
|
return initiatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInitiatorId(UUID initiatorId) {
|
||||||
|
this.initiatorId = initiatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getAuctionBiddingTypeId() {
|
||||||
|
return auctionBiddingTypeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuctionBiddingTypeId(UUID auctionBiddingTypeId) {
|
||||||
|
this.auctionBiddingTypeId = auctionBiddingTypeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExchangeOffExchange() {
|
||||||
|
return exchangeOffExchange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExchangeOffExchange(String exchangeOffExchange) {
|
||||||
|
this.exchangeOffExchange = exchangeOffExchange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPriceMeasurementUnit() {
|
||||||
|
return priceMeasurementUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPriceMeasurementUnit(String priceMeasurementUnit) {
|
||||||
|
this.priceMeasurementUnit = priceMeasurementUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPriceType() {
|
||||||
|
return priceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPriceType(String priceType) {
|
||||||
|
this.priceType = priceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSettlementCurrencyLetterCode() {
|
||||||
|
return settlementCurrencyLetterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSettlementCurrencyLetterCode(String settlementCurrencyLetterCode) {
|
||||||
|
this.settlementCurrencyLetterCode = settlementCurrencyLetterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderExecutionTypeByPrice() {
|
||||||
|
return orderExecutionTypeByPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderExecutionTypeByPrice(String orderExecutionTypeByPrice) {
|
||||||
|
this.orderExecutionTypeByPrice = orderExecutionTypeByPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderExecutionTypeByVolume() {
|
||||||
|
return orderExecutionTypeByVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderExecutionTypeByVolume(String orderExecutionTypeByVolume) {
|
||||||
|
this.orderExecutionTypeByVolume = orderExecutionTypeByVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClearingOrganization() {
|
||||||
|
return clearingOrganization;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClearingOrganization(String clearingOrganization) {
|
||||||
|
this.clearingOrganization = clearingOrganization;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSettlementOrganization() {
|
||||||
|
return settlementOrganization;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSettlementOrganization(String settlementOrganization) {
|
||||||
|
this.settlementOrganization = settlementOrganization;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getSpecificationApprovalDate() {
|
||||||
|
return specificationApprovalDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecificationApprovalDate(LocalDate specificationApprovalDate) {
|
||||||
|
this.specificationApprovalDate = specificationApprovalDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getSpecificationApprovalNumber() {
|
||||||
|
return specificationApprovalNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecificationApprovalNumber(LocalDate specificationApprovalNumber) {
|
||||||
|
this.specificationApprovalNumber = specificationApprovalNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkflowStatus() {
|
||||||
|
return workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkflowStatus(String workflowStatus) {
|
||||||
|
this.workflowStatus = workflowStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,243 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Listing {
|
||||||
|
@JsonProperty("security_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на security",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID securityId;
|
||||||
|
|
||||||
|
@JsonProperty("lot_size")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Размер лота",
|
||||||
|
example = "10"
|
||||||
|
)
|
||||||
|
private BigDecimal lotSize;
|
||||||
|
|
||||||
|
@JsonProperty("symbol_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Значение из «Общая информация\\Код биржевого инструмента СПВБ»",
|
||||||
|
example = "VTB_001P-06"
|
||||||
|
)
|
||||||
|
private String symbolCode;
|
||||||
|
|
||||||
|
@JsonProperty("symbol_name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Значение из «Общая информация\\Сокращенное наименование на русском языке»",
|
||||||
|
example = "Биржевые облигации ВТБ"
|
||||||
|
)
|
||||||
|
private String symbolName;
|
||||||
|
|
||||||
|
@JsonProperty("trading_currency")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Валюта торгов",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String tradingCurrency;
|
||||||
|
|
||||||
|
@JsonProperty("workflow_status")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«ACTV», если Режим торгов не удален
|
||||||
|
«BLKD», если Режим торгов удален
|
||||||
|
""",
|
||||||
|
example = "ACTV"
|
||||||
|
)
|
||||||
|
private String workflowStatus;
|
||||||
|
|
||||||
|
@JsonProperty("precision")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Точность цены, значение dir_price_min_step_precision.precision",
|
||||||
|
example = "10"
|
||||||
|
)
|
||||||
|
private Long precision;
|
||||||
|
|
||||||
|
@JsonProperty("min_step")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Минимальный шаг цены, значение dir_price_min_step_precision.min_step",
|
||||||
|
example = "10"
|
||||||
|
)
|
||||||
|
private Long minStep;
|
||||||
|
|
||||||
|
@JsonProperty("settle_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Код расчетов, значение dir_settle_code.settle_code",
|
||||||
|
example = "T0"
|
||||||
|
)
|
||||||
|
private String settleCode;
|
||||||
|
|
||||||
|
@JsonProperty("settle_days")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Из settle_code выделить подстроку – все символы, кроме первого слева, и привести подстроку к числу",
|
||||||
|
example = "0"
|
||||||
|
)
|
||||||
|
private Long settleDays;
|
||||||
|
|
||||||
|
@JsonProperty("name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Режим торгов, значение dir_trading_mode.name",
|
||||||
|
example = "Обл. с ПК - Торги"
|
||||||
|
)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@JsonProperty("code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Режим торгов, значение dir_trading_mode.trading_code",
|
||||||
|
example = "UBVC"
|
||||||
|
)
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@JsonProperty("sector")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "FOND",
|
||||||
|
example = "FOND"
|
||||||
|
)
|
||||||
|
private String sector;
|
||||||
|
|
||||||
|
@JsonProperty("start_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата начала действия, формат «ДД.ММ.ГГГГ»",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate startDate;
|
||||||
|
|
||||||
|
@JsonProperty("end_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата окончания действия, формат «ДД.ММ.ГГГГ»",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate endDate;
|
||||||
|
|
||||||
|
|
||||||
|
public UUID getSecurityId() {
|
||||||
|
return securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecurityId(UUID securityId) {
|
||||||
|
this.securityId = securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getLotSize() {
|
||||||
|
return lotSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLotSize(BigDecimal lotSize) {
|
||||||
|
this.lotSize = lotSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSymbolCode() {
|
||||||
|
return symbolCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSymbolCode(String symbolCode) {
|
||||||
|
this.symbolCode = symbolCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSymbolName() {
|
||||||
|
return symbolName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSymbolName(String symbolName) {
|
||||||
|
this.symbolName = symbolName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTradingCurrency() {
|
||||||
|
return tradingCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradingCurrency(String tradingCurrency) {
|
||||||
|
this.tradingCurrency = tradingCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkflowStatus() {
|
||||||
|
return workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkflowStatus(String workflowStatus) {
|
||||||
|
this.workflowStatus = workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getPrecision() {
|
||||||
|
return precision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrecision(Long precision) {
|
||||||
|
this.precision = precision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getMinStep() {
|
||||||
|
return minStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinStep(Long minStep) {
|
||||||
|
this.minStep = minStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSettleCode() {
|
||||||
|
return settleCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSettleCode(String settleCode) {
|
||||||
|
this.settleCode = settleCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getSettleDays() {
|
||||||
|
return settleDays;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSettleDays(Long settleDays) {
|
||||||
|
this.settleDays = settleDays;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSector() {
|
||||||
|
return sector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSector(String sector) {
|
||||||
|
this.sector = sector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getStartDate() {
|
||||||
|
return startDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartDate(LocalDate startDate) {
|
||||||
|
this.startDate = startDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getEndDate() {
|
||||||
|
return endDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndDate(LocalDate endDate) {
|
||||||
|
this.endDate = endDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,76 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Nominal {
|
||||||
|
@JsonProperty("security_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на security",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID securityId;
|
||||||
|
|
||||||
|
@JsonProperty("nominal")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Номинал",
|
||||||
|
example = "1000"
|
||||||
|
)
|
||||||
|
private BigDecimal nominal;
|
||||||
|
|
||||||
|
@JsonProperty("date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата, формат «ДД.ММ.ГГГГ»",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate date;
|
||||||
|
|
||||||
|
@JsonProperty("is_deleted")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
true, если Номинал удален
|
||||||
|
false, если Номинал не удален
|
||||||
|
""",
|
||||||
|
example = "true"
|
||||||
|
)
|
||||||
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
public UUID getSecurityId() {
|
||||||
|
return securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecurityId(UUID securityId) {
|
||||||
|
this.securityId = securityId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNominal() {
|
||||||
|
return nominal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNominal(BigDecimal nominal) {
|
||||||
|
this.nominal = nominal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(LocalDate date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDeleted() {
|
||||||
|
return isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleted(Boolean deleted) {
|
||||||
|
isDeleted = deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,130 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ProfileDocument {
|
||||||
|
@JsonProperty("company_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID companyId;
|
||||||
|
|
||||||
|
@JsonProperty("document_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Тип. документа. Возможные значения:
|
||||||
|
· CNTR - Договор клиринга
|
||||||
|
· FORM - Анкета участника
|
||||||
|
· LICB - Банковская лицензия
|
||||||
|
· LICR - Брокерская лицензия
|
||||||
|
· LICD - Номер дилерской лицензии
|
||||||
|
· LICT - Номер лицензии по управлению ЦБ
|
||||||
|
· LICС - Номер лицензии по брокерской деятельности ПФИ (производных финансовых инструментов)
|
||||||
|
· LICF - Номер лицензии форекс-дилера
|
||||||
|
· EDOC - Договор об электронном взаимодействии
|
||||||
|
· XCNT - Документ о расторжении Договора клиринга
|
||||||
|
""",
|
||||||
|
example = "XCNT"
|
||||||
|
)
|
||||||
|
private String documentType;
|
||||||
|
|
||||||
|
@JsonProperty("issue_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата выдачи документа",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate issueDate;
|
||||||
|
|
||||||
|
@JsonProperty("issuer")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Кем выдан",
|
||||||
|
example = ""
|
||||||
|
)
|
||||||
|
private String issuer;
|
||||||
|
|
||||||
|
@JsonProperty("number")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Номер документа",
|
||||||
|
example = "122/Б"
|
||||||
|
)
|
||||||
|
private String number;
|
||||||
|
|
||||||
|
@JsonProperty("valid_to_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дата окончания срока действия",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate validToDate;
|
||||||
|
|
||||||
|
@JsonProperty("link")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на документ в модуле хранения документов",
|
||||||
|
example = "00cd62ba-bb30-4e9e-a8b6-7937d7492212"
|
||||||
|
)
|
||||||
|
private String link;
|
||||||
|
|
||||||
|
public UUID getCompanyId() {
|
||||||
|
return companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompanyId(UUID companyId) {
|
||||||
|
this.companyId = companyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDocumentType() {
|
||||||
|
return documentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDocumentType(String documentType) {
|
||||||
|
this.documentType = documentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getIssueDate() {
|
||||||
|
return issueDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIssueDate(LocalDate issueDate) {
|
||||||
|
this.issueDate = issueDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIssuer() {
|
||||||
|
return issuer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIssuer(String issuer) {
|
||||||
|
this.issuer = issuer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumber() {
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumber(String number) {
|
||||||
|
this.number = number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getValidToDate() {
|
||||||
|
return validToDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValidToDate(LocalDate validToDate) {
|
||||||
|
this.validToDate = validToDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLink() {
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLink(String link) {
|
||||||
|
this.link = link;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,314 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Security {
|
||||||
|
@JsonProperty("id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "id (uuid)",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120004"
|
||||||
|
)
|
||||||
|
private UUID id;
|
||||||
|
|
||||||
|
@JsonProperty("instrument_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«EQTY», если Общая информация\\Вид ценной бумаги = «E - Долевые ценные бумаги (акции)»
|
||||||
|
«BOND», если Общая информация\\Вид ценной бумаги = «B - Долговые ценные бумаги (облигации)»
|
||||||
|
""",
|
||||||
|
example = "BOND"
|
||||||
|
)
|
||||||
|
private String instrumentType;
|
||||||
|
|
||||||
|
@JsonProperty("issuer_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на company",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120003"
|
||||||
|
)
|
||||||
|
private UUID issuerId;
|
||||||
|
@JsonProperty("short_name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Сокращенное наименование на русском языке",
|
||||||
|
example = "Биржевые облигации ВТБ"
|
||||||
|
)
|
||||||
|
private String shortName;
|
||||||
|
|
||||||
|
@JsonProperty("full_name")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Полное наименование на русском языке",
|
||||||
|
example = """
|
||||||
|
Биржевые облигации документарные процентные неконвертируемые на предъявителя
|
||||||
|
с обязательным централизованным хранением серии 001P-06"
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
private String fullName;
|
||||||
|
|
||||||
|
@JsonProperty("short_name_eng")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Сокращенное наименование на английском языке",
|
||||||
|
example = "VTB exchange-traded bonds"
|
||||||
|
)
|
||||||
|
private String shortNameEng;
|
||||||
|
|
||||||
|
@JsonProperty("full_name_eng")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Основные сведения\\Полное наименование на английском языке",
|
||||||
|
example = """
|
||||||
|
Exchange-traded interest-bearing non-convertible bearer bonds
|
||||||
|
with obligatory centralized storage of series 001P-06
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
private String fullNameEng;
|
||||||
|
|
||||||
|
@JsonProperty("security_symbol")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Общая информация\\Код биржевого инструмента СПВБ",
|
||||||
|
example = "VTB_001P-06"
|
||||||
|
)
|
||||||
|
private String securitySymbol;
|
||||||
|
|
||||||
|
@JsonProperty("isin")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Общая информация\\ISIN",
|
||||||
|
example = "RU000A0ZYWY5"
|
||||||
|
)
|
||||||
|
private String isin;
|
||||||
|
|
||||||
|
@JsonProperty("workflow_status")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«ACTV», если статус ценной бумаги:
|
||||||
|
Допущена к торгам в режиме размещения
|
||||||
|
Допущена к торгам в режиме обращения
|
||||||
|
|
||||||
|
«BLKD», если статус ценной бумаги:
|
||||||
|
Не допущена к торгам
|
||||||
|
Торги временно приостановлены
|
||||||
|
Выведена из обращения
|
||||||
|
""",
|
||||||
|
example = "ACTV"
|
||||||
|
)
|
||||||
|
private String workflowStatus;
|
||||||
|
|
||||||
|
@JsonProperty("share_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«S», если Общая информация\\Тип ценной бумаги = «S - Обыкновенная акция»
|
||||||
|
«P», если Общая информация\\Тип ценной бумаги = «P - Привилегированная акция»
|
||||||
|
""",
|
||||||
|
example = "S"
|
||||||
|
)
|
||||||
|
private String shareType;
|
||||||
|
|
||||||
|
@JsonProperty("bond_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«Z», если Общая информация\\Тип ценной бумаги = «Z - Дисконтная облигация»
|
||||||
|
«F», если Общая информация\\Тип ценной бумаги = «F - Купонная облигация с постоянным купоном»
|
||||||
|
«V», если Общая информация\\Тип ценной бумаги = «V - Купонная облигация с переменным купоном»
|
||||||
|
«C», если Общая информация\\Тип ценной бумаги = «C - Купонная облигация Банка России»
|
||||||
|
«E», если Общая информация\\Тип ценной бумаги = «E - Биржевая облигация»
|
||||||
|
«I», если Общая информация\\Тип ценной бумаги = «I - Облигации с индексированным номиналом»
|
||||||
|
«M», если Общая информация\\Тип ценной бумаги = «M - Облигации с амортизацией долга»
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
private String bondType;
|
||||||
|
|
||||||
|
@JsonProperty("maturity_date")
|
||||||
|
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дополнительная информация\\Дата погашения облигации",
|
||||||
|
example = "30.12.2023"
|
||||||
|
)
|
||||||
|
private LocalDate maturityDate;
|
||||||
|
|
||||||
|
@JsonProperty("nominal_value")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Общая информация\\Номинал инструмента",
|
||||||
|
example = "1000"
|
||||||
|
)
|
||||||
|
private BigDecimal nominalValue;
|
||||||
|
|
||||||
|
@JsonProperty("nominal_for_date")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Общая информация\\Текущее значение номинала",
|
||||||
|
example = "1000"
|
||||||
|
)
|
||||||
|
private BigDecimal nominalForDate;
|
||||||
|
|
||||||
|
@JsonProperty("nominal_currency")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Общая информация\\Валюта номинала",
|
||||||
|
example = "RUB"
|
||||||
|
)
|
||||||
|
private String nominalCurrency;
|
||||||
|
|
||||||
|
@JsonProperty("coupon_type")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
«NUL», если Дополнительная информация\\Тип купона = «NUL - Дисконтная облигация (Нулевой)»
|
||||||
|
«VAR», если Дополнительная информация\\Тип купона = «VAR - Плавающая процентная ставка (Переменный)»
|
||||||
|
«FIX», если Дополнительная информация\\Тип купона = «FIX - Фиксированная процентная ставка (Постоянный)»
|
||||||
|
""",
|
||||||
|
example = "NUL"
|
||||||
|
)
|
||||||
|
private String couponType;
|
||||||
|
|
||||||
|
@JsonProperty("coupon_frequency")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Дополнительная информация\\Количество купонов в год",
|
||||||
|
example = "1000"
|
||||||
|
)
|
||||||
|
private BigDecimal couponFrequency;
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInstrumentType() {
|
||||||
|
return instrumentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInstrumentType(String instrumentType) {
|
||||||
|
this.instrumentType = instrumentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getIssuerId() {
|
||||||
|
return issuerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIssuerId(UUID issuerId) {
|
||||||
|
this.issuerId = issuerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShortName() {
|
||||||
|
return shortName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortName(String shortName) {
|
||||||
|
this.shortName = shortName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFullName() {
|
||||||
|
return fullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFullName(String fullName) {
|
||||||
|
this.fullName = fullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShortNameEng() {
|
||||||
|
return shortNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortNameEng(String shortNameEng) {
|
||||||
|
this.shortNameEng = shortNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFullNameEng() {
|
||||||
|
return fullNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFullNameEng(String fullNameEng) {
|
||||||
|
this.fullNameEng = fullNameEng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSecuritySymbol() {
|
||||||
|
return securitySymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecuritySymbol(String securitySymbol) {
|
||||||
|
this.securitySymbol = securitySymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIsin() {
|
||||||
|
return isin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsin(String isin) {
|
||||||
|
this.isin = isin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkflowStatus() {
|
||||||
|
return workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkflowStatus(String workflowStatus) {
|
||||||
|
this.workflowStatus = workflowStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShareType() {
|
||||||
|
return shareType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShareType(String shareType) {
|
||||||
|
this.shareType = shareType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBondType() {
|
||||||
|
return bondType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBondType(String bondType) {
|
||||||
|
this.bondType = bondType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getMaturityDate() {
|
||||||
|
return maturityDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaturityDate(LocalDate maturityDate) {
|
||||||
|
this.maturityDate = maturityDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNominalValue() {
|
||||||
|
return nominalValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNominalValue(BigDecimal nominalValue) {
|
||||||
|
this.nominalValue = nominalValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNominalForDate() {
|
||||||
|
return nominalForDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNominalForDate(BigDecimal nominalForDate) {
|
||||||
|
this.nominalForDate = nominalForDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNominalCurrency() {
|
||||||
|
return nominalCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNominalCurrency(String nominalCurrency) {
|
||||||
|
this.nominalCurrency = nominalCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCouponType() {
|
||||||
|
return couponType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponType(String couponType) {
|
||||||
|
this.couponType = couponType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCouponFrequency() {
|
||||||
|
return couponFrequency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCouponFrequency(BigDecimal couponFrequency) {
|
||||||
|
this.couponFrequency = couponFrequency;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.objects;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class TradingMode {
|
||||||
|
@JsonProperty("exchange_instrument_id")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на exchange_instrument",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120002"
|
||||||
|
)
|
||||||
|
private UUID exchangeInstrumentId;
|
||||||
|
|
||||||
|
@JsonProperty("Ссылка на trading_mode")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Ссылка на trading_mode_mkr",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120006"
|
||||||
|
)
|
||||||
|
private UUID tradingModeId;
|
||||||
|
|
||||||
|
@JsonProperty("min_step")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Минимальный шаг цены, значение listing.dir_price_min_step_precision.min_step",
|
||||||
|
example = "6"
|
||||||
|
)
|
||||||
|
private Long minStep;
|
||||||
|
|
||||||
|
@JsonProperty("precision")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
Значение listing.dir_price_min_step_precision.precision, соответствующее
|
||||||
|
значению listing.dir_price_min_step_precision.min_step в поле «Минимальный шаг цены»
|
||||||
|
""",
|
||||||
|
example = "1"
|
||||||
|
)
|
||||||
|
private Long precision;
|
||||||
|
|
||||||
|
@JsonProperty("lot_size")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Размер лота",
|
||||||
|
example = "10"
|
||||||
|
)
|
||||||
|
private Long lotSize;
|
||||||
|
|
||||||
|
@JsonProperty("trading_currency_letter_code")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = "Валюта торгов. Ссылка на dir_currency_code (letter_code)",
|
||||||
|
example = "ef47f76c-bcea-11ed-afa1-0242ac120005"
|
||||||
|
)
|
||||||
|
private UUID tradingCurrencyLetterCode;
|
||||||
|
|
||||||
|
@JsonProperty("is_deleted")
|
||||||
|
@ApiModelProperty(
|
||||||
|
value = """
|
||||||
|
true, если Режим торгов удален
|
||||||
|
false, если Режим торгов не удален
|
||||||
|
""",
|
||||||
|
example = "true"
|
||||||
|
)
|
||||||
|
private Boolean isDeleted;
|
||||||
|
|
||||||
|
public UUID getExchangeInstrumentId() {
|
||||||
|
return exchangeInstrumentId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExchangeInstrumentId(UUID exchangeInstrumentId) {
|
||||||
|
this.exchangeInstrumentId = exchangeInstrumentId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getTradingModeId() {
|
||||||
|
return tradingModeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradingModeId(UUID tradingModeId) {
|
||||||
|
this.tradingModeId = tradingModeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getMinStep() {
|
||||||
|
return minStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinStep(Long minStep) {
|
||||||
|
this.minStep = minStep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getPrecision() {
|
||||||
|
return precision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrecision(Long precision) {
|
||||||
|
this.precision = precision;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getLotSize() {
|
||||||
|
return lotSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLotSize(Long lotSize) {
|
||||||
|
this.lotSize = lotSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getTradingCurrencyLetterCode() {
|
||||||
|
return tradingCurrencyLetterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradingCurrencyLetterCode(UUID tradingCurrencyLetterCode) {
|
||||||
|
this.tradingCurrencyLetterCode = tradingCurrencyLetterCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getDeleted() {
|
||||||
|
return isDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleted(Boolean deleted) {
|
||||||
|
isDeleted = deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
server.port=8080
|
||||||
|
server.servlet.context-path=/gateway-api
|
||||||
|
spring.main.web-application-type=servlet
|
||||||
|
gateway-api.example-setting=test
|
||||||
|
gateway-api.hazelcast.cluster-members=127.0.0.1:5701
|
||||||
|
gateway-api.hazelcast.login=dev
|
||||||
|
gateway-api.hazelcast.password=dev-pass
|
||||||
|
gateway-api.kafka-producer.bootstrap-servers=localhost:9092
|
||||||
|
gateway-api.kafka-producer.acks=all
|
||||||
|
gateway-api.kafka-producer.retries=0
|
||||||
|
gateway-api.kafka-producer.batch-size=16384
|
||||||
|
gateway-api.kafka-producer.linger-ms=1
|
||||||
|
gateway-api.kafka-producer.buffer-memory=33554432
|
||||||
|
gateway-api.kafka-consumer.bootstrap-servers=localhost:9092
|
||||||
|
gateway-api.kafka-consumer.group-id=dev-group-gateway-api
|
||||||
|
gateway-api.kafka-consumer.enable-auto-commit=true
|
||||||
|
gateway-api.kafka-consumer.session-timeout-ms=30000
|
||||||
|
gateway-api.kafka-consumer.auto-offset-reset=latest
|
||||||
|
gateway-api.kafka-consumer.linger-ms=1
|
||||||
|
gateway-api.kafka-consumer.buffer-memory=33554432
|
||||||
37
clearing-parent/gateway-api/src/main/resources/logback.xml
Normal file
37
clearing-parent/gateway-api/src/main/resources/logback.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
|
<encoder>
|
||||||
|
<Pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %class{0}:%line - %message%n</Pattern>
|
||||||
|
<charset>utf-8</charset>
|
||||||
|
</encoder>
|
||||||
|
</appender>
|
||||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
|
<file>./logs/gateway-api.log</file>
|
||||||
|
<encoder>
|
||||||
|
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{0}:%msg%n</Pattern>
|
||||||
|
<charset>utf8</charset>
|
||||||
|
</encoder>
|
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||||
|
<fileNamePattern>
|
||||||
|
./logs/gateway-api.%i.log
|
||||||
|
</fileNamePattern>
|
||||||
|
<minIndex>1</minIndex>
|
||||||
|
<maxIndex>10</maxIndex>
|
||||||
|
</rollingPolicy>
|
||||||
|
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||||
|
<maxFileSize>500MB</maxFileSize>
|
||||||
|
</triggeringPolicy>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root level="warn">
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
</root>
|
||||||
|
|
||||||
|
<logger name="ru.spcex" level="debug" additivity="false">
|
||||||
|
<appender-ref ref="FILE"/>
|
||||||
|
<appender-ref ref="CONSOLE"/>
|
||||||
|
</logger>
|
||||||
|
<!--<logger name="org.springframework" level="info" />-->
|
||||||
|
</configuration>
|
||||||
17
clearing-parent/gateway-api/src/main/web/WEB-INF/web.xml
Normal file
17
clearing-parent/gateway-api/src/main/web/WEB-INF/web.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
|
||||||
|
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
|
||||||
|
version="3.1"
|
||||||
|
metadata-complete="true">
|
||||||
|
<display-name>${project.name} ${project.version} (${timestamp})</display-name>
|
||||||
|
|
||||||
|
<session-config>
|
||||||
|
<session-timeout>60</session-timeout>
|
||||||
|
</session-config>
|
||||||
|
|
||||||
|
<absolute-ordering>
|
||||||
|
<name>spcex_web</name>
|
||||||
|
</absolute-ordering>
|
||||||
|
</web-app>
|
||||||
|
|
@ -38,6 +38,7 @@
|
||||||
<module>cleaning-builders</module>
|
<module>cleaning-builders</module>
|
||||||
<module>trade-importer</module>
|
<module>trade-importer</module>
|
||||||
<module>lim-exporter</module>
|
<module>lim-exporter</module>
|
||||||
|
<module>gateway-api</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
||||||
1
pom.xml
1
pom.xml
|
|
@ -45,6 +45,7 @@
|
||||||
<folder_root_reports-service>${folder_root_clearing}/clearing-parent/reports-service</folder_root_reports-service>
|
<folder_root_reports-service>${folder_root_clearing}/clearing-parent/reports-service</folder_root_reports-service>
|
||||||
<folder_root_utility-service>${folder_root_clearing}/clearing-parent/utility-service</folder_root_utility-service>
|
<folder_root_utility-service>${folder_root_clearing}/clearing-parent/utility-service</folder_root_utility-service>
|
||||||
<folder_root_scheduler-service>${folder_root_clearing}/clearing-parent/scheduler-service</folder_root_scheduler-service>
|
<folder_root_scheduler-service>${folder_root_clearing}/clearing-parent/scheduler-service</folder_root_scheduler-service>
|
||||||
|
<folder_root_gateway-api>${folder_root_clearing}/clearing-parent/gateway-api</folder_root_gateway-api>
|
||||||
<!-- IMDG -->
|
<!-- IMDG -->
|
||||||
<external_libraries.hazelcast.version>3.12.4</external_libraries.hazelcast.version>
|
<external_libraries.hazelcast.version>3.12.4</external_libraries.hazelcast.version>
|
||||||
<external_libraries.slf4j.version>1.7.33</external_libraries.slf4j.version>
|
<external_libraries.slf4j.version>1.7.33</external_libraries.slf4j.version>
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ rem copy clearing\modules\dbf-importer\*.jar allinone
|
||||||
rem copy clearing\modules\reports-service\*.jar allinone
|
rem copy clearing\modules\reports-service\*.jar allinone
|
||||||
rem copy clearing\modules\securities-service\*.jar allinone
|
rem copy clearing\modules\securities-service\*.jar allinone
|
||||||
rem copy clearing\modules\utility-service\*.jar allinone
|
rem copy clearing\modules\utility-service\*.jar allinone
|
||||||
|
rem copy clearing\modules\gateway-api\*.jar allinone
|
||||||
|
|
||||||
copy ..\..\..\clearing-parent\account-service\target\account-service.jar allinone
|
copy ..\..\..\clearing-parent\account-service\target\account-service.jar allinone
|
||||||
copy ..\..\..\clearing-parent\backend-api\target\backend-api.jar allinone
|
copy ..\..\..\clearing-parent\backend-api\target\backend-api.jar allinone
|
||||||
|
|
@ -35,5 +36,6 @@ copy ..\..\..\clearing-parent\scheduler-service\target\scheduler-service.jar all
|
||||||
copy ..\..\..\clearing-parent\securities-service\target\securities-service.jar allinone
|
copy ..\..\..\clearing-parent\securities-service\target\securities-service.jar allinone
|
||||||
copy ..\..\..\clearing-parent\trade-importer\target\trade-importer.jar allinone
|
copy ..\..\..\clearing-parent\trade-importer\target\trade-importer.jar allinone
|
||||||
copy ..\..\..\clearing-parent\utility-service\target\utility-service.jar allinone
|
copy ..\..\..\clearing-parent\utility-service\target\utility-service.jar allinone
|
||||||
|
copy ..\..\..\clearing-parent\gateway-api\target\gateway-api.jar allinone
|
||||||
|
|
||||||
:exit1:
|
:exit1:
|
||||||
|
|
|
||||||
|
|
@ -343,6 +343,32 @@
|
||||||
</fileSets>
|
</fileSets>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-gateway-api-bin</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<sourceFile>${folder_root_gateway-api}/target/gateway-api.jar
|
||||||
|
</sourceFile>
|
||||||
|
<destinationFile>
|
||||||
|
${folder.clearing.distr.modules}/gateway-api/gateway-api.jar
|
||||||
|
</destinationFile>
|
||||||
|
</fileSet>
|
||||||
|
<fileSet>
|
||||||
|
<sourceFile>
|
||||||
|
${folder_root_gateway-api}/src/main/resources/application.properties
|
||||||
|
</sourceFile>
|
||||||
|
<destinationFile>
|
||||||
|
${folder.clearing.distr.modules}/gateway-api/application.properties
|
||||||
|
</destinationFile>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
||||||
9
z-distr/src/main/resources/distr/bin/gateway-api.sh
Normal file
9
z-distr/src/main/resources/distr/bin/gateway-api.sh
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CLEARING_HOME=/opt/mfd/clearing/
|
||||||
|
cd $CLEARING_HOME/bin
|
||||||
|
|
||||||
|
CMD="java -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7020 -jar gateway-api.jar --spring.config.location=$CLEARING_HOME/settings/gateway-api/"
|
||||||
|
|
||||||
|
$CMD >/dev/null 2>&1 &
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
FROM debian:stable-20220125-jdk17
|
||||||
|
|
||||||
|
ADD gateway-api.jar /opt/clearing/bin/gateway-api.jar
|
||||||
|
ADD application.properties /opt/clearing/bin/application.properties
|
||||||
|
USER root
|
||||||
|
ENTRYPOINT java -jar /opt/clearing/bin/gateway-api.jar --spring.config.location=/opt/clearing/bin/
|
||||||
Loading…
Add table
Reference in a new issue