feat: consume money projected event amounts

This commit is contained in:
2026-08-25 22:30:08 +03:00
parent d10e1dd182
commit 1fd9a3a861
7 changed files with 25 additions and 29 deletions
@@ -41,12 +41,12 @@ describe("useBrokerageEvents", () => {
{
type: "dividend",
date: "2026-09-01",
dateKind: "declared",
instrumentId: "figi-1",
dateKind: "registry",
figi: "figi-1",
instrumentUid: null,
ticker: "SBER",
displayName: "Сбер",
amount: "12.34",
currency: "RUB",
projectedAmount: { currency: "RUB", value: "12.34" },
},
],
}),
@@ -62,12 +62,12 @@ describe("useBrokerageEvents", () => {
{
type: "dividend",
date: "2026-09-01",
dateKind: "declared",
instrumentId: "figi-1",
dateKind: "registry",
figi: "figi-1",
instrumentUid: null,
ticker: "SBER",
displayName: "Сбер",
amount: "12.34",
currency: "RUB",
projectedAmount: { currency: "RUB", value: "12.34" },
},
]);
});
@@ -42,24 +42,22 @@ describe("AccountEventsPage", () => {
calculatedAt: "2026-08-14T00:00:00Z",
events: [
{
amount: "1250",
currency: "RUB",
date: "2026-08-20",
dateKind: "event",
displayName: "ОФЗ 26238",
figi: "FIGI",
instrumentUid: "UID",
projectedAmount: { currency: "RUB", value: "1250" },
ticker: "OFZ",
type: "coupon",
},
{
amount: null,
currency: null,
date: "2026-08-25",
dateKind: "event",
displayName: "ОФЗ 26238",
figi: "FIGI",
instrumentUid: "UID",
projectedAmount: null,
ticker: "OFZ",
type: "offer",
},
@@ -104,8 +104,8 @@ const AccountEventRow: FC<AccountEventRowProps> = (props) => {
</Stack>
<Stack gap={2} align="flex-end">
<Text fw={700}>
{event.amount && event.currency
? formatMoney({ currency: event.currency, value: event.amount })
{event.projectedAmount
? formatMoney(event.projectedAmount)
: t("events.noAmount")}
</Text>
<Text c="dimmed" size="sm">
+1 -2
View File
@@ -119,8 +119,7 @@ function mockLoadedAccountPage() {
instrumentUid: null,
ticker: `BND${index}`,
displayName: `Купон ${index}`,
currency: "RUB",
amount: String(index + 1),
projectedAmount: { currency: "RUB", value: String(index + 1) },
})),
}),
),
@@ -54,8 +54,8 @@ const RecentEvent: FC<RecentEventProps> = (props) => {
<Paper className={classes.cash} withBorder>
<Text>{`${t(`events.type.${event.type}`)} · ${event.displayName}`}</Text>
<Text fw={700}>
{event.amount && event.currency
? formatMoney({ currency: event.currency, value: event.amount })
{event.projectedAmount
? formatMoney(event.projectedAmount)
: t("events.noAmount")}
</Text>
</Paper>
+1 -2
View File
@@ -274,8 +274,7 @@ export interface components {
instrumentUid: string | null;
ticker: string;
displayName: string;
currency: string | null;
amount: string | null;
projectedAmount: components["schemas"]["MoneyDto"] | null;
};
UpcomingEventsDto: {
accountId: string;
+9 -9
View File
@@ -1437,13 +1437,14 @@
"displayName": {
"type": "string"
},
"currency": {
"type": "string",
"nullable": true
},
"amount": {
"type": "string",
"nullable": true
"projectedAmount": {
"nullable": true,
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/MoneyDto"
}
]
}
},
"required": [
@@ -1454,8 +1455,7 @@
"instrumentUid",
"ticker",
"displayName",
"currency",
"amount"
"projectedAmount"
]
},
"UpcomingEventsDto": {