1use chrono::NaiveDate;
8use rust_decimal::Decimal;
9use serde::{Deserialize, Serialize};
10
11use super::common::{
12 AssetCategory, BuySell, DeliveredReceived, InOut, OpenClose, OptionAction, OrderType, PutCall,
13 TradeType, TransferType,
14};
15use crate::parsers::xml_utils::{
16 deserialize_optional_bool, deserialize_optional_date, deserialize_optional_decimal,
17 deserialize_optional_string,
18};
19
20#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
22pub struct AccountInformation {
23 #[serde(
25 rename = "@accountId",
26 default,
27 deserialize_with = "deserialize_optional_string"
28 )]
29 pub account_id: Option<String>,
30
31 #[serde(rename = "@accountType", default)]
33 pub account_type: Option<String>,
34
35 #[serde(rename = "@acctAlias", default)]
37 pub acct_alias: Option<String>,
38
39 #[serde(rename = "@currency", default)]
41 pub currency: Option<String>,
42
43 #[serde(rename = "@name", default)]
45 pub name: Option<String>,
46
47 #[serde(rename = "@masterName", default)]
49 pub master_name: Option<String>,
50
51 #[serde(rename = "@customerType", default)]
53 pub customer_type: Option<String>,
54
55 #[serde(
57 rename = "@dateOpened",
58 default,
59 deserialize_with = "deserialize_optional_date"
60 )]
61 pub date_opened: Option<NaiveDate>,
62
63 #[serde(
65 rename = "@dateFunded",
66 default,
67 deserialize_with = "deserialize_optional_date"
68 )]
69 pub date_funded: Option<NaiveDate>,
70
71 #[serde(
73 rename = "@dateClosed",
74 default,
75 deserialize_with = "deserialize_optional_date"
76 )]
77 pub date_closed: Option<NaiveDate>,
78
79 #[serde(rename = "@primaryEmail", default)]
81 pub primary_email: Option<String>,
82
83 #[serde(rename = "@streetAddress", default)]
85 pub street_address: Option<String>,
86
87 #[serde(rename = "@streetAddress2", default)]
89 pub street_address2: Option<String>,
90
91 #[serde(rename = "@city", default)]
93 pub city: Option<String>,
94
95 #[serde(rename = "@state", default)]
97 pub state: Option<String>,
98
99 #[serde(rename = "@country", default)]
101 pub country: Option<String>,
102
103 #[serde(rename = "@postalCode", default)]
105 pub postal_code: Option<String>,
106
107 #[serde(rename = "@accountCapabilities", default)]
109 pub account_capabilities: Option<String>,
110
111 #[serde(rename = "@tradingPermissions", default)]
113 pub trading_permissions: Option<String>,
114
115 #[serde(rename = "@registeredRepName", default)]
117 pub registered_rep_name: Option<String>,
118
119 #[serde(rename = "@registeredRepPhone", default)]
121 pub registered_rep_phone: Option<String>,
122
123 #[serde(rename = "@ibEntity", default)]
125 pub ib_entity: Option<String>,
126
127 #[serde(rename = "@model", default)]
129 pub model: Option<String>,
130
131 #[serde(
133 rename = "@street",
134 default,
135 deserialize_with = "deserialize_optional_string"
136 )]
137 pub street: Option<String>,
138
139 #[serde(
141 rename = "@street2",
142 default,
143 deserialize_with = "deserialize_optional_string"
144 )]
145 pub street2: Option<String>,
146
147 #[serde(
149 rename = "@streetResidentialAddress",
150 default,
151 deserialize_with = "deserialize_optional_string"
152 )]
153 pub street_residential_address: Option<String>,
154
155 #[serde(
157 rename = "@street2ResidentialAddress",
158 default,
159 deserialize_with = "deserialize_optional_string"
160 )]
161 pub street2_residential_address: Option<String>,
162
163 #[serde(
165 rename = "@cityResidentialAddress",
166 default,
167 deserialize_with = "deserialize_optional_string"
168 )]
169 pub city_residential_address: Option<String>,
170
171 #[serde(
173 rename = "@stateResidentialAddress",
174 default,
175 deserialize_with = "deserialize_optional_string"
176 )]
177 pub state_residential_address: Option<String>,
178
179 #[serde(
181 rename = "@countryResidentialAddress",
182 default,
183 deserialize_with = "deserialize_optional_string"
184 )]
185 pub country_residential_address: Option<String>,
186
187 #[serde(
189 rename = "@postalCodeResidentialAddress",
190 default,
191 deserialize_with = "deserialize_optional_string"
192 )]
193 pub postal_code_residential_address: Option<String>,
194
195 #[serde(
197 rename = "@accountRepName",
198 default,
199 deserialize_with = "deserialize_optional_string"
200 )]
201 pub account_rep_name: Option<String>,
202
203 #[serde(
205 rename = "@accountRepPhone",
206 default,
207 deserialize_with = "deserialize_optional_string"
208 )]
209 pub account_rep_phone: Option<String>,
210
211 #[serde(
213 rename = "@lastTradedDate",
214 default,
215 deserialize_with = "deserialize_optional_date"
216 )]
217 pub last_traded_date: Option<NaiveDate>,
218}
219
220#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
222pub struct ChangeInNAV {
223 #[serde(
225 rename = "@accountId",
226 default,
227 deserialize_with = "deserialize_optional_string"
228 )]
229 pub account_id: Option<String>,
230
231 #[serde(rename = "@acctAlias", default)]
233 pub acct_alias: Option<String>,
234
235 #[serde(rename = "@model", default)]
237 pub model: Option<String>,
238
239 #[serde(rename = "@currency", default)]
241 pub currency: Option<String>,
242
243 #[serde(
245 rename = "@fromDate",
246 default,
247 deserialize_with = "deserialize_optional_date"
248 )]
249 pub from_date: Option<NaiveDate>,
250
251 #[serde(
253 rename = "@toDate",
254 default,
255 deserialize_with = "deserialize_optional_date"
256 )]
257 pub to_date: Option<NaiveDate>,
258
259 #[serde(
261 rename = "@startingValue",
262 default,
263 deserialize_with = "deserialize_optional_decimal"
264 )]
265 pub starting_value: Option<Decimal>,
266
267 #[serde(
269 rename = "@endingValue",
270 default,
271 deserialize_with = "deserialize_optional_decimal"
272 )]
273 pub ending_value: Option<Decimal>,
274
275 #[serde(
277 rename = "@mtm",
278 default,
279 deserialize_with = "deserialize_optional_decimal"
280 )]
281 pub mtm: Option<Decimal>,
282
283 #[serde(
285 rename = "@realized",
286 default,
287 deserialize_with = "deserialize_optional_decimal"
288 )]
289 pub realized: Option<Decimal>,
290
291 #[serde(
293 rename = "@changeInUnrealized",
294 default,
295 deserialize_with = "deserialize_optional_decimal"
296 )]
297 pub change_in_unrealized: Option<Decimal>,
298
299 #[serde(
301 rename = "@depositsWithdrawals",
302 default,
303 deserialize_with = "deserialize_optional_decimal"
304 )]
305 pub deposits_withdrawals: Option<Decimal>,
306
307 #[serde(
309 rename = "@dividends",
310 default,
311 deserialize_with = "deserialize_optional_decimal"
312 )]
313 pub dividends: Option<Decimal>,
314
315 #[serde(
317 rename = "@withholdingTax",
318 default,
319 deserialize_with = "deserialize_optional_decimal"
320 )]
321 pub withholding_tax: Option<Decimal>,
322
323 #[serde(
325 rename = "@changeInDividendAccruals",
326 default,
327 deserialize_with = "deserialize_optional_decimal"
328 )]
329 pub change_in_dividend_accruals: Option<Decimal>,
330
331 #[serde(
333 rename = "@interest",
334 default,
335 deserialize_with = "deserialize_optional_decimal"
336 )]
337 pub interest: Option<Decimal>,
338
339 #[serde(
341 rename = "@changeInInterestAccruals",
342 default,
343 deserialize_with = "deserialize_optional_decimal"
344 )]
345 pub change_in_interest_accruals: Option<Decimal>,
346
347 #[serde(
349 rename = "@advisorFees",
350 default,
351 deserialize_with = "deserialize_optional_decimal"
352 )]
353 pub advisor_fees: Option<Decimal>,
354
355 #[serde(
357 rename = "@clientFees",
358 default,
359 deserialize_with = "deserialize_optional_decimal"
360 )]
361 pub client_fees: Option<Decimal>,
362
363 #[serde(
365 rename = "@otherFees",
366 default,
367 deserialize_with = "deserialize_optional_decimal"
368 )]
369 pub other_fees: Option<Decimal>,
370
371 #[serde(
373 rename = "@commissions",
374 default,
375 deserialize_with = "deserialize_optional_decimal"
376 )]
377 pub commissions: Option<Decimal>,
378
379 #[serde(
381 rename = "@fxTranslation",
382 default,
383 deserialize_with = "deserialize_optional_decimal"
384 )]
385 pub fx_translation: Option<Decimal>,
386
387 #[serde(
389 rename = "@twr",
390 default,
391 deserialize_with = "deserialize_optional_decimal"
392 )]
393 pub twr: Option<Decimal>,
394
395 #[serde(
397 rename = "@corporateActionProceeds",
398 default,
399 deserialize_with = "deserialize_optional_decimal"
400 )]
401 pub corporate_action_proceeds: Option<Decimal>,
402
403 #[serde(
405 rename = "@costAdjustments",
406 default,
407 deserialize_with = "deserialize_optional_decimal"
408 )]
409 pub cost_adjustments: Option<Decimal>,
410
411 #[serde(
413 rename = "@transferredPnlAdjustments",
414 default,
415 deserialize_with = "deserialize_optional_decimal"
416 )]
417 pub transferred_pnl_adjustments: Option<Decimal>,
418
419 #[serde(
421 rename = "@internalCashTransfers",
422 default,
423 deserialize_with = "deserialize_optional_decimal"
424 )]
425 pub internal_cash_transfers: Option<Decimal>,
426
427 #[serde(
429 rename = "@assetTransfers",
430 default,
431 deserialize_with = "deserialize_optional_decimal"
432 )]
433 pub asset_transfers: Option<Decimal>,
434
435 #[serde(
437 rename = "@debitCardActivity",
438 default,
439 deserialize_with = "deserialize_optional_decimal"
440 )]
441 pub debit_card_activity: Option<Decimal>,
442
443 #[serde(
445 rename = "@billPay",
446 default,
447 deserialize_with = "deserialize_optional_decimal"
448 )]
449 pub bill_pay: Option<Decimal>,
450
451 #[serde(
453 rename = "@withholding871m",
454 default,
455 deserialize_with = "deserialize_optional_decimal"
456 )]
457 pub withholding871m: Option<Decimal>,
458
459 #[serde(
461 rename = "@withholdingTaxCollected",
462 default,
463 deserialize_with = "deserialize_optional_decimal"
464 )]
465 pub withholding_tax_collected: Option<Decimal>,
466
467 #[serde(
469 rename = "@brokerFees",
470 default,
471 deserialize_with = "deserialize_optional_decimal"
472 )]
473 pub broker_fees: Option<Decimal>,
474
475 #[serde(
477 rename = "@changeInBrokerFeeAccruals",
478 default,
479 deserialize_with = "deserialize_optional_decimal"
480 )]
481 pub change_in_broker_fee_accruals: Option<Decimal>,
482
483 #[serde(
485 rename = "@feesReceivables",
486 default,
487 deserialize_with = "deserialize_optional_decimal"
488 )]
489 pub fees_receivables: Option<Decimal>,
490
491 #[serde(
493 rename = "@commissionReceivables",
494 default,
495 deserialize_with = "deserialize_optional_decimal"
496 )]
497 pub commission_receivables: Option<Decimal>,
498
499 #[serde(
501 rename = "@forexCommissions",
502 default,
503 deserialize_with = "deserialize_optional_decimal"
504 )]
505 pub forex_commissions: Option<Decimal>,
506
507 #[serde(
509 rename = "@transactionTax",
510 default,
511 deserialize_with = "deserialize_optional_decimal"
512 )]
513 pub transaction_tax: Option<Decimal>,
514
515 #[serde(
517 rename = "@taxReceivables",
518 default,
519 deserialize_with = "deserialize_optional_decimal"
520 )]
521 pub tax_receivables: Option<Decimal>,
522
523 #[serde(
525 rename = "@salesTax",
526 default,
527 deserialize_with = "deserialize_optional_decimal"
528 )]
529 pub sales_tax: Option<Decimal>,
530
531 #[serde(
533 rename = "@softDollars",
534 default,
535 deserialize_with = "deserialize_optional_decimal"
536 )]
537 pub soft_dollars: Option<Decimal>,
538
539 #[serde(
541 rename = "@netFxTrading",
542 default,
543 deserialize_with = "deserialize_optional_decimal"
544 )]
545 pub net_fx_trading: Option<Decimal>,
546
547 #[serde(
549 rename = "@linkingAdjustments",
550 default,
551 deserialize_with = "deserialize_optional_decimal"
552 )]
553 pub linking_adjustments: Option<Decimal>,
554
555 #[serde(
557 rename = "@other",
558 default,
559 deserialize_with = "deserialize_optional_decimal"
560 )]
561 pub other: Option<Decimal>,
562
563 #[serde(
565 rename = "@commissionCreditsRedemption",
566 default,
567 deserialize_with = "deserialize_optional_decimal"
568 )]
569 pub commission_credits_redemption: Option<Decimal>,
570
571 #[serde(
573 rename = "@grantActivity",
574 default,
575 deserialize_with = "deserialize_optional_decimal"
576 )]
577 pub grant_activity: Option<Decimal>,
578
579 #[serde(
581 rename = "@excessFundSweep",
582 default,
583 deserialize_with = "deserialize_optional_decimal"
584 )]
585 pub excess_fund_sweep: Option<Decimal>,
586
587 #[serde(
589 rename = "@billableSalesTax",
590 default,
591 deserialize_with = "deserialize_optional_decimal"
592 )]
593 pub billable_sales_tax: Option<Decimal>,
594
595 #[serde(
597 rename = "@mtmAtPaxos",
598 default,
599 deserialize_with = "deserialize_optional_decimal"
600 )]
601 pub mtm_at_paxos: Option<Decimal>,
602
603 #[serde(
605 rename = "@carbonCredits",
606 default,
607 deserialize_with = "deserialize_optional_decimal"
608 )]
609 pub carbon_credits: Option<Decimal>,
610
611 #[serde(
613 rename = "@donations",
614 default,
615 deserialize_with = "deserialize_optional_decimal"
616 )]
617 pub donations: Option<Decimal>,
618
619 #[serde(
621 rename = "@paxosTransfers",
622 default,
623 deserialize_with = "deserialize_optional_decimal"
624 )]
625 pub paxos_transfers: Option<Decimal>,
626
627 #[serde(
629 rename = "@commissionsAtPaxos",
630 default,
631 deserialize_with = "deserialize_optional_decimal"
632 )]
633 pub commissions_at_paxos: Option<Decimal>,
634
635 #[serde(
637 rename = "@referralFee",
638 default,
639 deserialize_with = "deserialize_optional_decimal"
640 )]
641 pub referral_fee: Option<Decimal>,
642
643 #[serde(
645 rename = "@changeInIncentiveCouponAccruals",
646 default,
647 deserialize_with = "deserialize_optional_decimal"
648 )]
649 pub change_in_incentive_coupon_accruals: Option<Decimal>,
650
651 #[serde(
653 rename = "@otherIncome",
654 default,
655 deserialize_with = "deserialize_optional_decimal"
656 )]
657 pub other_income: Option<Decimal>,
658
659 #[serde(
662 rename = "@changeInCGTWithholdingAccruals",
663 default,
664 deserialize_with = "deserialize_optional_decimal"
665 )]
666 pub change_in_cgt_withholding_accruals: Option<Decimal>,
667
668 #[serde(
670 rename = "@changeInLiteSurchargeAccruals",
671 default,
672 deserialize_with = "deserialize_optional_decimal"
673 )]
674 pub change_in_lite_surcharge_accruals: Option<Decimal>,
675}
676
677#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
679pub struct EquitySummaryByReportDateInBase {
680 #[serde(
682 rename = "@accountId",
683 default,
684 deserialize_with = "deserialize_optional_string"
685 )]
686 pub account_id: Option<String>,
687
688 #[serde(rename = "@acctAlias", default)]
690 pub acct_alias: Option<String>,
691
692 #[serde(rename = "@model", default)]
694 pub model: Option<String>,
695
696 #[serde(
698 rename = "@reportDate",
699 default,
700 deserialize_with = "deserialize_optional_date"
701 )]
702 pub report_date: Option<NaiveDate>,
703
704 #[serde(
706 rename = "@cash",
707 default,
708 deserialize_with = "deserialize_optional_decimal"
709 )]
710 pub cash: Option<Decimal>,
711
712 #[serde(
714 rename = "@cashLong",
715 default,
716 deserialize_with = "deserialize_optional_decimal"
717 )]
718 pub cash_long: Option<Decimal>,
719
720 #[serde(
722 rename = "@cashShort",
723 default,
724 deserialize_with = "deserialize_optional_decimal"
725 )]
726 pub cash_short: Option<Decimal>,
727
728 #[serde(
730 rename = "@settledCash",
731 default,
732 deserialize_with = "deserialize_optional_decimal"
733 )]
734 pub settled_cash: Option<Decimal>,
735
736 #[serde(
738 rename = "@slbCashCollateral",
739 default,
740 deserialize_with = "deserialize_optional_decimal"
741 )]
742 pub slb_cash_collateral: Option<Decimal>,
743
744 #[serde(
746 rename = "@stock",
747 default,
748 deserialize_with = "deserialize_optional_decimal"
749 )]
750 pub stock: Option<Decimal>,
751
752 #[serde(
754 rename = "@stockLong",
755 default,
756 deserialize_with = "deserialize_optional_decimal"
757 )]
758 pub stock_long: Option<Decimal>,
759
760 #[serde(
762 rename = "@stockShort",
763 default,
764 deserialize_with = "deserialize_optional_decimal"
765 )]
766 pub stock_short: Option<Decimal>,
767
768 #[serde(
770 rename = "@slbDirectSecuritiesBorrowed",
771 default,
772 deserialize_with = "deserialize_optional_decimal"
773 )]
774 pub slb_direct_securities_borrowed: Option<Decimal>,
775
776 #[serde(
778 rename = "@slbDirectSecuritiesLent",
779 default,
780 deserialize_with = "deserialize_optional_decimal"
781 )]
782 pub slb_direct_securities_lent: Option<Decimal>,
783
784 #[serde(
786 rename = "@options",
787 default,
788 deserialize_with = "deserialize_optional_decimal"
789 )]
790 pub options: Option<Decimal>,
791
792 #[serde(
794 rename = "@optionsLong",
795 default,
796 deserialize_with = "deserialize_optional_decimal"
797 )]
798 pub options_long: Option<Decimal>,
799
800 #[serde(
802 rename = "@optionsShort",
803 default,
804 deserialize_with = "deserialize_optional_decimal"
805 )]
806 pub options_short: Option<Decimal>,
807
808 #[serde(
810 rename = "@bonds",
811 default,
812 deserialize_with = "deserialize_optional_decimal"
813 )]
814 pub bonds: Option<Decimal>,
815
816 #[serde(
818 rename = "@bondsLong",
819 default,
820 deserialize_with = "deserialize_optional_decimal"
821 )]
822 pub bonds_long: Option<Decimal>,
823
824 #[serde(
826 rename = "@bondsShort",
827 default,
828 deserialize_with = "deserialize_optional_decimal"
829 )]
830 pub bonds_short: Option<Decimal>,
831
832 #[serde(
834 rename = "@notes",
835 default,
836 deserialize_with = "deserialize_optional_decimal"
837 )]
838 pub notes: Option<Decimal>,
839
840 #[serde(
842 rename = "@funds",
843 default,
844 deserialize_with = "deserialize_optional_decimal"
845 )]
846 pub funds: Option<Decimal>,
847
848 #[serde(
850 rename = "@futures",
851 default,
852 deserialize_with = "deserialize_optional_decimal"
853 )]
854 pub futures: Option<Decimal>,
855
856 #[serde(
858 rename = "@futuresLong",
859 default,
860 deserialize_with = "deserialize_optional_decimal"
861 )]
862 pub futures_long: Option<Decimal>,
863
864 #[serde(
866 rename = "@futuresShort",
867 default,
868 deserialize_with = "deserialize_optional_decimal"
869 )]
870 pub futures_short: Option<Decimal>,
871
872 #[serde(
874 rename = "@commodities",
875 default,
876 deserialize_with = "deserialize_optional_decimal"
877 )]
878 pub commodities: Option<Decimal>,
879
880 #[serde(
882 rename = "@total",
883 default,
884 deserialize_with = "deserialize_optional_decimal"
885 )]
886 pub total: Option<Decimal>,
887
888 #[serde(
890 rename = "@totalLong",
891 default,
892 deserialize_with = "deserialize_optional_decimal"
893 )]
894 pub total_long: Option<Decimal>,
895
896 #[serde(
898 rename = "@totalShort",
899 default,
900 deserialize_with = "deserialize_optional_decimal"
901 )]
902 pub total_short: Option<Decimal>,
903
904 #[serde(
906 rename = "@interestAccruals",
907 default,
908 deserialize_with = "deserialize_optional_decimal"
909 )]
910 pub interest_accruals: Option<Decimal>,
911
912 #[serde(
914 rename = "@dividendAccruals",
915 default,
916 deserialize_with = "deserialize_optional_decimal"
917 )]
918 pub dividend_accruals: Option<Decimal>,
919
920 #[serde(
922 rename = "@accruedInterest",
923 default,
924 deserialize_with = "deserialize_optional_decimal"
925 )]
926 pub accrued_interest: Option<Decimal>,
927
928 #[serde(
930 rename = "@accruedDividend",
931 default,
932 deserialize_with = "deserialize_optional_decimal"
933 )]
934 pub accrued_dividend: Option<Decimal>,
935
936 #[serde(
938 rename = "@softDollars",
939 default,
940 deserialize_with = "deserialize_optional_decimal"
941 )]
942 pub soft_dollars: Option<Decimal>,
943
944 #[serde(
946 rename = "@forexCfdUnrealizedPl",
947 default,
948 deserialize_with = "deserialize_optional_decimal"
949 )]
950 pub forex_cfd_unrealized_pl: Option<Decimal>,
951
952 #[serde(
954 rename = "@cfdUnrealizedPl",
955 default,
956 deserialize_with = "deserialize_optional_decimal"
957 )]
958 pub cfd_unrealized_pl: Option<Decimal>,
959
960 #[serde(
962 rename = "@brokerCashComponent",
963 default,
964 deserialize_with = "deserialize_optional_decimal"
965 )]
966 pub broker_cash_component: Option<Decimal>,
967
968 #[serde(
970 rename = "@brokerInterestAccrualsComponent",
971 default,
972 deserialize_with = "deserialize_optional_decimal"
973 )]
974 pub broker_interest_accruals_component: Option<Decimal>,
975
976 #[serde(
978 rename = "@grossPositionValue",
979 default,
980 deserialize_with = "deserialize_optional_decimal"
981 )]
982 pub gross_position_value: Option<Decimal>,
983
984 #[serde(
986 rename = "@netLiquidation",
987 default,
988 deserialize_with = "deserialize_optional_decimal"
989 )]
990 pub net_liquidation: Option<Decimal>,
991
992 #[serde(
994 rename = "@netLiquidationUncertainty",
995 default,
996 deserialize_with = "deserialize_optional_decimal"
997 )]
998 pub net_liquidation_uncertainty: Option<Decimal>,
999
1000 #[serde(
1002 rename = "@currency",
1003 default,
1004 deserialize_with = "deserialize_optional_string"
1005 )]
1006 pub currency: Option<String>,
1007
1008 #[serde(
1010 rename = "@slbCashCollateralLong",
1011 default,
1012 deserialize_with = "deserialize_optional_decimal"
1013 )]
1014 pub slb_cash_collateral_long: Option<Decimal>,
1015
1016 #[serde(
1018 rename = "@slbCashCollateralShort",
1019 default,
1020 deserialize_with = "deserialize_optional_decimal"
1021 )]
1022 pub slb_cash_collateral_short: Option<Decimal>,
1023
1024 #[serde(
1026 rename = "@slbDirectSecuritiesBorrowedLong",
1027 default,
1028 deserialize_with = "deserialize_optional_decimal"
1029 )]
1030 pub slb_direct_securities_borrowed_long: Option<Decimal>,
1031
1032 #[serde(
1034 rename = "@slbDirectSecuritiesBorrowedShort",
1035 default,
1036 deserialize_with = "deserialize_optional_decimal"
1037 )]
1038 pub slb_direct_securities_borrowed_short: Option<Decimal>,
1039
1040 #[serde(
1042 rename = "@slbDirectSecuritiesLentLong",
1043 default,
1044 deserialize_with = "deserialize_optional_decimal"
1045 )]
1046 pub slb_direct_securities_lent_long: Option<Decimal>,
1047
1048 #[serde(
1050 rename = "@slbDirectSecuritiesLentShort",
1051 default,
1052 deserialize_with = "deserialize_optional_decimal"
1053 )]
1054 pub slb_direct_securities_lent_short: Option<Decimal>,
1055
1056 #[serde(
1058 rename = "@bondInterestAccrualsComponent",
1059 default,
1060 deserialize_with = "deserialize_optional_decimal"
1061 )]
1062 pub bond_interest_accruals_component: Option<Decimal>,
1063
1064 #[serde(
1066 rename = "@bondInterestAccrualsComponentLong",
1067 default,
1068 deserialize_with = "deserialize_optional_decimal"
1069 )]
1070 pub bond_interest_accruals_component_long: Option<Decimal>,
1071
1072 #[serde(
1074 rename = "@bondInterestAccrualsComponentShort",
1075 default,
1076 deserialize_with = "deserialize_optional_decimal"
1077 )]
1078 pub bond_interest_accruals_component_short: Option<Decimal>,
1079
1080 #[serde(
1082 rename = "@notesLong",
1083 default,
1084 deserialize_with = "deserialize_optional_decimal"
1085 )]
1086 pub notes_long: Option<Decimal>,
1087
1088 #[serde(
1090 rename = "@notesShort",
1091 default,
1092 deserialize_with = "deserialize_optional_decimal"
1093 )]
1094 pub notes_short: Option<Decimal>,
1095
1096 #[serde(
1098 rename = "@incentiveCouponAccruals",
1099 default,
1100 deserialize_with = "deserialize_optional_decimal"
1101 )]
1102 pub incentive_coupon_accruals: Option<Decimal>,
1103
1104 #[serde(
1106 rename = "@interestAccrualsLong",
1107 default,
1108 deserialize_with = "deserialize_optional_decimal"
1109 )]
1110 pub interest_accruals_long: Option<Decimal>,
1111
1112 #[serde(
1114 rename = "@interestAccrualsShort",
1115 default,
1116 deserialize_with = "deserialize_optional_decimal"
1117 )]
1118 pub interest_accruals_short: Option<Decimal>,
1119
1120 #[serde(
1122 rename = "@softDollarsLong",
1123 default,
1124 deserialize_with = "deserialize_optional_decimal"
1125 )]
1126 pub soft_dollars_long: Option<Decimal>,
1127
1128 #[serde(
1130 rename = "@softDollarsShort",
1131 default,
1132 deserialize_with = "deserialize_optional_decimal"
1133 )]
1134 pub soft_dollars_short: Option<Decimal>,
1135
1136 #[serde(
1138 rename = "@dividendAccrualsLong",
1139 default,
1140 deserialize_with = "deserialize_optional_decimal"
1141 )]
1142 pub dividend_accruals_long: Option<Decimal>,
1143
1144 #[serde(
1146 rename = "@dividendAccrualsShort",
1147 default,
1148 deserialize_with = "deserialize_optional_decimal"
1149 )]
1150 pub dividend_accruals_short: Option<Decimal>,
1151
1152 #[serde(
1154 rename = "@commoditiesLong",
1155 default,
1156 deserialize_with = "deserialize_optional_decimal"
1157 )]
1158 pub commodities_long: Option<Decimal>,
1159
1160 #[serde(
1162 rename = "@commoditiesShort",
1163 default,
1164 deserialize_with = "deserialize_optional_decimal"
1165 )]
1166 pub commodities_short: Option<Decimal>,
1167
1168 #[serde(
1170 rename = "@fundsLong",
1171 default,
1172 deserialize_with = "deserialize_optional_decimal"
1173 )]
1174 pub funds_long: Option<Decimal>,
1175
1176 #[serde(
1178 rename = "@fundsShort",
1179 default,
1180 deserialize_with = "deserialize_optional_decimal"
1181 )]
1182 pub funds_short: Option<Decimal>,
1183
1184 #[serde(
1186 rename = "@forexCfdUnrealizedPlLong",
1187 default,
1188 deserialize_with = "deserialize_optional_decimal"
1189 )]
1190 pub forex_cfd_unrealized_pl_long: Option<Decimal>,
1191
1192 #[serde(
1194 rename = "@forexCfdUnrealizedPlShort",
1195 default,
1196 deserialize_with = "deserialize_optional_decimal"
1197 )]
1198 pub forex_cfd_unrealized_pl_short: Option<Decimal>,
1199
1200 #[serde(
1202 rename = "@brokerFeesAccrualsComponent",
1203 default,
1204 deserialize_with = "deserialize_optional_decimal"
1205 )]
1206 pub broker_fees_accruals_component: Option<Decimal>,
1207
1208 #[serde(
1210 rename = "@brokerFeesAccrualsComponentLong",
1211 default,
1212 deserialize_with = "deserialize_optional_decimal"
1213 )]
1214 pub broker_fees_accruals_component_long: Option<Decimal>,
1215
1216 #[serde(
1218 rename = "@brokerFeesAccrualsComponentShort",
1219 default,
1220 deserialize_with = "deserialize_optional_decimal"
1221 )]
1222 pub broker_fees_accruals_component_short: Option<Decimal>,
1223
1224 #[serde(
1226 rename = "@eventContractInterestAccruals",
1227 default,
1228 deserialize_with = "deserialize_optional_decimal"
1229 )]
1230 pub event_contract_interest_accruals: Option<Decimal>,
1231
1232 #[serde(
1234 rename = "@marginFinancingChargeAccruals",
1235 default,
1236 deserialize_with = "deserialize_optional_decimal"
1237 )]
1238 pub margin_financing_charge_accruals: Option<Decimal>,
1239
1240 #[serde(
1242 rename = "@insuredBankDepositRedemptionCashComponent",
1243 default,
1244 deserialize_with = "deserialize_optional_decimal"
1245 )]
1246 pub insured_bank_deposit_redemption_cash_component: Option<Decimal>,
1247
1248 #[serde(
1250 rename = "@fdicInsuredBankSweepAccount",
1251 default,
1252 deserialize_with = "deserialize_optional_decimal"
1253 )]
1254 pub fdic_insured_bank_sweep_account: Option<Decimal>,
1255
1256 #[serde(
1258 rename = "@fdicInsuredBankSweepAccountLong",
1259 default,
1260 deserialize_with = "deserialize_optional_decimal"
1261 )]
1262 pub fdic_insured_bank_sweep_account_long: Option<Decimal>,
1263
1264 #[serde(
1266 rename = "@fdicInsuredBankSweepAccountShort",
1267 default,
1268 deserialize_with = "deserialize_optional_decimal"
1269 )]
1270 pub fdic_insured_bank_sweep_account_short: Option<Decimal>,
1271
1272 #[serde(
1274 rename = "@fdicInsuredBankSweepAccountCashComponent",
1275 default,
1276 deserialize_with = "deserialize_optional_decimal"
1277 )]
1278 pub fdic_insured_bank_sweep_account_cash_component: Option<Decimal>,
1279
1280 #[serde(
1282 rename = "@fdicInsuredBankSweepAccountCashComponentLong",
1283 default,
1284 deserialize_with = "deserialize_optional_decimal"
1285 )]
1286 pub fdic_insured_bank_sweep_account_cash_component_long: Option<Decimal>,
1287
1288 #[serde(
1290 rename = "@fdicInsuredBankSweepAccountCashComponentShort",
1291 default,
1292 deserialize_with = "deserialize_optional_decimal"
1293 )]
1294 pub fdic_insured_bank_sweep_account_cash_component_short: Option<Decimal>,
1295
1296 #[serde(
1298 rename = "@fdicInsuredAccountInterestAccruals",
1299 default,
1300 deserialize_with = "deserialize_optional_decimal"
1301 )]
1302 pub fdic_insured_account_interest_accruals: Option<Decimal>,
1303
1304 #[serde(
1306 rename = "@fdicInsuredAccountInterestAccrualsLong",
1307 default,
1308 deserialize_with = "deserialize_optional_decimal"
1309 )]
1310 pub fdic_insured_account_interest_accruals_long: Option<Decimal>,
1311
1312 #[serde(
1314 rename = "@fdicInsuredAccountInterestAccrualsShort",
1315 default,
1316 deserialize_with = "deserialize_optional_decimal"
1317 )]
1318 pub fdic_insured_account_interest_accruals_short: Option<Decimal>,
1319
1320 #[serde(
1322 rename = "@fdicInsuredAccountInterestAccrualsComponent",
1323 default,
1324 deserialize_with = "deserialize_optional_decimal"
1325 )]
1326 pub fdic_insured_account_interest_accruals_component: Option<Decimal>,
1327
1328 #[serde(
1330 rename = "@fdicInsuredAccountInterestAccrualsComponentLong",
1331 default,
1332 deserialize_with = "deserialize_optional_decimal"
1333 )]
1334 pub fdic_insured_account_interest_accruals_component_long: Option<Decimal>,
1335
1336 #[serde(
1338 rename = "@fdicInsuredAccountInterestAccrualsComponentShort",
1339 default,
1340 deserialize_with = "deserialize_optional_decimal"
1341 )]
1342 pub fdic_insured_account_interest_accruals_component_short: Option<Decimal>,
1343
1344 #[serde(
1346 rename = "@brokerCashComponentLong",
1347 default,
1348 deserialize_with = "deserialize_optional_decimal"
1349 )]
1350 pub broker_cash_component_long: Option<Decimal>,
1351
1352 #[serde(
1354 rename = "@brokerCashComponentShort",
1355 default,
1356 deserialize_with = "deserialize_optional_decimal"
1357 )]
1358 pub broker_cash_component_short: Option<Decimal>,
1359
1360 #[serde(
1362 rename = "@brokerInterestAccrualsComponentLong",
1363 default,
1364 deserialize_with = "deserialize_optional_decimal"
1365 )]
1366 pub broker_interest_accruals_component_long: Option<Decimal>,
1367
1368 #[serde(
1370 rename = "@brokerInterestAccrualsComponentShort",
1371 default,
1372 deserialize_with = "deserialize_optional_decimal"
1373 )]
1374 pub broker_interest_accruals_component_short: Option<Decimal>,
1375
1376 #[serde(
1378 rename = "@cfdUnrealizedPlLong",
1379 default,
1380 deserialize_with = "deserialize_optional_decimal"
1381 )]
1382 pub cfd_unrealized_pl_long: Option<Decimal>,
1383
1384 #[serde(
1386 rename = "@cfdUnrealizedPlShort",
1387 default,
1388 deserialize_with = "deserialize_optional_decimal"
1389 )]
1390 pub cfd_unrealized_pl_short: Option<Decimal>,
1391
1392 #[serde(
1394 rename = "@ipoSubscription",
1395 default,
1396 deserialize_with = "deserialize_optional_decimal"
1397 )]
1398 pub ipo_subscription: Option<Decimal>,
1399
1400 #[serde(
1402 rename = "@ipoSubscriptionLong",
1403 default,
1404 deserialize_with = "deserialize_optional_decimal"
1405 )]
1406 pub ipo_subscription_long: Option<Decimal>,
1407
1408 #[serde(
1410 rename = "@ipoSubscriptionShort",
1411 default,
1412 deserialize_with = "deserialize_optional_decimal"
1413 )]
1414 pub ipo_subscription_short: Option<Decimal>,
1415
1416 #[serde(
1418 rename = "@crypto",
1419 default,
1420 deserialize_with = "deserialize_optional_decimal"
1421 )]
1422 pub crypto: Option<Decimal>,
1423
1424 #[serde(
1426 rename = "@physDel",
1427 default,
1428 deserialize_with = "deserialize_optional_decimal"
1429 )]
1430 pub phys_del: Option<Decimal>,
1431
1432 #[serde(
1434 rename = "@physDelLong",
1435 default,
1436 deserialize_with = "deserialize_optional_decimal"
1437 )]
1438 pub phys_del_long: Option<Decimal>,
1439
1440 #[serde(
1442 rename = "@physDelShort",
1443 default,
1444 deserialize_with = "deserialize_optional_decimal"
1445 )]
1446 pub phys_del_short: Option<Decimal>,
1447
1448 #[serde(
1450 rename = "@insuredBankDepositRedemptionCashComponentLong",
1451 default,
1452 deserialize_with = "deserialize_optional_decimal"
1453 )]
1454 pub insured_bank_deposit_redemption_cash_component_long: Option<Decimal>,
1455
1456 #[serde(
1458 rename = "@insuredBankDepositRedemptionCashComponentShort",
1459 default,
1460 deserialize_with = "deserialize_optional_decimal"
1461 )]
1462 pub insured_bank_deposit_redemption_cash_component_short: Option<Decimal>,
1463
1464 #[serde(
1466 rename = "@incentiveCouponAccrualsLong",
1467 default,
1468 deserialize_with = "deserialize_optional_decimal"
1469 )]
1470 pub incentive_coupon_accruals_long: Option<Decimal>,
1471
1472 #[serde(
1474 rename = "@incentiveCouponAccrualsShort",
1475 default,
1476 deserialize_with = "deserialize_optional_decimal"
1477 )]
1478 pub incentive_coupon_accruals_short: Option<Decimal>,
1479
1480 #[serde(
1482 rename = "@eventContractInterestAccrualsLong",
1483 default,
1484 deserialize_with = "deserialize_optional_decimal"
1485 )]
1486 pub event_contract_interest_accruals_long: Option<Decimal>,
1487
1488 #[serde(
1490 rename = "@eventContractInterestAccrualsShort",
1491 default,
1492 deserialize_with = "deserialize_optional_decimal"
1493 )]
1494 pub event_contract_interest_accruals_short: Option<Decimal>,
1495
1496 #[serde(
1498 rename = "@marginFinancingChargeAccrualsLong",
1499 default,
1500 deserialize_with = "deserialize_optional_decimal"
1501 )]
1502 pub margin_financing_charge_accruals_long: Option<Decimal>,
1503
1504 #[serde(
1506 rename = "@marginFinancingChargeAccrualsShort",
1507 default,
1508 deserialize_with = "deserialize_optional_decimal"
1509 )]
1510 pub margin_financing_charge_accruals_short: Option<Decimal>,
1511
1512 #[serde(
1514 rename = "@cryptoLong",
1515 default,
1516 deserialize_with = "deserialize_optional_decimal"
1517 )]
1518 pub crypto_long: Option<Decimal>,
1519
1520 #[serde(
1522 rename = "@cryptoShort",
1523 default,
1524 deserialize_with = "deserialize_optional_decimal"
1525 )]
1526 pub crypto_short: Option<Decimal>,
1527
1528 #[serde(
1530 rename = "@liteSurchargeAccruals",
1531 default,
1532 deserialize_with = "deserialize_optional_decimal"
1533 )]
1534 pub lite_surcharge_accruals: Option<Decimal>,
1535
1536 #[serde(
1538 rename = "@cgtWithholdingAccruals",
1539 default,
1540 deserialize_with = "deserialize_optional_decimal"
1541 )]
1542 pub cgt_withholding_accruals: Option<Decimal>,
1543
1544 #[serde(
1546 rename = "@cgtWithholdingAccrualsLong",
1547 default,
1548 deserialize_with = "deserialize_optional_decimal"
1549 )]
1550 pub cgt_withholding_accruals_long: Option<Decimal>,
1551
1552 #[serde(
1554 rename = "@cgtWithholdingAccrualsShort",
1555 default,
1556 deserialize_with = "deserialize_optional_decimal"
1557 )]
1558 pub cgt_withholding_accruals_short: Option<Decimal>,
1559
1560 #[serde(
1562 rename = "@liteSurchargeAccrualsLong",
1563 default,
1564 deserialize_with = "deserialize_optional_decimal"
1565 )]
1566 pub lite_surcharge_accruals_long: Option<Decimal>,
1567
1568 #[serde(
1570 rename = "@liteSurchargeAccrualsShort",
1571 default,
1572 deserialize_with = "deserialize_optional_decimal"
1573 )]
1574 pub lite_surcharge_accruals_short: Option<Decimal>,
1575}
1576
1577#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
1579pub struct CashReportCurrency {
1580 #[serde(
1582 rename = "@accountId",
1583 default,
1584 deserialize_with = "deserialize_optional_string"
1585 )]
1586 pub account_id: Option<String>,
1587
1588 #[serde(rename = "@acctAlias", default)]
1590 pub acct_alias: Option<String>,
1591
1592 #[serde(rename = "@model", default)]
1594 pub model: Option<String>,
1595
1596 #[serde(
1598 rename = "@currency",
1599 default,
1600 deserialize_with = "deserialize_optional_string"
1601 )]
1602 pub currency: Option<String>,
1603
1604 #[serde(
1606 rename = "@fromDate",
1607 default,
1608 deserialize_with = "deserialize_optional_date"
1609 )]
1610 pub from_date: Option<NaiveDate>,
1611
1612 #[serde(
1614 rename = "@toDate",
1615 default,
1616 deserialize_with = "deserialize_optional_date"
1617 )]
1618 pub to_date: Option<NaiveDate>,
1619
1620 #[serde(
1622 rename = "@startingCash",
1623 default,
1624 deserialize_with = "deserialize_optional_decimal"
1625 )]
1626 pub starting_cash: Option<Decimal>,
1627
1628 #[serde(
1630 rename = "@startingCashSec",
1631 default,
1632 deserialize_with = "deserialize_optional_decimal"
1633 )]
1634 pub starting_cash_sec: Option<Decimal>,
1635
1636 #[serde(
1638 rename = "@startingCashCom",
1639 default,
1640 deserialize_with = "deserialize_optional_decimal"
1641 )]
1642 pub starting_cash_com: Option<Decimal>,
1643
1644 #[serde(
1646 rename = "@commissions",
1647 default,
1648 deserialize_with = "deserialize_optional_decimal"
1649 )]
1650 pub commissions: Option<Decimal>,
1651
1652 #[serde(
1654 rename = "@commissionsSec",
1655 default,
1656 deserialize_with = "deserialize_optional_decimal"
1657 )]
1658 pub commissions_sec: Option<Decimal>,
1659
1660 #[serde(
1662 rename = "@commissionsCom",
1663 default,
1664 deserialize_with = "deserialize_optional_decimal"
1665 )]
1666 pub commissions_com: Option<Decimal>,
1667
1668 #[serde(
1670 rename = "@deposits",
1671 default,
1672 deserialize_with = "deserialize_optional_decimal"
1673 )]
1674 pub deposits: Option<Decimal>,
1675
1676 #[serde(
1678 rename = "@withdrawals",
1679 default,
1680 deserialize_with = "deserialize_optional_decimal"
1681 )]
1682 pub withdrawals: Option<Decimal>,
1683
1684 #[serde(
1686 rename = "@dividends",
1687 default,
1688 deserialize_with = "deserialize_optional_decimal"
1689 )]
1690 pub dividends: Option<Decimal>,
1691
1692 #[serde(
1694 rename = "@brokerInterest",
1695 default,
1696 deserialize_with = "deserialize_optional_decimal"
1697 )]
1698 pub broker_interest: Option<Decimal>,
1699
1700 #[serde(
1702 rename = "@bondInterest",
1703 default,
1704 deserialize_with = "deserialize_optional_decimal"
1705 )]
1706 pub bond_interest: Option<Decimal>,
1707
1708 #[serde(
1710 rename = "@withholdingTax",
1711 default,
1712 deserialize_with = "deserialize_optional_decimal"
1713 )]
1714 pub withholding_tax: Option<Decimal>,
1715
1716 #[serde(
1718 rename = "@netTradesSales",
1719 default,
1720 deserialize_with = "deserialize_optional_decimal"
1721 )]
1722 pub net_trades_sales: Option<Decimal>,
1723
1724 #[serde(
1726 rename = "@netTradesPurchases",
1727 default,
1728 deserialize_with = "deserialize_optional_decimal"
1729 )]
1730 pub net_trades_purchases: Option<Decimal>,
1731
1732 #[serde(
1734 rename = "@accountTransfers",
1735 default,
1736 deserialize_with = "deserialize_optional_decimal"
1737 )]
1738 pub account_transfers: Option<Decimal>,
1739
1740 #[serde(
1742 rename = "@internalTransfers",
1743 default,
1744 deserialize_with = "deserialize_optional_decimal"
1745 )]
1746 pub internal_transfers: Option<Decimal>,
1747
1748 #[serde(
1750 rename = "@externalTransfers",
1751 default,
1752 deserialize_with = "deserialize_optional_decimal"
1753 )]
1754 pub external_transfers: Option<Decimal>,
1755
1756 #[serde(
1758 rename = "@linkingAdjustments",
1759 default,
1760 deserialize_with = "deserialize_optional_decimal"
1761 )]
1762 pub linking_adjustments: Option<Decimal>,
1763
1764 #[serde(
1766 rename = "@otherFees",
1767 default,
1768 deserialize_with = "deserialize_optional_decimal"
1769 )]
1770 pub other_fees: Option<Decimal>,
1771
1772 #[serde(
1774 rename = "@fxTranslationPnl",
1775 default,
1776 deserialize_with = "deserialize_optional_decimal"
1777 )]
1778 pub fx_translation_pnl: Option<Decimal>,
1779
1780 #[serde(
1782 rename = "@billableSalesTax",
1783 default,
1784 deserialize_with = "deserialize_optional_decimal"
1785 )]
1786 pub billable_sales_tax: Option<Decimal>,
1787
1788 #[serde(
1790 rename = "@realizedForexPnl",
1791 default,
1792 deserialize_with = "deserialize_optional_decimal"
1793 )]
1794 pub realized_forex_pnl: Option<Decimal>,
1795
1796 #[serde(
1798 rename = "@debitCardActivity",
1799 default,
1800 deserialize_with = "deserialize_optional_decimal"
1801 )]
1802 pub debit_card_activity: Option<Decimal>,
1803
1804 #[serde(
1806 rename = "@clientFees",
1807 default,
1808 deserialize_with = "deserialize_optional_decimal"
1809 )]
1810 pub client_fees: Option<Decimal>,
1811
1812 #[serde(
1814 rename = "@cashSettlingMtm",
1815 default,
1816 deserialize_with = "deserialize_optional_decimal"
1817 )]
1818 pub cash_settling_mtm: Option<Decimal>,
1819
1820 #[serde(
1822 rename = "@softDollars",
1823 default,
1824 deserialize_with = "deserialize_optional_decimal"
1825 )]
1826 pub soft_dollars: Option<Decimal>,
1827
1828 #[serde(
1830 rename = "@endingCash",
1831 default,
1832 deserialize_with = "deserialize_optional_decimal"
1833 )]
1834 pub ending_cash: Option<Decimal>,
1835
1836 #[serde(
1838 rename = "@endingCashSec",
1839 default,
1840 deserialize_with = "deserialize_optional_decimal"
1841 )]
1842 pub ending_cash_sec: Option<Decimal>,
1843
1844 #[serde(
1846 rename = "@endingCashCom",
1847 default,
1848 deserialize_with = "deserialize_optional_decimal"
1849 )]
1850 pub ending_cash_com: Option<Decimal>,
1851
1852 #[serde(
1854 rename = "@endingSettledCash",
1855 default,
1856 deserialize_with = "deserialize_optional_decimal"
1857 )]
1858 pub ending_settled_cash: Option<Decimal>,
1859
1860 #[serde(
1862 rename = "@endingSettledCashSec",
1863 default,
1864 deserialize_with = "deserialize_optional_decimal"
1865 )]
1866 pub ending_settled_cash_sec: Option<Decimal>,
1867
1868 #[serde(
1870 rename = "@endingSettledCashCom",
1871 default,
1872 deserialize_with = "deserialize_optional_decimal"
1873 )]
1874 pub ending_settled_cash_com: Option<Decimal>,
1875
1876 #[serde(
1878 rename = "@startingCashPaxos",
1879 default,
1880 deserialize_with = "deserialize_optional_decimal"
1881 )]
1882 pub starting_cash_paxos: Option<Decimal>,
1883
1884 #[serde(
1886 rename = "@clientFeesSec",
1887 default,
1888 deserialize_with = "deserialize_optional_decimal"
1889 )]
1890 pub client_fees_sec: Option<Decimal>,
1891
1892 #[serde(
1894 rename = "@clientFeesCom",
1895 default,
1896 deserialize_with = "deserialize_optional_decimal"
1897 )]
1898 pub client_fees_com: Option<Decimal>,
1899
1900 #[serde(
1902 rename = "@billableCommissions",
1903 default,
1904 deserialize_with = "deserialize_optional_decimal"
1905 )]
1906 pub billable_commissions: Option<Decimal>,
1907
1908 #[serde(
1910 rename = "@billableCommissionsSec",
1911 default,
1912 deserialize_with = "deserialize_optional_decimal"
1913 )]
1914 pub billable_commissions_sec: Option<Decimal>,
1915
1916 #[serde(
1918 rename = "@billableCommissionsCom",
1919 default,
1920 deserialize_with = "deserialize_optional_decimal"
1921 )]
1922 pub billable_commissions_com: Option<Decimal>,
1923
1924 #[serde(
1926 rename = "@billableSalesTaxIBUKL",
1927 default,
1928 deserialize_with = "deserialize_optional_decimal"
1929 )]
1930 pub billable_sales_tax_ibukl: Option<Decimal>,
1931
1932 #[serde(
1934 rename = "@depositWithdrawals",
1935 default,
1936 deserialize_with = "deserialize_optional_decimal"
1937 )]
1938 pub deposit_withdrawals: Option<Decimal>,
1939
1940 #[serde(
1942 rename = "@depositWithdrawalsSec",
1943 default,
1944 deserialize_with = "deserialize_optional_decimal"
1945 )]
1946 pub deposit_withdrawals_sec: Option<Decimal>,
1947
1948 #[serde(
1950 rename = "@depositWithdrawalsCom",
1951 default,
1952 deserialize_with = "deserialize_optional_decimal"
1953 )]
1954 pub deposit_withdrawals_com: Option<Decimal>,
1955
1956 #[serde(
1958 rename = "@depositsSec",
1959 default,
1960 deserialize_with = "deserialize_optional_decimal"
1961 )]
1962 pub deposits_sec: Option<Decimal>,
1963
1964 #[serde(
1966 rename = "@depositsCom",
1967 default,
1968 deserialize_with = "deserialize_optional_decimal"
1969 )]
1970 pub deposits_com: Option<Decimal>,
1971
1972 #[serde(
1974 rename = "@withdrawalsSec",
1975 default,
1976 deserialize_with = "deserialize_optional_decimal"
1977 )]
1978 pub withdrawals_sec: Option<Decimal>,
1979
1980 #[serde(
1982 rename = "@withdrawalsCom",
1983 default,
1984 deserialize_with = "deserialize_optional_decimal"
1985 )]
1986 pub withdrawals_com: Option<Decimal>,
1987
1988 #[serde(
1990 rename = "@accountTransfersSec",
1991 default,
1992 deserialize_with = "deserialize_optional_decimal"
1993 )]
1994 pub account_transfers_sec: Option<Decimal>,
1995
1996 #[serde(
1998 rename = "@accountTransfersCom",
1999 default,
2000 deserialize_with = "deserialize_optional_decimal"
2001 )]
2002 pub account_transfers_com: Option<Decimal>,
2003
2004 #[serde(
2006 rename = "@internalTransfersSec",
2007 default,
2008 deserialize_with = "deserialize_optional_decimal"
2009 )]
2010 pub internal_transfers_sec: Option<Decimal>,
2011
2012 #[serde(
2014 rename = "@internalTransfersCom",
2015 default,
2016 deserialize_with = "deserialize_optional_decimal"
2017 )]
2018 pub internal_transfers_com: Option<Decimal>,
2019
2020 #[serde(
2022 rename = "@dividendsSec",
2023 default,
2024 deserialize_with = "deserialize_optional_decimal"
2025 )]
2026 pub dividends_sec: Option<Decimal>,
2027
2028 #[serde(
2030 rename = "@dividendsCom",
2031 default,
2032 deserialize_with = "deserialize_optional_decimal"
2033 )]
2034 pub dividends_com: Option<Decimal>,
2035
2036 #[serde(
2038 rename = "@brokerFees",
2039 default,
2040 deserialize_with = "deserialize_optional_decimal"
2041 )]
2042 pub broker_fees: Option<Decimal>,
2043
2044 #[serde(
2046 rename = "@brokerFeesSec",
2047 default,
2048 deserialize_with = "deserialize_optional_decimal"
2049 )]
2050 pub broker_fees_sec: Option<Decimal>,
2051
2052 #[serde(
2054 rename = "@brokerFeesCom",
2055 default,
2056 deserialize_with = "deserialize_optional_decimal"
2057 )]
2058 pub broker_fees_com: Option<Decimal>,
2059
2060 #[serde(
2062 rename = "@brokerFeesMTD",
2063 default,
2064 deserialize_with = "deserialize_optional_decimal"
2065 )]
2066 pub broker_fees_mtd: Option<Decimal>,
2067
2068 #[serde(
2070 rename = "@brokerFeesYTD",
2071 default,
2072 deserialize_with = "deserialize_optional_decimal"
2073 )]
2074 pub broker_fees_ytd: Option<Decimal>,
2075
2076 #[serde(
2078 rename = "@brokerFeesPaxos",
2079 default,
2080 deserialize_with = "deserialize_optional_decimal"
2081 )]
2082 pub broker_fees_paxos: Option<Decimal>,
2083
2084 #[serde(
2086 rename = "@brokerInterestSec",
2087 default,
2088 deserialize_with = "deserialize_optional_decimal"
2089 )]
2090 pub broker_interest_sec: Option<Decimal>,
2091
2092 #[serde(
2094 rename = "@brokerInterestCom",
2095 default,
2096 deserialize_with = "deserialize_optional_decimal"
2097 )]
2098 pub broker_interest_com: Option<Decimal>,
2099
2100 #[serde(
2102 rename = "@bondInterestSec",
2103 default,
2104 deserialize_with = "deserialize_optional_decimal"
2105 )]
2106 pub bond_interest_sec: Option<Decimal>,
2107
2108 #[serde(
2110 rename = "@bondInterestCom",
2111 default,
2112 deserialize_with = "deserialize_optional_decimal"
2113 )]
2114 pub bond_interest_com: Option<Decimal>,
2115
2116 #[serde(
2118 rename = "@bondInterestPaxos",
2119 default,
2120 deserialize_with = "deserialize_optional_decimal"
2121 )]
2122 pub bond_interest_paxos: Option<Decimal>,
2123
2124 #[serde(
2126 rename = "@cashSettlingMtmSec",
2127 default,
2128 deserialize_with = "deserialize_optional_decimal"
2129 )]
2130 pub cash_settling_mtm_sec: Option<Decimal>,
2131
2132 #[serde(
2134 rename = "@cashSettlingMtmCom",
2135 default,
2136 deserialize_with = "deserialize_optional_decimal"
2137 )]
2138 pub cash_settling_mtm_com: Option<Decimal>,
2139
2140 #[serde(
2142 rename = "@cfdCharges",
2143 default,
2144 deserialize_with = "deserialize_optional_decimal"
2145 )]
2146 pub cfd_charges: Option<Decimal>,
2147
2148 #[serde(
2150 rename = "@cfdChargesSec",
2151 default,
2152 deserialize_with = "deserialize_optional_decimal"
2153 )]
2154 pub cfd_charges_sec: Option<Decimal>,
2155
2156 #[serde(
2158 rename = "@cfdChargesCom",
2159 default,
2160 deserialize_with = "deserialize_optional_decimal"
2161 )]
2162 pub cfd_charges_com: Option<Decimal>,
2163
2164 #[serde(
2166 rename = "@netTradesSalesSec",
2167 default,
2168 deserialize_with = "deserialize_optional_decimal"
2169 )]
2170 pub net_trades_sales_sec: Option<Decimal>,
2171
2172 #[serde(
2174 rename = "@netTradesSalesCom",
2175 default,
2176 deserialize_with = "deserialize_optional_decimal"
2177 )]
2178 pub net_trades_sales_com: Option<Decimal>,
2179
2180 #[serde(
2182 rename = "@netTradesPurchasesSec",
2183 default,
2184 deserialize_with = "deserialize_optional_decimal"
2185 )]
2186 pub net_trades_purchases_sec: Option<Decimal>,
2187
2188 #[serde(
2190 rename = "@netTradesPurchasesCom",
2191 default,
2192 deserialize_with = "deserialize_optional_decimal"
2193 )]
2194 pub net_trades_purchases_com: Option<Decimal>,
2195
2196 #[serde(
2198 rename = "@feesReceivables",
2199 default,
2200 deserialize_with = "deserialize_optional_decimal"
2201 )]
2202 pub fees_receivables: Option<Decimal>,
2203
2204 #[serde(
2206 rename = "@feesReceivablesSec",
2207 default,
2208 deserialize_with = "deserialize_optional_decimal"
2209 )]
2210 pub fees_receivables_sec: Option<Decimal>,
2211
2212 #[serde(
2214 rename = "@feesReceivablesCom",
2215 default,
2216 deserialize_with = "deserialize_optional_decimal"
2217 )]
2218 pub fees_receivables_com: Option<Decimal>,
2219
2220 #[serde(
2222 rename = "@paymentInLieu",
2223 default,
2224 deserialize_with = "deserialize_optional_decimal"
2225 )]
2226 pub payment_in_lieu: Option<Decimal>,
2227
2228 #[serde(
2230 rename = "@paymentInLieuSec",
2231 default,
2232 deserialize_with = "deserialize_optional_decimal"
2233 )]
2234 pub payment_in_lieu_sec: Option<Decimal>,
2235
2236 #[serde(
2238 rename = "@paymentInLieuCom",
2239 default,
2240 deserialize_with = "deserialize_optional_decimal"
2241 )]
2242 pub payment_in_lieu_com: Option<Decimal>,
2243
2244 #[serde(
2246 rename = "@paymentInLieuIBUKL",
2247 default,
2248 deserialize_with = "deserialize_optional_decimal"
2249 )]
2250 pub payment_in_lieu_ibukl: Option<Decimal>,
2251
2252 #[serde(
2254 rename = "@transactionTax",
2255 default,
2256 deserialize_with = "deserialize_optional_decimal"
2257 )]
2258 pub transaction_tax: Option<Decimal>,
2259
2260 #[serde(
2262 rename = "@transactionTaxSec",
2263 default,
2264 deserialize_with = "deserialize_optional_decimal"
2265 )]
2266 pub transaction_tax_sec: Option<Decimal>,
2267
2268 #[serde(
2270 rename = "@transactionTaxCom",
2271 default,
2272 deserialize_with = "deserialize_optional_decimal"
2273 )]
2274 pub transaction_tax_com: Option<Decimal>,
2275
2276 #[serde(
2278 rename = "@withholdingTaxSec",
2279 default,
2280 deserialize_with = "deserialize_optional_decimal"
2281 )]
2282 pub withholding_tax_sec: Option<Decimal>,
2283
2284 #[serde(
2286 rename = "@withholdingTaxCom",
2287 default,
2288 deserialize_with = "deserialize_optional_decimal"
2289 )]
2290 pub withholding_tax_com: Option<Decimal>,
2291
2292 #[serde(
2294 rename = "@fxTranslationGainLoss",
2295 default,
2296 deserialize_with = "deserialize_optional_decimal"
2297 )]
2298 pub fx_translation_gain_loss: Option<Decimal>,
2299
2300 #[serde(
2302 rename = "@fxTranslationGainLossSec",
2303 default,
2304 deserialize_with = "deserialize_optional_decimal"
2305 )]
2306 pub fx_translation_gain_loss_sec: Option<Decimal>,
2307
2308 #[serde(
2310 rename = "@fxTranslationGainLossCom",
2311 default,
2312 deserialize_with = "deserialize_optional_decimal"
2313 )]
2314 pub fx_translation_gain_loss_com: Option<Decimal>,
2315
2316 #[serde(
2318 rename = "@fxTranslationGainLossPaxos",
2319 default,
2320 deserialize_with = "deserialize_optional_decimal"
2321 )]
2322 pub fx_translation_gain_loss_paxos: Option<Decimal>,
2323
2324 #[serde(
2326 rename = "@otherFeesSec",
2327 default,
2328 deserialize_with = "deserialize_optional_decimal"
2329 )]
2330 pub other_fees_sec: Option<Decimal>,
2331
2332 #[serde(
2334 rename = "@otherFeesCom",
2335 default,
2336 deserialize_with = "deserialize_optional_decimal"
2337 )]
2338 pub other_fees_com: Option<Decimal>,
2339
2340 #[serde(
2342 rename = "@endingCashPaxos",
2343 default,
2344 deserialize_with = "deserialize_optional_decimal"
2345 )]
2346 pub ending_cash_paxos: Option<Decimal>,
2347
2348 #[serde(
2350 rename = "@endingSettledCashPaxos",
2351 default,
2352 deserialize_with = "deserialize_optional_decimal"
2353 )]
2354 pub ending_settled_cash_paxos: Option<Decimal>,
2355
2356 #[serde(
2358 rename = "@endingCashIBUKL",
2359 default,
2360 deserialize_with = "deserialize_optional_decimal"
2361 )]
2362 pub ending_cash_ibukl: Option<Decimal>,
2363
2364 #[serde(
2366 rename = "@clientFeesMTD",
2367 default,
2368 deserialize_with = "deserialize_optional_decimal"
2369 )]
2370 pub client_fees_mtd: Option<Decimal>,
2371
2372 #[serde(
2374 rename = "@clientFeesYTD",
2375 default,
2376 deserialize_with = "deserialize_optional_decimal"
2377 )]
2378 pub client_fees_ytd: Option<Decimal>,
2379
2380 #[serde(
2382 rename = "@clientFeesPaxos",
2383 default,
2384 deserialize_with = "deserialize_optional_decimal"
2385 )]
2386 pub client_fees_paxos: Option<Decimal>,
2387
2388 #[serde(
2390 rename = "@commissionsMTD",
2391 default,
2392 deserialize_with = "deserialize_optional_decimal"
2393 )]
2394 pub commissions_mtd: Option<Decimal>,
2395
2396 #[serde(
2398 rename = "@commissionsYTD",
2399 default,
2400 deserialize_with = "deserialize_optional_decimal"
2401 )]
2402 pub commissions_ytd: Option<Decimal>,
2403
2404 #[serde(
2406 rename = "@commissionsPaxos",
2407 default,
2408 deserialize_with = "deserialize_optional_decimal"
2409 )]
2410 pub commissions_paxos: Option<Decimal>,
2411
2412 #[serde(
2414 rename = "@billableCommissionsMTD",
2415 default,
2416 deserialize_with = "deserialize_optional_decimal"
2417 )]
2418 pub billable_commissions_mtd: Option<Decimal>,
2419
2420 #[serde(
2422 rename = "@billableCommissionsYTD",
2423 default,
2424 deserialize_with = "deserialize_optional_decimal"
2425 )]
2426 pub billable_commissions_ytd: Option<Decimal>,
2427
2428 #[serde(
2430 rename = "@billableCommissionsPaxos",
2431 default,
2432 deserialize_with = "deserialize_optional_decimal"
2433 )]
2434 pub billable_commissions_paxos: Option<Decimal>,
2435
2436 #[serde(
2438 rename = "@depositWithdrawalsMTD",
2439 default,
2440 deserialize_with = "deserialize_optional_decimal"
2441 )]
2442 pub deposit_withdrawals_mtd: Option<Decimal>,
2443
2444 #[serde(
2446 rename = "@depositWithdrawalsYTD",
2447 default,
2448 deserialize_with = "deserialize_optional_decimal"
2449 )]
2450 pub deposit_withdrawals_ytd: Option<Decimal>,
2451
2452 #[serde(
2454 rename = "@depositWithdrawalsPaxos",
2455 default,
2456 deserialize_with = "deserialize_optional_decimal"
2457 )]
2458 pub deposit_withdrawals_paxos: Option<Decimal>,
2459
2460 #[serde(
2462 rename = "@depositsMTD",
2463 default,
2464 deserialize_with = "deserialize_optional_decimal"
2465 )]
2466 pub deposits_mtd: Option<Decimal>,
2467
2468 #[serde(
2470 rename = "@depositsYTD",
2471 default,
2472 deserialize_with = "deserialize_optional_decimal"
2473 )]
2474 pub deposits_ytd: Option<Decimal>,
2475
2476 #[serde(
2478 rename = "@depositsPaxos",
2479 default,
2480 deserialize_with = "deserialize_optional_decimal"
2481 )]
2482 pub deposits_paxos: Option<Decimal>,
2483
2484 #[serde(
2486 rename = "@withdrawalsMTD",
2487 default,
2488 deserialize_with = "deserialize_optional_decimal"
2489 )]
2490 pub withdrawals_mtd: Option<Decimal>,
2491
2492 #[serde(
2494 rename = "@withdrawalsYTD",
2495 default,
2496 deserialize_with = "deserialize_optional_decimal"
2497 )]
2498 pub withdrawals_ytd: Option<Decimal>,
2499
2500 #[serde(
2502 rename = "@withdrawalsPaxos",
2503 default,
2504 deserialize_with = "deserialize_optional_decimal"
2505 )]
2506 pub withdrawals_paxos: Option<Decimal>,
2507
2508 #[serde(
2510 rename = "@accountTransfersMTD",
2511 default,
2512 deserialize_with = "deserialize_optional_decimal"
2513 )]
2514 pub account_transfers_mtd: Option<Decimal>,
2515
2516 #[serde(
2518 rename = "@accountTransfersYTD",
2519 default,
2520 deserialize_with = "deserialize_optional_decimal"
2521 )]
2522 pub account_transfers_ytd: Option<Decimal>,
2523
2524 #[serde(
2526 rename = "@accountTransfersPaxos",
2527 default,
2528 deserialize_with = "deserialize_optional_decimal"
2529 )]
2530 pub account_transfers_paxos: Option<Decimal>,
2531
2532 #[serde(
2534 rename = "@internalTransfersMTD",
2535 default,
2536 deserialize_with = "deserialize_optional_decimal"
2537 )]
2538 pub internal_transfers_mtd: Option<Decimal>,
2539
2540 #[serde(
2542 rename = "@internalTransfersYTD",
2543 default,
2544 deserialize_with = "deserialize_optional_decimal"
2545 )]
2546 pub internal_transfers_ytd: Option<Decimal>,
2547
2548 #[serde(
2550 rename = "@internalTransfersPaxos",
2551 default,
2552 deserialize_with = "deserialize_optional_decimal"
2553 )]
2554 pub internal_transfers_paxos: Option<Decimal>,
2555
2556 #[serde(
2558 rename = "@paxosTransfersPaxos",
2559 default,
2560 deserialize_with = "deserialize_optional_decimal"
2561 )]
2562 pub paxos_transfers_paxos: Option<Decimal>,
2563
2564 #[serde(
2566 rename = "@excessFundSweep",
2567 default,
2568 deserialize_with = "deserialize_optional_decimal"
2569 )]
2570 pub excess_fund_sweep: Option<Decimal>,
2571
2572 #[serde(
2574 rename = "@excessFundSweepSec",
2575 default,
2576 deserialize_with = "deserialize_optional_decimal"
2577 )]
2578 pub excess_fund_sweep_sec: Option<Decimal>,
2579
2580 #[serde(
2582 rename = "@excessFundSweepCom",
2583 default,
2584 deserialize_with = "deserialize_optional_decimal"
2585 )]
2586 pub excess_fund_sweep_com: Option<Decimal>,
2587
2588 #[serde(
2590 rename = "@excessFundSweepMTD",
2591 default,
2592 deserialize_with = "deserialize_optional_decimal"
2593 )]
2594 pub excess_fund_sweep_mtd: Option<Decimal>,
2595
2596 #[serde(
2598 rename = "@excessFundSweepYTD",
2599 default,
2600 deserialize_with = "deserialize_optional_decimal"
2601 )]
2602 pub excess_fund_sweep_ytd: Option<Decimal>,
2603
2604 #[serde(
2606 rename = "@excessFundSweepPaxos",
2607 default,
2608 deserialize_with = "deserialize_optional_decimal"
2609 )]
2610 pub excess_fund_sweep_paxos: Option<Decimal>,
2611
2612 #[serde(
2614 rename = "@dividendsMTD",
2615 default,
2616 deserialize_with = "deserialize_optional_decimal"
2617 )]
2618 pub dividends_mtd: Option<Decimal>,
2619
2620 #[serde(
2622 rename = "@dividendsYTD",
2623 default,
2624 deserialize_with = "deserialize_optional_decimal"
2625 )]
2626 pub dividends_ytd: Option<Decimal>,
2627
2628 #[serde(
2630 rename = "@dividendsPaxos",
2631 default,
2632 deserialize_with = "deserialize_optional_decimal"
2633 )]
2634 pub dividends_paxos: Option<Decimal>,
2635
2636 #[serde(
2638 rename = "@insuredDepositInterestMTD",
2639 default,
2640 deserialize_with = "deserialize_optional_decimal"
2641 )]
2642 pub insured_deposit_interest_mtd: Option<Decimal>,
2643
2644 #[serde(
2646 rename = "@insuredDepositInterestYTD",
2647 default,
2648 deserialize_with = "deserialize_optional_decimal"
2649 )]
2650 pub insured_deposit_interest_ytd: Option<Decimal>,
2651
2652 #[serde(
2654 rename = "@insuredDepositInteresPaxos",
2655 default,
2656 deserialize_with = "deserialize_optional_decimal"
2657 )]
2658 pub insured_deposit_interes_paxos: Option<Decimal>,
2659
2660 #[serde(
2662 rename = "@brokerInterestMTD",
2663 default,
2664 deserialize_with = "deserialize_optional_decimal"
2665 )]
2666 pub broker_interest_mtd: Option<Decimal>,
2667
2668 #[serde(
2670 rename = "@brokerInterestYTD",
2671 default,
2672 deserialize_with = "deserialize_optional_decimal"
2673 )]
2674 pub broker_interest_ytd: Option<Decimal>,
2675
2676 #[serde(
2678 rename = "@brokerInterestPaxos",
2679 default,
2680 deserialize_with = "deserialize_optional_decimal"
2681 )]
2682 pub broker_interest_paxos: Option<Decimal>,
2683
2684 #[serde(
2686 rename = "@bondInterestMTD",
2687 default,
2688 deserialize_with = "deserialize_optional_decimal"
2689 )]
2690 pub bond_interest_mtd: Option<Decimal>,
2691
2692 #[serde(
2694 rename = "@bondInterestYTD",
2695 default,
2696 deserialize_with = "deserialize_optional_decimal"
2697 )]
2698 pub bond_interest_ytd: Option<Decimal>,
2699
2700 #[serde(
2702 rename = "@cashSettlingMtmMTD",
2703 default,
2704 deserialize_with = "deserialize_optional_decimal"
2705 )]
2706 pub cash_settling_mtm_mtd: Option<Decimal>,
2707
2708 #[serde(
2710 rename = "@cashSettlingMtmYTD",
2711 default,
2712 deserialize_with = "deserialize_optional_decimal"
2713 )]
2714 pub cash_settling_mtm_ytd: Option<Decimal>,
2715
2716 #[serde(
2718 rename = "@cashSettlingMtmPaxos",
2719 default,
2720 deserialize_with = "deserialize_optional_decimal"
2721 )]
2722 pub cash_settling_mtm_paxos: Option<Decimal>,
2723
2724 #[serde(
2726 rename = "@realizedVmMTD",
2727 default,
2728 deserialize_with = "deserialize_optional_decimal"
2729 )]
2730 pub realized_vm_mtd: Option<Decimal>,
2731
2732 #[serde(
2734 rename = "@realizedVmYTD",
2735 default,
2736 deserialize_with = "deserialize_optional_decimal"
2737 )]
2738 pub realized_vm_ytd: Option<Decimal>,
2739
2740 #[serde(
2742 rename = "@realizedVmPaxos",
2743 default,
2744 deserialize_with = "deserialize_optional_decimal"
2745 )]
2746 pub realized_vm_paxos: Option<Decimal>,
2747
2748 #[serde(
2750 rename = "@cfdChargesMTD",
2751 default,
2752 deserialize_with = "deserialize_optional_decimal"
2753 )]
2754 pub cfd_charges_mtd: Option<Decimal>,
2755
2756 #[serde(
2758 rename = "@cfdChargesYTD",
2759 default,
2760 deserialize_with = "deserialize_optional_decimal"
2761 )]
2762 pub cfd_charges_ytd: Option<Decimal>,
2763
2764 #[serde(
2766 rename = "@cfdChargesPaxos",
2767 default,
2768 deserialize_with = "deserialize_optional_decimal"
2769 )]
2770 pub cfd_charges_paxos: Option<Decimal>,
2771
2772 #[serde(
2774 rename = "@netTradesSalesMTD",
2775 default,
2776 deserialize_with = "deserialize_optional_decimal"
2777 )]
2778 pub net_trades_sales_mtd: Option<Decimal>,
2779
2780 #[serde(
2782 rename = "@netTradesSalesYTD",
2783 default,
2784 deserialize_with = "deserialize_optional_decimal"
2785 )]
2786 pub net_trades_sales_ytd: Option<Decimal>,
2787
2788 #[serde(
2790 rename = "@netTradesSalesPaxos",
2791 default,
2792 deserialize_with = "deserialize_optional_decimal"
2793 )]
2794 pub net_trades_sales_paxos: Option<Decimal>,
2795
2796 #[serde(
2798 rename = "@advisorFeesMTD",
2799 default,
2800 deserialize_with = "deserialize_optional_decimal"
2801 )]
2802 pub advisor_fees_mtd: Option<Decimal>,
2803
2804 #[serde(
2806 rename = "@advisorFeesYTD",
2807 default,
2808 deserialize_with = "deserialize_optional_decimal"
2809 )]
2810 pub advisor_fees_ytd: Option<Decimal>,
2811
2812 #[serde(
2814 rename = "@advisorFeePaxos",
2815 default,
2816 deserialize_with = "deserialize_optional_decimal"
2817 )]
2818 pub advisor_fee_paxos: Option<Decimal>,
2819
2820 #[serde(
2822 rename = "@feesReceivablesMTD",
2823 default,
2824 deserialize_with = "deserialize_optional_decimal"
2825 )]
2826 pub fees_receivables_mtd: Option<Decimal>,
2827
2828 #[serde(
2830 rename = "@feesReceivablesYTD",
2831 default,
2832 deserialize_with = "deserialize_optional_decimal"
2833 )]
2834 pub fees_receivables_ytd: Option<Decimal>,
2835
2836 #[serde(
2838 rename = "@feesReceivablesPaxos",
2839 default,
2840 deserialize_with = "deserialize_optional_decimal"
2841 )]
2842 pub fees_receivables_paxos: Option<Decimal>,
2843
2844 #[serde(
2846 rename = "@netTradesPurchasesMTD",
2847 default,
2848 deserialize_with = "deserialize_optional_decimal"
2849 )]
2850 pub net_trades_purchases_mtd: Option<Decimal>,
2851
2852 #[serde(
2854 rename = "@netTradesPurchasesYTD",
2855 default,
2856 deserialize_with = "deserialize_optional_decimal"
2857 )]
2858 pub net_trades_purchases_ytd: Option<Decimal>,
2859
2860 #[serde(
2862 rename = "@netTradesPurchasesPaxos",
2863 default,
2864 deserialize_with = "deserialize_optional_decimal"
2865 )]
2866 pub net_trades_purchases_paxos: Option<Decimal>,
2867
2868 #[serde(
2870 rename = "@paymentInLieuMTD",
2871 default,
2872 deserialize_with = "deserialize_optional_decimal"
2873 )]
2874 pub payment_in_lieu_mtd: Option<Decimal>,
2875
2876 #[serde(
2878 rename = "@paymentInLieuYTD",
2879 default,
2880 deserialize_with = "deserialize_optional_decimal"
2881 )]
2882 pub payment_in_lieu_ytd: Option<Decimal>,
2883
2884 #[serde(
2886 rename = "@paymentInLieuPaxos",
2887 default,
2888 deserialize_with = "deserialize_optional_decimal"
2889 )]
2890 pub payment_in_lieu_paxos: Option<Decimal>,
2891
2892 #[serde(
2894 rename = "@transactionTaxMTD",
2895 default,
2896 deserialize_with = "deserialize_optional_decimal"
2897 )]
2898 pub transaction_tax_mtd: Option<Decimal>,
2899
2900 #[serde(
2902 rename = "@transactionTaxYTD",
2903 default,
2904 deserialize_with = "deserialize_optional_decimal"
2905 )]
2906 pub transaction_tax_ytd: Option<Decimal>,
2907
2908 #[serde(
2910 rename = "@transactionTaxPaxos",
2911 default,
2912 deserialize_with = "deserialize_optional_decimal"
2913 )]
2914 pub transaction_tax_paxos: Option<Decimal>,
2915
2916 #[serde(
2918 rename = "@taxReceivablesMTD",
2919 default,
2920 deserialize_with = "deserialize_optional_decimal"
2921 )]
2922 pub tax_receivables_mtd: Option<Decimal>,
2923
2924 #[serde(
2926 rename = "@taxReceivablesYTD",
2927 default,
2928 deserialize_with = "deserialize_optional_decimal"
2929 )]
2930 pub tax_receivables_ytd: Option<Decimal>,
2931
2932 #[serde(
2934 rename = "@taxReceivablesPaxos",
2935 default,
2936 deserialize_with = "deserialize_optional_decimal"
2937 )]
2938 pub tax_receivables_paxos: Option<Decimal>,
2939
2940 #[serde(
2942 rename = "@withholdingTaxMTD",
2943 default,
2944 deserialize_with = "deserialize_optional_decimal"
2945 )]
2946 pub withholding_tax_mtd: Option<Decimal>,
2947
2948 #[serde(
2950 rename = "@withholdingTaxYTD",
2951 default,
2952 deserialize_with = "deserialize_optional_decimal"
2953 )]
2954 pub withholding_tax_ytd: Option<Decimal>,
2955
2956 #[serde(
2958 rename = "@withholdingTaxPaxos",
2959 default,
2960 deserialize_with = "deserialize_optional_decimal"
2961 )]
2962 pub withholding_tax_paxos: Option<Decimal>,
2963
2964 #[serde(
2966 rename = "@withholding871mMTD",
2967 default,
2968 deserialize_with = "deserialize_optional_decimal"
2969 )]
2970 pub withholding871m_mtd: Option<Decimal>,
2971
2972 #[serde(
2974 rename = "@withholding871mYTD",
2975 default,
2976 deserialize_with = "deserialize_optional_decimal"
2977 )]
2978 pub withholding871m_ytd: Option<Decimal>,
2979
2980 #[serde(
2982 rename = "@withholding871mPaxos",
2983 default,
2984 deserialize_with = "deserialize_optional_decimal"
2985 )]
2986 pub withholding871m_paxos: Option<Decimal>,
2987
2988 #[serde(
2990 rename = "@withholdingCollectedTaxMTD",
2991 default,
2992 deserialize_with = "deserialize_optional_decimal"
2993 )]
2994 pub withholding_collected_tax_mtd: Option<Decimal>,
2995
2996 #[serde(
2998 rename = "@withholdingCollectedTaxYTD",
2999 default,
3000 deserialize_with = "deserialize_optional_decimal"
3001 )]
3002 pub withholding_collected_tax_ytd: Option<Decimal>,
3003
3004 #[serde(
3006 rename = "@withholdingCollectedTaxPaxos",
3007 default,
3008 deserialize_with = "deserialize_optional_decimal"
3009 )]
3010 pub withholding_collected_tax_paxos: Option<Decimal>,
3011
3012 #[serde(
3014 rename = "@salesTaxMTD",
3015 default,
3016 deserialize_with = "deserialize_optional_decimal"
3017 )]
3018 pub sales_tax_mtd: Option<Decimal>,
3019
3020 #[serde(
3022 rename = "@salesTaxYTD",
3023 default,
3024 deserialize_with = "deserialize_optional_decimal"
3025 )]
3026 pub sales_tax_ytd: Option<Decimal>,
3027
3028 #[serde(
3030 rename = "@salesTaxPaxos",
3031 default,
3032 deserialize_with = "deserialize_optional_decimal"
3033 )]
3034 pub sales_tax_paxos: Option<Decimal>,
3035
3036 #[serde(
3038 rename = "@otherIncome",
3039 default,
3040 deserialize_with = "deserialize_optional_decimal"
3041 )]
3042 pub other_income: Option<Decimal>,
3043
3044 #[serde(
3046 rename = "@otherIncomeMTD",
3047 default,
3048 deserialize_with = "deserialize_optional_decimal"
3049 )]
3050 pub other_income_mtd: Option<Decimal>,
3051
3052 #[serde(
3054 rename = "@otherIncomeYTD",
3055 default,
3056 deserialize_with = "deserialize_optional_decimal"
3057 )]
3058 pub other_income_ytd: Option<Decimal>,
3059
3060 #[serde(
3062 rename = "@otherIncomeSec",
3063 default,
3064 deserialize_with = "deserialize_optional_decimal"
3065 )]
3066 pub other_income_sec: Option<Decimal>,
3067
3068 #[serde(
3070 rename = "@otherIncomeCom",
3071 default,
3072 deserialize_with = "deserialize_optional_decimal"
3073 )]
3074 pub other_income_com: Option<Decimal>,
3075
3076 #[serde(
3078 rename = "@otherFeesMTD",
3079 default,
3080 deserialize_with = "deserialize_optional_decimal"
3081 )]
3082 pub other_fees_mtd: Option<Decimal>,
3083
3084 #[serde(
3086 rename = "@otherFeesYTD",
3087 default,
3088 deserialize_with = "deserialize_optional_decimal"
3089 )]
3090 pub other_fees_ytd: Option<Decimal>,
3091
3092 #[serde(
3094 rename = "@otherFeesPaxos",
3095 default,
3096 deserialize_with = "deserialize_optional_decimal"
3097 )]
3098 pub other_fees_paxos: Option<Decimal>,
3099
3100 #[serde(
3102 rename = "@avgCreditBalance",
3103 default,
3104 deserialize_with = "deserialize_optional_decimal"
3105 )]
3106 pub avg_credit_balance: Option<Decimal>,
3107
3108 #[serde(
3110 rename = "@avgCreditBalanceSec",
3111 default,
3112 deserialize_with = "deserialize_optional_decimal"
3113 )]
3114 pub avg_credit_balance_sec: Option<Decimal>,
3115
3116 #[serde(
3118 rename = "@avgCreditBalanceCom",
3119 default,
3120 deserialize_with = "deserialize_optional_decimal"
3121 )]
3122 pub avg_credit_balance_com: Option<Decimal>,
3123
3124 #[serde(
3126 rename = "@avgDebitBalance",
3127 default,
3128 deserialize_with = "deserialize_optional_decimal"
3129 )]
3130 pub avg_debit_balance: Option<Decimal>,
3131
3132 #[serde(
3134 rename = "@avgDebitBalanceSec",
3135 default,
3136 deserialize_with = "deserialize_optional_decimal"
3137 )]
3138 pub avg_debit_balance_sec: Option<Decimal>,
3139
3140 #[serde(
3142 rename = "@avgDebitBalanceCom",
3143 default,
3144 deserialize_with = "deserialize_optional_decimal"
3145 )]
3146 pub avg_debit_balance_com: Option<Decimal>,
3147
3148 #[serde(
3150 rename = "@linkingAdjustmentsSec",
3151 default,
3152 deserialize_with = "deserialize_optional_decimal"
3153 )]
3154 pub linking_adjustments_sec: Option<Decimal>,
3155
3156 #[serde(
3158 rename = "@linkingAdjustmentsCom",
3159 default,
3160 deserialize_with = "deserialize_optional_decimal"
3161 )]
3162 pub linking_adjustments_com: Option<Decimal>,
3163
3164 #[serde(
3166 rename = "@linkingAdjustmentsPaxos",
3167 default,
3168 deserialize_with = "deserialize_optional_decimal"
3169 )]
3170 pub linking_adjustments_paxos: Option<Decimal>,
3171
3172 #[serde(
3174 rename = "@insuredDepositInterest",
3175 default,
3176 deserialize_with = "deserialize_optional_decimal"
3177 )]
3178 pub insured_deposit_interest: Option<Decimal>,
3179
3180 #[serde(
3182 rename = "@insuredDepositInterestSec",
3183 default,
3184 deserialize_with = "deserialize_optional_decimal"
3185 )]
3186 pub insured_deposit_interest_sec: Option<Decimal>,
3187
3188 #[serde(
3190 rename = "@insuredDepositInterestCom",
3191 default,
3192 deserialize_with = "deserialize_optional_decimal"
3193 )]
3194 pub insured_deposit_interest_com: Option<Decimal>,
3195
3196 #[serde(
3198 rename = "@insuredDepositInterestPaxos",
3199 default,
3200 deserialize_with = "deserialize_optional_decimal"
3201 )]
3202 pub insured_deposit_interest_paxos: Option<Decimal>,
3203
3204 #[serde(
3206 rename = "@realizedVm",
3207 default,
3208 deserialize_with = "deserialize_optional_decimal"
3209 )]
3210 pub realized_vm: Option<Decimal>,
3211
3212 #[serde(
3214 rename = "@realizedVmSec",
3215 default,
3216 deserialize_with = "deserialize_optional_decimal"
3217 )]
3218 pub realized_vm_sec: Option<Decimal>,
3219
3220 #[serde(
3222 rename = "@realizedVmCom",
3223 default,
3224 deserialize_with = "deserialize_optional_decimal"
3225 )]
3226 pub realized_vm_com: Option<Decimal>,
3227
3228 #[serde(
3230 rename = "@advisorFees",
3231 default,
3232 deserialize_with = "deserialize_optional_decimal"
3233 )]
3234 pub advisor_fees: Option<Decimal>,
3235
3236 #[serde(
3238 rename = "@advisorFeesSec",
3239 default,
3240 deserialize_with = "deserialize_optional_decimal"
3241 )]
3242 pub advisor_fees_sec: Option<Decimal>,
3243
3244 #[serde(
3246 rename = "@advisorFeesCom",
3247 default,
3248 deserialize_with = "deserialize_optional_decimal"
3249 )]
3250 pub advisor_fees_com: Option<Decimal>,
3251
3252 #[serde(
3254 rename = "@advisorFeesPaxos",
3255 default,
3256 deserialize_with = "deserialize_optional_decimal"
3257 )]
3258 pub advisor_fees_paxos: Option<Decimal>,
3259
3260 #[serde(
3262 rename = "@taxReceivables",
3263 default,
3264 deserialize_with = "deserialize_optional_decimal"
3265 )]
3266 pub tax_receivables: Option<Decimal>,
3267
3268 #[serde(
3270 rename = "@taxReceivablesSec",
3271 default,
3272 deserialize_with = "deserialize_optional_decimal"
3273 )]
3274 pub tax_receivables_sec: Option<Decimal>,
3275
3276 #[serde(
3278 rename = "@taxReceivablesCom",
3279 default,
3280 deserialize_with = "deserialize_optional_decimal"
3281 )]
3282 pub tax_receivables_com: Option<Decimal>,
3283
3284 #[serde(
3286 rename = "@withholding871m",
3287 default,
3288 deserialize_with = "deserialize_optional_decimal"
3289 )]
3290 pub withholding871m: Option<Decimal>,
3291
3292 #[serde(
3294 rename = "@withholding871mSec",
3295 default,
3296 deserialize_with = "deserialize_optional_decimal"
3297 )]
3298 pub withholding871m_sec: Option<Decimal>,
3299
3300 #[serde(
3302 rename = "@withholding871mCom",
3303 default,
3304 deserialize_with = "deserialize_optional_decimal"
3305 )]
3306 pub withholding871m_com: Option<Decimal>,
3307
3308 #[serde(
3310 rename = "@withholdingCollectedTax",
3311 default,
3312 deserialize_with = "deserialize_optional_decimal"
3313 )]
3314 pub withholding_collected_tax: Option<Decimal>,
3315
3316 #[serde(
3318 rename = "@withholdingCollectedTaxSec",
3319 default,
3320 deserialize_with = "deserialize_optional_decimal"
3321 )]
3322 pub withholding_collected_tax_sec: Option<Decimal>,
3323
3324 #[serde(
3326 rename = "@withholdingCollectedTaxCom",
3327 default,
3328 deserialize_with = "deserialize_optional_decimal"
3329 )]
3330 pub withholding_collected_tax_com: Option<Decimal>,
3331
3332 #[serde(
3334 rename = "@salesTax",
3335 default,
3336 deserialize_with = "deserialize_optional_decimal"
3337 )]
3338 pub sales_tax: Option<Decimal>,
3339
3340 #[serde(
3342 rename = "@salesTaxSec",
3343 default,
3344 deserialize_with = "deserialize_optional_decimal"
3345 )]
3346 pub sales_tax_sec: Option<Decimal>,
3347
3348 #[serde(
3350 rename = "@salesTaxCom",
3351 default,
3352 deserialize_with = "deserialize_optional_decimal"
3353 )]
3354 pub sales_tax_com: Option<Decimal>,
3355
3356 #[serde(
3358 rename = "@other",
3359 default,
3360 deserialize_with = "deserialize_optional_decimal"
3361 )]
3362 pub other: Option<Decimal>,
3363
3364 #[serde(
3366 rename = "@otherSec",
3367 default,
3368 deserialize_with = "deserialize_optional_decimal"
3369 )]
3370 pub other_sec: Option<Decimal>,
3371
3372 #[serde(
3374 rename = "@otherCom",
3375 default,
3376 deserialize_with = "deserialize_optional_decimal"
3377 )]
3378 pub other_com: Option<Decimal>,
3379
3380 #[serde(
3382 rename = "@otherPaxos",
3383 default,
3384 deserialize_with = "deserialize_optional_decimal"
3385 )]
3386 pub other_paxos: Option<Decimal>,
3387
3388 #[serde(
3390 rename = "@levelOfDetail",
3391 default,
3392 deserialize_with = "deserialize_optional_string"
3393 )]
3394 pub level_of_detail: Option<String>,
3395
3396 #[serde(
3398 rename = "@debitCardActivitySec",
3399 default,
3400 deserialize_with = "deserialize_optional_decimal"
3401 )]
3402 pub debit_card_activity_sec: Option<Decimal>,
3403
3404 #[serde(
3406 rename = "@debitCardActivityCom",
3407 default,
3408 deserialize_with = "deserialize_optional_decimal"
3409 )]
3410 pub debit_card_activity_com: Option<Decimal>,
3411
3412 #[serde(
3414 rename = "@debitCardActivityMTD",
3415 default,
3416 deserialize_with = "deserialize_optional_decimal"
3417 )]
3418 pub debit_card_activity_mtd: Option<Decimal>,
3419
3420 #[serde(
3422 rename = "@debitCardActivityYTD",
3423 default,
3424 deserialize_with = "deserialize_optional_decimal"
3425 )]
3426 pub debit_card_activity_ytd: Option<Decimal>,
3427
3428 #[serde(
3430 rename = "@debitCardActivityPaxos",
3431 default,
3432 deserialize_with = "deserialize_optional_decimal"
3433 )]
3434 pub debit_card_activity_paxos: Option<Decimal>,
3435
3436 #[serde(
3438 rename = "@billPay",
3439 default,
3440 deserialize_with = "deserialize_optional_decimal"
3441 )]
3442 pub bill_pay: Option<Decimal>,
3443
3444 #[serde(
3446 rename = "@billPaySec",
3447 default,
3448 deserialize_with = "deserialize_optional_decimal"
3449 )]
3450 pub bill_pay_sec: Option<Decimal>,
3451
3452 #[serde(
3454 rename = "@billPayCom",
3455 default,
3456 deserialize_with = "deserialize_optional_decimal"
3457 )]
3458 pub bill_pay_com: Option<Decimal>,
3459
3460 #[serde(
3462 rename = "@billPayMTD",
3463 default,
3464 deserialize_with = "deserialize_optional_decimal"
3465 )]
3466 pub bill_pay_mtd: Option<Decimal>,
3467
3468 #[serde(
3470 rename = "@billPayYTD",
3471 default,
3472 deserialize_with = "deserialize_optional_decimal"
3473 )]
3474 pub bill_pay_ytd: Option<Decimal>,
3475
3476 #[serde(
3478 rename = "@billPayPaxos",
3479 default,
3480 deserialize_with = "deserialize_optional_decimal"
3481 )]
3482 pub bill_pay_paxos: Option<Decimal>,
3483
3484 #[serde(
3486 rename = "@realizedForexVm",
3487 default,
3488 deserialize_with = "deserialize_optional_decimal"
3489 )]
3490 pub realized_forex_vm: Option<Decimal>,
3491
3492 #[serde(
3494 rename = "@realizedForexVmSec",
3495 default,
3496 deserialize_with = "deserialize_optional_decimal"
3497 )]
3498 pub realized_forex_vm_sec: Option<Decimal>,
3499
3500 #[serde(
3502 rename = "@realizedForexVmCom",
3503 default,
3504 deserialize_with = "deserialize_optional_decimal"
3505 )]
3506 pub realized_forex_vm_com: Option<Decimal>,
3507
3508 #[serde(
3510 rename = "@realizedForexVmMTD",
3511 default,
3512 deserialize_with = "deserialize_optional_decimal"
3513 )]
3514 pub realized_forex_vm_mtd: Option<Decimal>,
3515
3516 #[serde(
3518 rename = "@realizedForexVmYTD",
3519 default,
3520 deserialize_with = "deserialize_optional_decimal"
3521 )]
3522 pub realized_forex_vm_ytd: Option<Decimal>,
3523
3524 #[serde(
3526 rename = "@realizedForexVmPaxos",
3527 default,
3528 deserialize_with = "deserialize_optional_decimal"
3529 )]
3530 pub realized_forex_vm_paxos: Option<Decimal>,
3531
3532 #[serde(
3534 rename = "@ipoSubscription",
3535 default,
3536 deserialize_with = "deserialize_optional_decimal"
3537 )]
3538 pub ipo_subscription: Option<Decimal>,
3539
3540 #[serde(
3542 rename = "@ipoSubscriptionSec",
3543 default,
3544 deserialize_with = "deserialize_optional_decimal"
3545 )]
3546 pub ipo_subscription_sec: Option<Decimal>,
3547
3548 #[serde(
3550 rename = "@ipoSubscriptionCom",
3551 default,
3552 deserialize_with = "deserialize_optional_decimal"
3553 )]
3554 pub ipo_subscription_com: Option<Decimal>,
3555
3556 #[serde(
3558 rename = "@ipoSubscriptionMTD",
3559 default,
3560 deserialize_with = "deserialize_optional_decimal"
3561 )]
3562 pub ipo_subscription_mtd: Option<Decimal>,
3563
3564 #[serde(
3566 rename = "@ipoSubscriptionYTD",
3567 default,
3568 deserialize_with = "deserialize_optional_decimal"
3569 )]
3570 pub ipo_subscription_ytd: Option<Decimal>,
3571
3572 #[serde(
3574 rename = "@ipoSubscriptionPaxos",
3575 default,
3576 deserialize_with = "deserialize_optional_decimal"
3577 )]
3578 pub ipo_subscription_paxos: Option<Decimal>,
3579
3580 #[serde(
3582 rename = "@billableSalesTaxSec",
3583 default,
3584 deserialize_with = "deserialize_optional_decimal"
3585 )]
3586 pub billable_sales_tax_sec: Option<Decimal>,
3587
3588 #[serde(
3590 rename = "@billableSalesTaxCom",
3591 default,
3592 deserialize_with = "deserialize_optional_decimal"
3593 )]
3594 pub billable_sales_tax_com: Option<Decimal>,
3595
3596 #[serde(
3598 rename = "@billableSalesTaxMTD",
3599 default,
3600 deserialize_with = "deserialize_optional_decimal"
3601 )]
3602 pub billable_sales_tax_mtd: Option<Decimal>,
3603
3604 #[serde(
3606 rename = "@billableSalesTaxYTD",
3607 default,
3608 deserialize_with = "deserialize_optional_decimal"
3609 )]
3610 pub billable_sales_tax_ytd: Option<Decimal>,
3611
3612 #[serde(
3614 rename = "@billableSalesTaxPaxos",
3615 default,
3616 deserialize_with = "deserialize_optional_decimal"
3617 )]
3618 pub billable_sales_tax_paxos: Option<Decimal>,
3619
3620 #[serde(
3622 rename = "@commissionCreditsRedemption",
3623 default,
3624 deserialize_with = "deserialize_optional_decimal"
3625 )]
3626 pub commission_credits_redemption: Option<Decimal>,
3627
3628 #[serde(
3630 rename = "@commissionCreditsRedemptionSec",
3631 default,
3632 deserialize_with = "deserialize_optional_decimal"
3633 )]
3634 pub commission_credits_redemption_sec: Option<Decimal>,
3635
3636 #[serde(
3638 rename = "@commissionCreditsRedemptionCom",
3639 default,
3640 deserialize_with = "deserialize_optional_decimal"
3641 )]
3642 pub commission_credits_redemption_com: Option<Decimal>,
3643
3644 #[serde(
3646 rename = "@commissionCreditsRedemptionMTD",
3647 default,
3648 deserialize_with = "deserialize_optional_decimal"
3649 )]
3650 pub commission_credits_redemption_mtd: Option<Decimal>,
3651
3652 #[serde(
3654 rename = "@commissionCreditsRedemptionYTD",
3655 default,
3656 deserialize_with = "deserialize_optional_decimal"
3657 )]
3658 pub commission_credits_redemption_ytd: Option<Decimal>,
3659
3660 #[serde(
3662 rename = "@commissionCreditsRedemptionPaxos",
3663 default,
3664 deserialize_with = "deserialize_optional_decimal"
3665 )]
3666 pub commission_credits_redemption_paxos: Option<Decimal>,
3667
3668 #[serde(
3670 rename = "@referralFee",
3671 default,
3672 deserialize_with = "deserialize_optional_decimal"
3673 )]
3674 pub referral_fee: Option<Decimal>,
3675
3676 #[serde(
3678 rename = "@referralFeePaxos",
3679 default,
3680 deserialize_with = "deserialize_optional_decimal"
3681 )]
3682 pub referral_fee_paxos: Option<Decimal>,
3683
3684 #[serde(
3686 rename = "@referralFeeSec",
3687 default,
3688 deserialize_with = "deserialize_optional_decimal"
3689 )]
3690 pub referral_fee_sec: Option<Decimal>,
3691
3692 #[serde(
3694 rename = "@referralFeeCom",
3695 default,
3696 deserialize_with = "deserialize_optional_decimal"
3697 )]
3698 pub referral_fee_com: Option<Decimal>,
3699
3700 #[serde(
3702 rename = "@referralFeeMTD",
3703 default,
3704 deserialize_with = "deserialize_optional_decimal"
3705 )]
3706 pub referral_fee_mtd: Option<Decimal>,
3707
3708 #[serde(
3710 rename = "@referralFeeYTD",
3711 default,
3712 deserialize_with = "deserialize_optional_decimal"
3713 )]
3714 pub referral_fee_ytd: Option<Decimal>,
3715
3716 #[serde(
3718 rename = "@carbonCredits",
3719 default,
3720 deserialize_with = "deserialize_optional_decimal"
3721 )]
3722 pub carbon_credits: Option<Decimal>,
3723
3724 #[serde(
3726 rename = "@carbonCreditsSec",
3727 default,
3728 deserialize_with = "deserialize_optional_decimal"
3729 )]
3730 pub carbon_credits_sec: Option<Decimal>,
3731
3732 #[serde(
3734 rename = "@carbonCreditsCom",
3735 default,
3736 deserialize_with = "deserialize_optional_decimal"
3737 )]
3738 pub carbon_credits_com: Option<Decimal>,
3739
3740 #[serde(
3742 rename = "@carbonCreditsMTD",
3743 default,
3744 deserialize_with = "deserialize_optional_decimal"
3745 )]
3746 pub carbon_credits_mtd: Option<Decimal>,
3747
3748 #[serde(
3750 rename = "@carbonCreditsYTD",
3751 default,
3752 deserialize_with = "deserialize_optional_decimal"
3753 )]
3754 pub carbon_credits_ytd: Option<Decimal>,
3755
3756 #[serde(
3758 rename = "@carbonCreditsPaxos",
3759 default,
3760 deserialize_with = "deserialize_optional_decimal"
3761 )]
3762 pub carbon_credits_paxos: Option<Decimal>,
3763
3764 #[serde(
3766 rename = "@donations",
3767 default,
3768 deserialize_with = "deserialize_optional_decimal"
3769 )]
3770 pub donations: Option<Decimal>,
3771
3772 #[serde(
3774 rename = "@donationsSec",
3775 default,
3776 deserialize_with = "deserialize_optional_decimal"
3777 )]
3778 pub donations_sec: Option<Decimal>,
3779
3780 #[serde(
3782 rename = "@donationsCom",
3783 default,
3784 deserialize_with = "deserialize_optional_decimal"
3785 )]
3786 pub donations_com: Option<Decimal>,
3787
3788 #[serde(
3790 rename = "@donationsMTD",
3791 default,
3792 deserialize_with = "deserialize_optional_decimal"
3793 )]
3794 pub donations_mtd: Option<Decimal>,
3795
3796 #[serde(
3798 rename = "@donationsYTD",
3799 default,
3800 deserialize_with = "deserialize_optional_decimal"
3801 )]
3802 pub donations_ytd: Option<Decimal>,
3803
3804 #[serde(
3806 rename = "@donationsPaxos",
3807 default,
3808 deserialize_with = "deserialize_optional_decimal"
3809 )]
3810 pub donations_paxos: Option<Decimal>,
3811
3812 #[serde(
3814 rename = "@paxosTransfers",
3815 default,
3816 deserialize_with = "deserialize_optional_decimal"
3817 )]
3818 pub paxos_transfers: Option<Decimal>,
3819
3820 #[serde(
3822 rename = "@paxosTransfersSec",
3823 default,
3824 deserialize_with = "deserialize_optional_decimal"
3825 )]
3826 pub paxos_transfers_sec: Option<Decimal>,
3827
3828 #[serde(
3830 rename = "@paxosTransfersCom",
3831 default,
3832 deserialize_with = "deserialize_optional_decimal"
3833 )]
3834 pub paxos_transfers_com: Option<Decimal>,
3835
3836 #[serde(
3838 rename = "@paxosTransfersMTD",
3839 default,
3840 deserialize_with = "deserialize_optional_decimal"
3841 )]
3842 pub paxos_transfers_mtd: Option<Decimal>,
3843
3844 #[serde(
3846 rename = "@paxosTransfersYTD",
3847 default,
3848 deserialize_with = "deserialize_optional_decimal"
3849 )]
3850 pub paxos_transfers_ytd: Option<Decimal>,
3851
3852 #[serde(
3854 rename = "@slbStartingCashCollateral",
3855 default,
3856 deserialize_with = "deserialize_optional_decimal"
3857 )]
3858 pub slb_starting_cash_collateral: Option<Decimal>,
3859
3860 #[serde(
3862 rename = "@slbStartingCashCollateralSec",
3863 default,
3864 deserialize_with = "deserialize_optional_decimal"
3865 )]
3866 pub slb_starting_cash_collateral_sec: Option<Decimal>,
3867
3868 #[serde(
3870 rename = "@slbStartingCashCollateralCom",
3871 default,
3872 deserialize_with = "deserialize_optional_decimal"
3873 )]
3874 pub slb_starting_cash_collateral_com: Option<Decimal>,
3875
3876 #[serde(
3878 rename = "@slbStartingCashCollateralPaxos",
3879 default,
3880 deserialize_with = "deserialize_optional_decimal"
3881 )]
3882 pub slb_starting_cash_collateral_paxos: Option<Decimal>,
3883
3884 #[serde(
3886 rename = "@slbNetSecuritiesLentActivity",
3887 default,
3888 deserialize_with = "deserialize_optional_decimal"
3889 )]
3890 pub slb_net_securities_lent_activity: Option<Decimal>,
3891
3892 #[serde(
3894 rename = "@slbNetSecuritiesLentActivityCom",
3895 default,
3896 deserialize_with = "deserialize_optional_decimal"
3897 )]
3898 pub slb_net_securities_lent_activity_com: Option<Decimal>,
3899
3900 #[serde(
3902 rename = "@slbNetSecuritiesLentActivitySec",
3903 default,
3904 deserialize_with = "deserialize_optional_decimal"
3905 )]
3906 pub slb_net_securities_lent_activity_sec: Option<Decimal>,
3907
3908 #[serde(
3910 rename = "@slbNetSecuritiesLentActivityPaxos",
3911 default,
3912 deserialize_with = "deserialize_optional_decimal"
3913 )]
3914 pub slb_net_securities_lent_activity_paxos: Option<Decimal>,
3915
3916 #[serde(
3918 rename = "@slbEndingCashCollateral",
3919 default,
3920 deserialize_with = "deserialize_optional_decimal"
3921 )]
3922 pub slb_ending_cash_collateral: Option<Decimal>,
3923
3924 #[serde(
3926 rename = "@slbEndingCashCollateralSec",
3927 default,
3928 deserialize_with = "deserialize_optional_decimal"
3929 )]
3930 pub slb_ending_cash_collateral_sec: Option<Decimal>,
3931
3932 #[serde(
3934 rename = "@slbEndingCashCollateralCom",
3935 default,
3936 deserialize_with = "deserialize_optional_decimal"
3937 )]
3938 pub slb_ending_cash_collateral_com: Option<Decimal>,
3939
3940 #[serde(
3942 rename = "@slbEndingCashCollateralPaxos",
3943 default,
3944 deserialize_with = "deserialize_optional_decimal"
3945 )]
3946 pub slb_ending_cash_collateral_paxos: Option<Decimal>,
3947
3948 #[serde(
3950 rename = "@slbNetCash",
3951 default,
3952 deserialize_with = "deserialize_optional_decimal"
3953 )]
3954 pub slb_net_cash: Option<Decimal>,
3955
3956 #[serde(
3958 rename = "@slbNetCashSec",
3959 default,
3960 deserialize_with = "deserialize_optional_decimal"
3961 )]
3962 pub slb_net_cash_sec: Option<Decimal>,
3963
3964 #[serde(
3966 rename = "@slbNetCashCom",
3967 default,
3968 deserialize_with = "deserialize_optional_decimal"
3969 )]
3970 pub slb_net_cash_com: Option<Decimal>,
3971
3972 #[serde(
3974 rename = "@slbNetCashPaxos",
3975 default,
3976 deserialize_with = "deserialize_optional_decimal"
3977 )]
3978 pub slb_net_cash_paxos: Option<Decimal>,
3979
3980 #[serde(
3982 rename = "@slbNetSettledCash",
3983 default,
3984 deserialize_with = "deserialize_optional_decimal"
3985 )]
3986 pub slb_net_settled_cash: Option<Decimal>,
3987
3988 #[serde(
3990 rename = "@slbNetSettledCashSec",
3991 default,
3992 deserialize_with = "deserialize_optional_decimal"
3993 )]
3994 pub slb_net_settled_cash_sec: Option<Decimal>,
3995
3996 #[serde(
3998 rename = "@slbNetSettledCashCom",
3999 default,
4000 deserialize_with = "deserialize_optional_decimal"
4001 )]
4002 pub slb_net_settled_cash_com: Option<Decimal>,
4003
4004 #[serde(
4006 rename = "@slbNetSettledCashPaxos",
4007 default,
4008 deserialize_with = "deserialize_optional_decimal"
4009 )]
4010 pub slb_net_settled_cash_paxos: Option<Decimal>,
4011}
4012
4013#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
4015pub struct TradeConfirm {
4016 #[serde(
4018 rename = "@accountId",
4019 default,
4020 deserialize_with = "deserialize_optional_string"
4021 )]
4022 pub account_id: Option<String>,
4023
4024 #[serde(rename = "@acctAlias", default)]
4026 pub acct_alias: Option<String>,
4027
4028 #[serde(rename = "@model", default)]
4030 pub model: Option<String>,
4031
4032 #[serde(
4034 rename = "@execID",
4035 default,
4036 deserialize_with = "deserialize_optional_string"
4037 )]
4038 pub exec_id: Option<String>,
4039
4040 #[serde(rename = "@transactionID", default)]
4042 pub transaction_id: Option<String>,
4043
4044 #[serde(rename = "@tradeID", default)]
4046 pub trade_id: Option<String>,
4047
4048 #[serde(rename = "@orderID", default)]
4050 pub order_id: Option<String>,
4051
4052 #[serde(
4054 rename = "@tradeDate",
4055 default,
4056 deserialize_with = "deserialize_optional_date"
4057 )]
4058 pub trade_date: Option<NaiveDate>,
4059
4060 #[serde(rename = "@tradeTime", default)]
4062 pub trade_time: Option<String>,
4063
4064 #[serde(rename = "@dateTime", default)]
4066 pub date_time: Option<String>,
4067
4068 #[serde(
4070 rename = "@settleDate",
4071 default,
4072 deserialize_with = "deserialize_optional_date"
4073 )]
4074 pub settle_date: Option<NaiveDate>,
4075
4076 #[serde(
4078 rename = "@symbol",
4079 default,
4080 deserialize_with = "deserialize_optional_string"
4081 )]
4082 pub symbol: Option<String>,
4083
4084 #[serde(rename = "@description", default)]
4086 pub description: Option<String>,
4087
4088 #[serde(rename = "@conid", default)]
4090 pub conid: Option<String>,
4091
4092 #[serde(rename = "@assetCategory", default)]
4094 pub asset_category: Option<AssetCategory>,
4095
4096 #[serde(rename = "@cusip", default)]
4099 pub cusip: Option<String>,
4100
4101 #[serde(rename = "@isin", default)]
4103 pub isin: Option<String>,
4104
4105 #[serde(rename = "@figi", default)]
4107 pub figi: Option<String>,
4108
4109 #[serde(rename = "@listingExchange", default)]
4111 pub listing_exchange: Option<String>,
4112
4113 #[serde(
4116 rename = "@strike",
4117 default,
4118 deserialize_with = "deserialize_optional_decimal"
4119 )]
4120 pub strike: Option<Decimal>,
4121
4122 #[serde(
4124 rename = "@expiry",
4125 default,
4126 deserialize_with = "deserialize_optional_date"
4127 )]
4128 pub expiry: Option<NaiveDate>,
4129
4130 #[serde(rename = "@putCall", default)]
4132 pub put_call: Option<String>,
4133
4134 #[serde(
4136 rename = "@multiplier",
4137 default,
4138 deserialize_with = "deserialize_optional_decimal"
4139 )]
4140 pub multiplier: Option<Decimal>,
4141
4142 #[serde(rename = "@underlyingSymbol", default)]
4145 pub underlying_symbol: Option<String>,
4146
4147 #[serde(rename = "@underlyingConid", default)]
4149 pub underlying_conid: Option<String>,
4150
4151 #[serde(
4154 rename = "@quantity",
4155 default,
4156 deserialize_with = "deserialize_optional_decimal"
4157 )]
4158 pub quantity: Option<Decimal>,
4159
4160 #[serde(
4162 rename = "@price",
4163 default,
4164 deserialize_with = "deserialize_optional_decimal"
4165 )]
4166 pub price: Option<Decimal>,
4167
4168 #[serde(
4170 rename = "@proceeds",
4171 default,
4172 deserialize_with = "deserialize_optional_decimal"
4173 )]
4174 pub proceeds: Option<Decimal>,
4175
4176 #[serde(
4178 rename = "@commission",
4179 default,
4180 deserialize_with = "deserialize_optional_decimal"
4181 )]
4182 pub commission: Option<Decimal>,
4183
4184 #[serde(
4186 rename = "@tax",
4187 default,
4188 deserialize_with = "deserialize_optional_decimal"
4189 )]
4190 pub tax: Option<Decimal>,
4191
4192 #[serde(
4194 rename = "@netCash",
4195 default,
4196 deserialize_with = "deserialize_optional_decimal"
4197 )]
4198 pub net_cash: Option<Decimal>,
4199
4200 #[serde(rename = "@currency", default)]
4202 pub currency: Option<String>,
4203
4204 #[serde(
4206 rename = "@fxRateToBase",
4207 default,
4208 deserialize_with = "deserialize_optional_decimal"
4209 )]
4210 pub fx_rate_to_base: Option<Decimal>,
4211
4212 #[serde(rename = "@buySell", default)]
4214 pub buy_sell: Option<String>,
4215
4216 #[serde(rename = "@orderType", default)]
4218 pub order_type: Option<String>,
4219
4220 #[serde(rename = "@exchange", default)]
4222 pub exchange: Option<String>,
4223
4224 #[serde(rename = "@clearingID", default)]
4226 pub clearing_id: Option<String>,
4227
4228 #[serde(
4230 rename = "@awayBrokerCommission",
4231 default,
4232 deserialize_with = "deserialize_optional_decimal"
4233 )]
4234 pub away_broker_commission: Option<Decimal>,
4235
4236 #[serde(
4238 rename = "@regulatoryFee",
4239 default,
4240 deserialize_with = "deserialize_optional_decimal"
4241 )]
4242 pub regulatory_fee: Option<Decimal>,
4243
4244 #[serde(rename = "@orderReference", default)]
4246 pub order_reference: Option<String>,
4247
4248 #[serde(rename = "@levelOfDetail", default)]
4250 pub level_of_detail: Option<String>,
4251
4252 #[serde(rename = "@transactionType", default)]
4254 pub transaction_type: Option<TradeType>,
4255
4256 #[serde(rename = "@openCloseIndicator", default)]
4258 pub open_close_indicator: Option<OpenClose>,
4259
4260 #[serde(
4262 rename = "@securityID",
4263 default,
4264 deserialize_with = "deserialize_optional_string"
4265 )]
4266 pub security_id: Option<String>,
4267
4268 #[serde(
4270 rename = "@rfqID",
4271 default,
4272 deserialize_with = "deserialize_optional_string"
4273 )]
4274 pub rfq_id: Option<String>,
4275
4276 #[serde(
4278 rename = "@securityIDType",
4279 default,
4280 deserialize_with = "deserialize_optional_string"
4281 )]
4282 pub security_id_type: Option<String>,
4283
4284 #[serde(
4286 rename = "@issuer",
4287 default,
4288 deserialize_with = "deserialize_optional_string"
4289 )]
4290 pub issuer: Option<String>,
4291
4292 #[serde(
4294 rename = "@principalAdjustFactor",
4295 default,
4296 deserialize_with = "deserialize_optional_decimal"
4297 )]
4298 pub principal_adjust_factor: Option<Decimal>,
4299
4300 #[serde(
4302 rename = "@reportDate",
4303 default,
4304 deserialize_with = "deserialize_optional_date"
4305 )]
4306 pub report_date: Option<NaiveDate>,
4307
4308 #[serde(
4310 rename = "@settleDateTarget",
4311 default,
4312 deserialize_with = "deserialize_optional_date"
4313 )]
4314 pub settle_date_target: Option<NaiveDate>,
4315
4316 #[serde(
4318 rename = "@tradePrice",
4319 default,
4320 deserialize_with = "deserialize_optional_decimal"
4321 )]
4322 pub trade_price: Option<Decimal>,
4323
4324 #[serde(
4326 rename = "@tradeMoney",
4327 default,
4328 deserialize_with = "deserialize_optional_decimal"
4329 )]
4330 pub trade_money: Option<Decimal>,
4331
4332 #[serde(
4334 rename = "@taxes",
4335 default,
4336 deserialize_with = "deserialize_optional_decimal"
4337 )]
4338 pub taxes: Option<Decimal>,
4339
4340 #[serde(
4342 rename = "@ibCommission",
4343 default,
4344 deserialize_with = "deserialize_optional_decimal"
4345 )]
4346 pub ib_commission: Option<Decimal>,
4347
4348 #[serde(
4350 rename = "@ibCommissionCurrency",
4351 default,
4352 deserialize_with = "deserialize_optional_string"
4353 )]
4354 pub ib_commission_currency: Option<String>,
4355
4356 #[serde(
4358 rename = "@closePrice",
4359 default,
4360 deserialize_with = "deserialize_optional_decimal"
4361 )]
4362 pub close_price: Option<Decimal>,
4363
4364 #[serde(
4366 rename = "@notes",
4367 default,
4368 deserialize_with = "deserialize_optional_string"
4369 )]
4370 pub notes: Option<String>,
4371
4372 #[serde(
4374 rename = "@cost",
4375 default,
4376 deserialize_with = "deserialize_optional_decimal"
4377 )]
4378 pub cost: Option<Decimal>,
4379
4380 #[serde(
4382 rename = "@fifoPnlRealized",
4383 default,
4384 deserialize_with = "deserialize_optional_decimal"
4385 )]
4386 pub fifo_pnl_realized: Option<Decimal>,
4387
4388 #[serde(
4390 rename = "@fxPnl",
4391 default,
4392 deserialize_with = "deserialize_optional_decimal"
4393 )]
4394 pub fx_pnl: Option<Decimal>,
4395
4396 #[serde(
4398 rename = "@mtmPnl",
4399 default,
4400 deserialize_with = "deserialize_optional_decimal"
4401 )]
4402 pub mtm_pnl: Option<Decimal>,
4403
4404 #[serde(
4406 rename = "@origTradePrice",
4407 default,
4408 deserialize_with = "deserialize_optional_decimal"
4409 )]
4410 pub orig_trade_price: Option<Decimal>,
4411
4412 #[serde(
4414 rename = "@origTradeDate",
4415 default,
4416 deserialize_with = "deserialize_optional_date"
4417 )]
4418 pub orig_trade_date: Option<NaiveDate>,
4419
4420 #[serde(
4422 rename = "@origTradeID",
4423 default,
4424 deserialize_with = "deserialize_optional_string"
4425 )]
4426 pub orig_trade_id: Option<String>,
4427
4428 #[serde(
4430 rename = "@origOrderID",
4431 default,
4432 deserialize_with = "deserialize_optional_string"
4433 )]
4434 pub orig_order_id: Option<String>,
4435
4436 #[serde(
4438 rename = "@clearingFirmID",
4439 default,
4440 deserialize_with = "deserialize_optional_string"
4441 )]
4442 pub clearing_firm_id: Option<String>,
4443
4444 #[serde(
4446 rename = "@openDateTime",
4447 default,
4448 deserialize_with = "deserialize_optional_string"
4449 )]
4450 pub open_date_time: Option<String>,
4451
4452 #[serde(
4454 rename = "@holdingPeriodDateTime",
4455 default,
4456 deserialize_with = "deserialize_optional_string"
4457 )]
4458 pub holding_period_date_time: Option<String>,
4459
4460 #[serde(
4462 rename = "@whenRealized",
4463 default,
4464 deserialize_with = "deserialize_optional_string"
4465 )]
4466 pub when_realized: Option<String>,
4467
4468 #[serde(
4470 rename = "@whenReopened",
4471 default,
4472 deserialize_with = "deserialize_optional_string"
4473 )]
4474 pub when_reopened: Option<String>,
4475
4476 #[serde(
4478 rename = "@commissionCurrency",
4479 default,
4480 deserialize_with = "deserialize_optional_string"
4481 )]
4482 pub commission_currency: Option<String>,
4483
4484 #[serde(
4486 rename = "@thirdPartyClearingCommission",
4487 default,
4488 deserialize_with = "deserialize_optional_decimal"
4489 )]
4490 pub third_party_clearing_commission: Option<Decimal>,
4491
4492 #[serde(
4494 rename = "@allocatedTo",
4495 default,
4496 deserialize_with = "deserialize_optional_string"
4497 )]
4498 pub allocated_to: Option<String>,
4499
4500 #[serde(
4502 rename = "@thirdPartyRegulatoryCommission",
4503 default,
4504 deserialize_with = "deserialize_optional_decimal"
4505 )]
4506 pub third_party_regulatory_commission: Option<Decimal>,
4507
4508 #[serde(
4510 rename = "@brokerExecutionCommission",
4511 default,
4512 deserialize_with = "deserialize_optional_decimal"
4513 )]
4514 pub broker_execution_commission: Option<Decimal>,
4515
4516 #[serde(
4518 rename = "@thirdPartyExecutionCommission",
4519 default,
4520 deserialize_with = "deserialize_optional_decimal"
4521 )]
4522 pub third_party_execution_commission: Option<Decimal>,
4523
4524 #[serde(
4526 rename = "@amount",
4527 default,
4528 deserialize_with = "deserialize_optional_decimal"
4529 )]
4530 pub amount: Option<Decimal>,
4531
4532 #[serde(
4534 rename = "@otherCommission",
4535 default,
4536 deserialize_with = "deserialize_optional_decimal"
4537 )]
4538 pub other_commission: Option<Decimal>,
4539
4540 #[serde(
4542 rename = "@brokerClearingCommission",
4543 default,
4544 deserialize_with = "deserialize_optional_decimal"
4545 )]
4546 pub broker_clearing_commission: Option<Decimal>,
4547
4548 #[serde(
4550 rename = "@ibOrderID",
4551 default,
4552 deserialize_with = "deserialize_optional_string"
4553 )]
4554 pub ib_order_id: Option<String>,
4555
4556 #[serde(
4558 rename = "@ibExecID",
4559 default,
4560 deserialize_with = "deserialize_optional_string"
4561 )]
4562 pub ib_exec_id: Option<String>,
4563
4564 #[serde(
4566 rename = "@brokerageOrderID",
4567 default,
4568 deserialize_with = "deserialize_optional_string"
4569 )]
4570 pub brokerage_order_id: Option<String>,
4571
4572 #[serde(
4574 rename = "@volatilityOrderLink",
4575 default,
4576 deserialize_with = "deserialize_optional_string"
4577 )]
4578 pub volatility_order_link: Option<String>,
4579
4580 #[serde(
4582 rename = "@exchOrderId",
4583 default,
4584 deserialize_with = "deserialize_optional_string"
4585 )]
4586 pub exch_order_id: Option<String>,
4587
4588 #[serde(
4590 rename = "@extExecID",
4591 default,
4592 deserialize_with = "deserialize_optional_string"
4593 )]
4594 pub ext_exec_id: Option<String>,
4595
4596 #[serde(
4598 rename = "@orderTime",
4599 default,
4600 deserialize_with = "deserialize_optional_string"
4601 )]
4602 pub order_time: Option<String>,
4603
4604 #[serde(
4606 rename = "@changeInPrice",
4607 default,
4608 deserialize_with = "deserialize_optional_decimal"
4609 )]
4610 pub change_in_price: Option<Decimal>,
4611
4612 #[serde(
4614 rename = "@changeInQuantity",
4615 default,
4616 deserialize_with = "deserialize_optional_decimal"
4617 )]
4618 pub change_in_quantity: Option<Decimal>,
4619
4620 #[serde(
4622 rename = "@traderID",
4623 default,
4624 deserialize_with = "deserialize_optional_string"
4625 )]
4626 pub trader_id: Option<String>,
4627
4628 #[serde(
4630 rename = "@isAPIOrder",
4631 default,
4632 deserialize_with = "deserialize_optional_bool"
4633 )]
4634 pub is_api_order: Option<bool>,
4635
4636 #[serde(
4638 rename = "@code",
4639 default,
4640 deserialize_with = "deserialize_optional_string"
4641 )]
4642 pub code: Option<String>,
4643
4644 #[serde(
4646 rename = "@underlyingListingExchange",
4647 default,
4648 deserialize_with = "deserialize_optional_string"
4649 )]
4650 pub underlying_listing_exchange: Option<String>,
4651
4652 #[serde(
4654 rename = "@underlyingSecurityID",
4655 default,
4656 deserialize_with = "deserialize_optional_string"
4657 )]
4658 pub underlying_security_id: Option<String>,
4659
4660 #[serde(
4662 rename = "@accruedInt",
4663 default,
4664 deserialize_with = "deserialize_optional_decimal"
4665 )]
4666 pub accrued_int: Option<Decimal>,
4667
4668 #[serde(
4670 rename = "@relatedTradeID",
4671 default,
4672 deserialize_with = "deserialize_optional_string"
4673 )]
4674 pub related_trade_id: Option<String>,
4675
4676 #[serde(
4678 rename = "@relatedTransactionID",
4679 default,
4680 deserialize_with = "deserialize_optional_string"
4681 )]
4682 pub related_transaction_id: Option<String>,
4683
4684 #[serde(
4686 rename = "@blockID",
4687 default,
4688 deserialize_with = "deserialize_optional_string"
4689 )]
4690 pub block_id: Option<String>,
4691}
4692
4693#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
4695pub struct OptionEAE {
4696 #[serde(
4698 rename = "@accountId",
4699 default,
4700 deserialize_with = "deserialize_optional_string"
4701 )]
4702 pub account_id: Option<String>,
4703
4704 #[serde(rename = "@acctAlias", default)]
4706 pub acct_alias: Option<String>,
4707
4708 #[serde(rename = "@model", default)]
4710 pub model: Option<String>,
4711
4712 #[serde(rename = "@transactionID", default)]
4714 pub transaction_id: Option<String>,
4715
4716 #[serde(rename = "@actionID", default)]
4718 pub action_id: Option<String>,
4719
4720 #[serde(rename = "@type", default)]
4722 pub action_type: Option<OptionAction>,
4723
4724 #[serde(
4726 rename = "@date",
4727 default,
4728 deserialize_with = "deserialize_optional_date"
4729 )]
4730 pub date: Option<NaiveDate>,
4731
4732 #[serde(rename = "@dateTime", default)]
4734 pub date_time: Option<String>,
4735
4736 #[serde(rename = "@conid", default)]
4738 pub conid: Option<String>,
4739
4740 #[serde(
4742 rename = "@symbol",
4743 default,
4744 deserialize_with = "deserialize_optional_string"
4745 )]
4746 pub symbol: Option<String>,
4747
4748 #[serde(rename = "@description", default)]
4750 pub description: Option<String>,
4751
4752 #[serde(rename = "@assetCategory", default)]
4754 pub asset_category: Option<AssetCategory>,
4755
4756 #[serde(rename = "@cusip", default)]
4759 pub cusip: Option<String>,
4760
4761 #[serde(rename = "@isin", default)]
4763 pub isin: Option<String>,
4764
4765 #[serde(rename = "@figi", default)]
4767 pub figi: Option<String>,
4768
4769 #[serde(rename = "@listingExchange", default)]
4771 pub listing_exchange: Option<String>,
4772
4773 #[serde(
4775 rename = "@quantity",
4776 default,
4777 deserialize_with = "deserialize_optional_decimal"
4778 )]
4779 pub quantity: Option<Decimal>,
4780
4781 #[serde(
4783 rename = "@strike",
4784 default,
4785 deserialize_with = "deserialize_optional_decimal"
4786 )]
4787 pub strike: Option<Decimal>,
4788
4789 #[serde(
4791 rename = "@expiry",
4792 default,
4793 deserialize_with = "deserialize_optional_date"
4794 )]
4795 pub expiry: Option<NaiveDate>,
4796
4797 #[serde(rename = "@putCall", default)]
4799 pub put_call: Option<String>,
4800
4801 #[serde(
4803 rename = "@multiplier",
4804 default,
4805 deserialize_with = "deserialize_optional_decimal"
4806 )]
4807 pub multiplier: Option<Decimal>,
4808
4809 #[serde(rename = "@underlyingSymbol", default)]
4811 pub underlying_symbol: Option<String>,
4812
4813 #[serde(rename = "@underlyingConid", default)]
4815 pub underlying_conid: Option<String>,
4816
4817 #[serde(
4819 rename = "@tradePrice",
4820 default,
4821 deserialize_with = "deserialize_optional_decimal"
4822 )]
4823 pub trade_price: Option<Decimal>,
4824
4825 #[serde(
4827 rename = "@proceeds",
4828 default,
4829 deserialize_with = "deserialize_optional_decimal"
4830 )]
4831 pub proceeds: Option<Decimal>,
4832
4833 #[serde(
4835 rename = "@commission",
4836 default,
4837 deserialize_with = "deserialize_optional_decimal"
4838 )]
4839 pub commission: Option<Decimal>,
4840
4841 #[serde(rename = "@currency", default)]
4843 pub currency: Option<String>,
4844
4845 #[serde(
4847 rename = "@fxRateToBase",
4848 default,
4849 deserialize_with = "deserialize_optional_decimal"
4850 )]
4851 pub fx_rate_to_base: Option<Decimal>,
4852
4853 #[serde(
4855 rename = "@fifoPnlRealized",
4856 default,
4857 deserialize_with = "deserialize_optional_decimal"
4858 )]
4859 pub fifo_pnl_realized: Option<Decimal>,
4860
4861 #[serde(rename = "@notes", default)]
4863 pub notes: Option<String>,
4864
4865 #[serde(rename = "@levelOfDetail", default)]
4867 pub level_of_detail: Option<String>,
4868
4869 #[serde(rename = "@transactionType", default)]
4871 pub transaction_type: Option<OptionAction>,
4872
4873 #[serde(
4875 rename = "@securityID",
4876 default,
4877 deserialize_with = "deserialize_optional_string"
4878 )]
4879 pub security_id: Option<String>,
4880
4881 #[serde(
4883 rename = "@securityIDType",
4884 default,
4885 deserialize_with = "deserialize_optional_string"
4886 )]
4887 pub security_id_type: Option<String>,
4888
4889 #[serde(
4891 rename = "@underlyingSecurityID",
4892 default,
4893 deserialize_with = "deserialize_optional_string"
4894 )]
4895 pub underlying_security_id: Option<String>,
4896
4897 #[serde(
4899 rename = "@underlyingListingExchange",
4900 default,
4901 deserialize_with = "deserialize_optional_string"
4902 )]
4903 pub underlying_listing_exchange: Option<String>,
4904
4905 #[serde(
4907 rename = "@issuer",
4908 default,
4909 deserialize_with = "deserialize_optional_string"
4910 )]
4911 pub issuer: Option<String>,
4912
4913 #[serde(
4915 rename = "@principalAdjustFactor",
4916 default,
4917 deserialize_with = "deserialize_optional_decimal"
4918 )]
4919 pub principal_adjust_factor: Option<Decimal>,
4920
4921 #[serde(
4923 rename = "@markPrice",
4924 default,
4925 deserialize_with = "deserialize_optional_decimal"
4926 )]
4927 pub mark_price: Option<Decimal>,
4928
4929 #[serde(
4931 rename = "@commisionsAndTax",
4932 default,
4933 deserialize_with = "deserialize_optional_decimal"
4934 )]
4935 pub commisions_and_tax: Option<Decimal>,
4936
4937 #[serde(
4939 rename = "@costBasis",
4940 default,
4941 deserialize_with = "deserialize_optional_decimal"
4942 )]
4943 pub cost_basis: Option<Decimal>,
4944
4945 #[serde(
4947 rename = "@realizedPnl",
4948 default,
4949 deserialize_with = "deserialize_optional_decimal"
4950 )]
4951 pub realized_pnl: Option<Decimal>,
4952
4953 #[serde(
4955 rename = "@capitalGainsPnl",
4956 default,
4957 deserialize_with = "deserialize_optional_decimal"
4958 )]
4959 pub capital_gains_pnl: Option<Decimal>,
4960
4961 #[serde(
4963 rename = "@fxPnl",
4964 default,
4965 deserialize_with = "deserialize_optional_decimal"
4966 )]
4967 pub fx_pnl: Option<Decimal>,
4968
4969 #[serde(
4971 rename = "@mtmPnl",
4972 default,
4973 deserialize_with = "deserialize_optional_decimal"
4974 )]
4975 pub mtm_pnl: Option<Decimal>,
4976
4977 #[serde(
4979 rename = "@tradeID",
4980 default,
4981 deserialize_with = "deserialize_optional_string"
4982 )]
4983 pub trade_id: Option<String>,
4984
4985 #[serde(
4987 rename = "@relatedTradeID",
4988 default,
4989 deserialize_with = "deserialize_optional_string"
4990 )]
4991 pub related_trade_id: Option<String>,
4992
4993 #[serde(
4995 rename = "@subCategory",
4996 default,
4997 deserialize_with = "deserialize_optional_string"
4998 )]
4999 pub sub_category: Option<String>,
5000
5001 #[serde(
5003 rename = "@issuerCountryCode",
5004 default,
5005 deserialize_with = "deserialize_optional_string"
5006 )]
5007 pub issuer_country_code: Option<String>,
5008
5009 #[serde(
5011 rename = "@origTransactionID",
5012 default,
5013 deserialize_with = "deserialize_optional_string"
5014 )]
5015 pub orig_transaction_id: Option<String>,
5016
5017 #[serde(
5019 rename = "@relatedTransactionID",
5020 default,
5021 deserialize_with = "deserialize_optional_string"
5022 )]
5023 pub related_transaction_id: Option<String>,
5024
5025 #[serde(
5027 rename = "@rtn",
5028 default,
5029 deserialize_with = "deserialize_optional_string"
5030 )]
5031 pub rtn: Option<String>,
5032
5033 #[serde(
5035 rename = "@initialInvestment",
5036 default,
5037 deserialize_with = "deserialize_optional_bool"
5038 )]
5039 pub initial_investment: Option<bool>,
5040
5041 #[serde(
5043 rename = "@serialNumber",
5044 default,
5045 deserialize_with = "deserialize_optional_string"
5046 )]
5047 pub serial_number: Option<String>,
5048
5049 #[serde(
5051 rename = "@deliveryType",
5052 default,
5053 deserialize_with = "deserialize_optional_string"
5054 )]
5055 pub delivery_type: Option<String>,
5056
5057 #[serde(
5059 rename = "@commodityType",
5060 default,
5061 deserialize_with = "deserialize_optional_string"
5062 )]
5063 pub commodity_type: Option<String>,
5064
5065 #[serde(
5067 rename = "@fineness",
5068 default,
5069 deserialize_with = "deserialize_optional_decimal"
5070 )]
5071 pub fineness: Option<Decimal>,
5072
5073 #[serde(
5075 rename = "@weight",
5076 default,
5077 deserialize_with = "deserialize_optional_string"
5078 )]
5079 pub weight: Option<String>,
5080}
5081
5082#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5084pub struct FxTransaction {
5085 #[serde(
5087 rename = "@accountId",
5088 default,
5089 deserialize_with = "deserialize_optional_string"
5090 )]
5091 pub account_id: Option<String>,
5092
5093 #[serde(rename = "@acctAlias", default)]
5095 pub acct_alias: Option<String>,
5096
5097 #[serde(rename = "@model", default)]
5099 pub model: Option<String>,
5100
5101 #[serde(rename = "@transactionID", default)]
5103 pub transaction_id: Option<String>,
5104
5105 #[serde(rename = "@actionID", default)]
5107 pub action_id: Option<String>,
5108
5109 #[serde(
5111 rename = "@reportDate",
5112 default,
5113 deserialize_with = "deserialize_optional_date"
5114 )]
5115 pub report_date: Option<NaiveDate>,
5116
5117 #[serde(rename = "@dateTime", default)]
5119 pub date_time: Option<String>,
5120
5121 #[serde(rename = "@description", default)]
5123 pub description: Option<String>,
5124
5125 #[serde(rename = "@functionalCurrency", default)]
5127 pub functional_currency: Option<String>,
5128
5129 #[serde(
5131 rename = "@fromCurrency",
5132 default,
5133 deserialize_with = "deserialize_optional_string"
5134 )]
5135 pub from_currency: Option<String>,
5136
5137 #[serde(
5139 rename = "@toCurrency",
5140 default,
5141 deserialize_with = "deserialize_optional_string"
5142 )]
5143 pub to_currency: Option<String>,
5144
5145 #[serde(
5147 rename = "@quantity",
5148 default,
5149 deserialize_with = "deserialize_optional_decimal"
5150 )]
5151 pub quantity: Option<Decimal>,
5152
5153 #[serde(
5155 rename = "@proceeds",
5156 default,
5157 deserialize_with = "deserialize_optional_decimal"
5158 )]
5159 pub proceeds: Option<Decimal>,
5160
5161 #[serde(
5163 rename = "@cost",
5164 default,
5165 deserialize_with = "deserialize_optional_decimal"
5166 )]
5167 pub cost: Option<Decimal>,
5168
5169 #[serde(
5171 rename = "@realizedPL",
5172 default,
5173 deserialize_with = "deserialize_optional_decimal"
5174 )]
5175 pub realized_pl: Option<Decimal>,
5176
5177 #[serde(
5179 rename = "@fxRateToBase",
5180 default,
5181 deserialize_with = "deserialize_optional_decimal"
5182 )]
5183 pub fx_rate_to_base: Option<Decimal>,
5184
5185 #[serde(rename = "@levelOfDetail", default)]
5187 pub level_of_detail: Option<String>,
5188
5189 #[serde(rename = "@assetCategory", default)]
5191 pub asset_category: Option<String>,
5192
5193 #[serde(
5195 rename = "@fxCurrency",
5196 default,
5197 deserialize_with = "deserialize_optional_string"
5198 )]
5199 pub fx_currency: Option<String>,
5200
5201 #[serde(
5203 rename = "@activityDescription",
5204 default,
5205 deserialize_with = "deserialize_optional_string"
5206 )]
5207 pub activity_description: Option<String>,
5208
5209 #[serde(
5211 rename = "@code",
5212 default,
5213 deserialize_with = "deserialize_optional_string"
5214 )]
5215 pub code: Option<String>,
5216}
5217
5218#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5220pub struct ChangeInDividendAccrual {
5221 #[serde(
5223 rename = "@accountId",
5224 default,
5225 deserialize_with = "deserialize_optional_string"
5226 )]
5227 pub account_id: Option<String>,
5228
5229 #[serde(rename = "@acctAlias", default)]
5231 pub acct_alias: Option<String>,
5232
5233 #[serde(rename = "@model", default)]
5235 pub model: Option<String>,
5236
5237 #[serde(rename = "@currency", default)]
5239 pub currency: Option<String>,
5240
5241 #[serde(
5243 rename = "@fxRateToBase",
5244 default,
5245 deserialize_with = "deserialize_optional_decimal"
5246 )]
5247 pub fx_rate_to_base: Option<Decimal>,
5248
5249 #[serde(rename = "@assetCategory", default)]
5251 pub asset_category: Option<AssetCategory>,
5252
5253 #[serde(
5255 rename = "@symbol",
5256 default,
5257 deserialize_with = "deserialize_optional_string"
5258 )]
5259 pub symbol: Option<String>,
5260
5261 #[serde(rename = "@description", default)]
5263 pub description: Option<String>,
5264
5265 #[serde(rename = "@conid", default)]
5267 pub conid: Option<String>,
5268
5269 #[serde(rename = "@securityID", default)]
5271 pub security_id: Option<String>,
5272
5273 #[serde(rename = "@securityIDType", default)]
5275 pub security_id_type: Option<String>,
5276
5277 #[serde(rename = "@cusip", default)]
5279 pub cusip: Option<String>,
5280
5281 #[serde(rename = "@isin", default)]
5283 pub isin: Option<String>,
5284
5285 #[serde(rename = "@figi", default)]
5287 pub figi: Option<String>,
5288
5289 #[serde(rename = "@listingExchange", default)]
5291 pub listing_exchange: Option<String>,
5292
5293 #[serde(
5295 rename = "@exDate",
5296 default,
5297 deserialize_with = "deserialize_optional_date"
5298 )]
5299 pub ex_date: Option<NaiveDate>,
5300
5301 #[serde(
5303 rename = "@payDate",
5304 default,
5305 deserialize_with = "deserialize_optional_date"
5306 )]
5307 pub pay_date: Option<NaiveDate>,
5308
5309 #[serde(
5311 rename = "@date",
5312 default,
5313 deserialize_with = "deserialize_optional_date"
5314 )]
5315 pub date: Option<NaiveDate>,
5316
5317 #[serde(
5319 rename = "@quantity",
5320 default,
5321 deserialize_with = "deserialize_optional_decimal"
5322 )]
5323 pub quantity: Option<Decimal>,
5324
5325 #[serde(
5327 rename = "@tax",
5328 default,
5329 deserialize_with = "deserialize_optional_decimal"
5330 )]
5331 pub tax: Option<Decimal>,
5332
5333 #[serde(
5335 rename = "@fee",
5336 default,
5337 deserialize_with = "deserialize_optional_decimal"
5338 )]
5339 pub fee: Option<Decimal>,
5340
5341 #[serde(
5343 rename = "@grossRate",
5344 default,
5345 deserialize_with = "deserialize_optional_decimal"
5346 )]
5347 pub gross_rate: Option<Decimal>,
5348
5349 #[serde(
5351 rename = "@grossAmount",
5352 default,
5353 deserialize_with = "deserialize_optional_decimal"
5354 )]
5355 pub gross_amount: Option<Decimal>,
5356
5357 #[serde(
5359 rename = "@netAmount",
5360 default,
5361 deserialize_with = "deserialize_optional_decimal"
5362 )]
5363 pub net_amount: Option<Decimal>,
5364
5365 #[serde(
5367 rename = "@fromAccrual",
5368 default,
5369 deserialize_with = "deserialize_optional_decimal"
5370 )]
5371 pub from_accrual: Option<Decimal>,
5372
5373 #[serde(
5375 rename = "@toAccrual",
5376 default,
5377 deserialize_with = "deserialize_optional_decimal"
5378 )]
5379 pub to_accrual: Option<Decimal>,
5380
5381 #[serde(rename = "@code", default)]
5383 pub code: Option<String>,
5384
5385 #[serde(
5387 rename = "@sedol",
5388 default,
5389 deserialize_with = "deserialize_optional_string"
5390 )]
5391 pub sedol: Option<String>,
5392
5393 #[serde(
5395 rename = "@underlyingSecurityID",
5396 default,
5397 deserialize_with = "deserialize_optional_string"
5398 )]
5399 pub underlying_security_id: Option<String>,
5400
5401 #[serde(
5403 rename = "@underlyingListingExchange",
5404 default,
5405 deserialize_with = "deserialize_optional_string"
5406 )]
5407 pub underlying_listing_exchange: Option<String>,
5408
5409 #[serde(
5411 rename = "@reportDate",
5412 default,
5413 deserialize_with = "deserialize_optional_date"
5414 )]
5415 pub report_date: Option<NaiveDate>,
5416
5417 #[serde(
5419 rename = "@underlyingConid",
5420 default,
5421 deserialize_with = "deserialize_optional_string"
5422 )]
5423 pub underlying_conid: Option<String>,
5424
5425 #[serde(
5427 rename = "@underlyingSymbol",
5428 default,
5429 deserialize_with = "deserialize_optional_string"
5430 )]
5431 pub underlying_symbol: Option<String>,
5432
5433 #[serde(
5435 rename = "@issuer",
5436 default,
5437 deserialize_with = "deserialize_optional_string"
5438 )]
5439 pub issuer: Option<String>,
5440
5441 #[serde(
5443 rename = "@multiplier",
5444 default,
5445 deserialize_with = "deserialize_optional_decimal"
5446 )]
5447 pub multiplier: Option<Decimal>,
5448
5449 #[serde(
5451 rename = "@strike",
5452 default,
5453 deserialize_with = "deserialize_optional_decimal"
5454 )]
5455 pub strike: Option<Decimal>,
5456
5457 #[serde(
5459 rename = "@expiry",
5460 default,
5461 deserialize_with = "deserialize_optional_date"
5462 )]
5463 pub expiry: Option<NaiveDate>,
5464
5465 #[serde(rename = "@putCall", default)]
5467 pub put_call: Option<PutCall>,
5468
5469 #[serde(
5471 rename = "@principalAdjustFactor",
5472 default,
5473 deserialize_with = "deserialize_optional_decimal"
5474 )]
5475 pub principal_adjust_factor: Option<Decimal>,
5476
5477 #[serde(
5479 rename = "@fromAcct",
5480 default,
5481 deserialize_with = "deserialize_optional_string"
5482 )]
5483 pub from_acct: Option<String>,
5484
5485 #[serde(
5487 rename = "@toAcct",
5488 default,
5489 deserialize_with = "deserialize_optional_string"
5490 )]
5491 pub to_acct: Option<String>,
5492
5493 #[serde(
5495 rename = "@subCategory",
5496 default,
5497 deserialize_with = "deserialize_optional_string"
5498 )]
5499 pub sub_category: Option<String>,
5500
5501 #[serde(
5503 rename = "@issuerCountryCode",
5504 default,
5505 deserialize_with = "deserialize_optional_string"
5506 )]
5507 pub issuer_country_code: Option<String>,
5508
5509 #[serde(
5511 rename = "@actionID",
5512 default,
5513 deserialize_with = "deserialize_optional_decimal"
5514 )]
5515 pub action_id: Option<Decimal>,
5516
5517 #[serde(
5519 rename = "@levelOfDetail",
5520 default,
5521 deserialize_with = "deserialize_optional_string"
5522 )]
5523 pub level_of_detail: Option<String>,
5524
5525 #[serde(
5527 rename = "@serialNumber",
5528 default,
5529 deserialize_with = "deserialize_optional_decimal"
5530 )]
5531 pub serial_number: Option<Decimal>,
5532
5533 #[serde(
5535 rename = "@deliveryType",
5536 default,
5537 deserialize_with = "deserialize_optional_decimal"
5538 )]
5539 pub delivery_type: Option<Decimal>,
5540
5541 #[serde(
5543 rename = "@commodityType",
5544 default,
5545 deserialize_with = "deserialize_optional_string"
5546 )]
5547 pub commodity_type: Option<String>,
5548
5549 #[serde(
5551 rename = "@fineness",
5552 default,
5553 deserialize_with = "deserialize_optional_decimal"
5554 )]
5555 pub fineness: Option<Decimal>,
5556
5557 #[serde(
5559 rename = "@weight",
5560 default,
5561 deserialize_with = "deserialize_optional_decimal"
5562 )]
5563 pub weight: Option<Decimal>,
5564}
5565
5566#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5568pub struct OpenDividendAccrual {
5569 #[serde(
5571 rename = "@accountId",
5572 default,
5573 deserialize_with = "deserialize_optional_string"
5574 )]
5575 pub account_id: Option<String>,
5576
5577 #[serde(rename = "@acctAlias", default)]
5579 pub acct_alias: Option<String>,
5580
5581 #[serde(rename = "@model", default)]
5583 pub model: Option<String>,
5584
5585 #[serde(rename = "@currency", default)]
5587 pub currency: Option<String>,
5588
5589 #[serde(
5591 rename = "@fxRateToBase",
5592 default,
5593 deserialize_with = "deserialize_optional_decimal"
5594 )]
5595 pub fx_rate_to_base: Option<Decimal>,
5596
5597 #[serde(rename = "@assetCategory", default)]
5599 pub asset_category: Option<AssetCategory>,
5600
5601 #[serde(
5603 rename = "@symbol",
5604 default,
5605 deserialize_with = "deserialize_optional_string"
5606 )]
5607 pub symbol: Option<String>,
5608
5609 #[serde(rename = "@description", default)]
5611 pub description: Option<String>,
5612
5613 #[serde(rename = "@conid", default)]
5615 pub conid: Option<String>,
5616
5617 #[serde(rename = "@securityID", default)]
5619 pub security_id: Option<String>,
5620
5621 #[serde(rename = "@securityIDType", default)]
5623 pub security_id_type: Option<String>,
5624
5625 #[serde(rename = "@cusip", default)]
5627 pub cusip: Option<String>,
5628
5629 #[serde(rename = "@isin", default)]
5631 pub isin: Option<String>,
5632
5633 #[serde(rename = "@figi", default)]
5635 pub figi: Option<String>,
5636
5637 #[serde(rename = "@listingExchange", default)]
5639 pub listing_exchange: Option<String>,
5640
5641 #[serde(
5643 rename = "@exDate",
5644 default,
5645 deserialize_with = "deserialize_optional_date"
5646 )]
5647 pub ex_date: Option<NaiveDate>,
5648
5649 #[serde(
5651 rename = "@payDate",
5652 default,
5653 deserialize_with = "deserialize_optional_date"
5654 )]
5655 pub pay_date: Option<NaiveDate>,
5656
5657 #[serde(
5659 rename = "@quantity",
5660 default,
5661 deserialize_with = "deserialize_optional_decimal"
5662 )]
5663 pub quantity: Option<Decimal>,
5664
5665 #[serde(
5667 rename = "@tax",
5668 default,
5669 deserialize_with = "deserialize_optional_decimal"
5670 )]
5671 pub tax: Option<Decimal>,
5672
5673 #[serde(
5675 rename = "@fee",
5676 default,
5677 deserialize_with = "deserialize_optional_decimal"
5678 )]
5679 pub fee: Option<Decimal>,
5680
5681 #[serde(
5683 rename = "@grossRate",
5684 default,
5685 deserialize_with = "deserialize_optional_decimal"
5686 )]
5687 pub gross_rate: Option<Decimal>,
5688
5689 #[serde(
5691 rename = "@grossAmount",
5692 default,
5693 deserialize_with = "deserialize_optional_decimal"
5694 )]
5695 pub gross_amount: Option<Decimal>,
5696
5697 #[serde(
5699 rename = "@netAmount",
5700 default,
5701 deserialize_with = "deserialize_optional_decimal"
5702 )]
5703 pub net_amount: Option<Decimal>,
5704
5705 #[serde(rename = "@code", default)]
5707 pub code: Option<String>,
5708
5709 #[serde(
5711 rename = "@underlyingConid",
5712 default,
5713 deserialize_with = "deserialize_optional_string"
5714 )]
5715 pub underlying_conid: Option<String>,
5716
5717 #[serde(
5719 rename = "@underlyingSecurityID",
5720 default,
5721 deserialize_with = "deserialize_optional_string"
5722 )]
5723 pub underlying_security_id: Option<String>,
5724
5725 #[serde(
5727 rename = "@underlyingListingExchange",
5728 default,
5729 deserialize_with = "deserialize_optional_string"
5730 )]
5731 pub underlying_listing_exchange: Option<String>,
5732
5733 #[serde(
5735 rename = "@sedol",
5736 default,
5737 deserialize_with = "deserialize_optional_string"
5738 )]
5739 pub sedol: Option<String>,
5740
5741 #[serde(
5743 rename = "@underlyingSymbol",
5744 default,
5745 deserialize_with = "deserialize_optional_string"
5746 )]
5747 pub underlying_symbol: Option<String>,
5748
5749 #[serde(
5751 rename = "@issuer",
5752 default,
5753 deserialize_with = "deserialize_optional_string"
5754 )]
5755 pub issuer: Option<String>,
5756
5757 #[serde(
5759 rename = "@multiplier",
5760 default,
5761 deserialize_with = "deserialize_optional_decimal"
5762 )]
5763 pub multiplier: Option<Decimal>,
5764
5765 #[serde(
5767 rename = "@strike",
5768 default,
5769 deserialize_with = "deserialize_optional_decimal"
5770 )]
5771 pub strike: Option<Decimal>,
5772
5773 #[serde(
5775 rename = "@expiry",
5776 default,
5777 deserialize_with = "deserialize_optional_date"
5778 )]
5779 pub expiry: Option<NaiveDate>,
5780
5781 #[serde(rename = "@putCall", default)]
5783 pub put_call: Option<PutCall>,
5784
5785 #[serde(
5787 rename = "@principalAdjustFactor",
5788 default,
5789 deserialize_with = "deserialize_optional_decimal"
5790 )]
5791 pub principal_adjust_factor: Option<Decimal>,
5792
5793 #[serde(
5795 rename = "@fromAcct",
5796 default,
5797 deserialize_with = "deserialize_optional_string"
5798 )]
5799 pub from_acct: Option<String>,
5800
5801 #[serde(
5803 rename = "@toAcct",
5804 default,
5805 deserialize_with = "deserialize_optional_string"
5806 )]
5807 pub to_acct: Option<String>,
5808
5809 #[serde(
5811 rename = "@serialNumber",
5812 default,
5813 deserialize_with = "deserialize_optional_string"
5814 )]
5815 pub serial_number: Option<String>,
5816
5817 #[serde(
5819 rename = "@deliveryType",
5820 default,
5821 deserialize_with = "deserialize_optional_string"
5822 )]
5823 pub delivery_type: Option<String>,
5824
5825 #[serde(
5827 rename = "@commodityType",
5828 default,
5829 deserialize_with = "deserialize_optional_string"
5830 )]
5831 pub commodity_type: Option<String>,
5832
5833 #[serde(
5835 rename = "@fineness",
5836 default,
5837 deserialize_with = "deserialize_optional_decimal"
5838 )]
5839 pub fineness: Option<Decimal>,
5840
5841 #[serde(
5843 rename = "@weight",
5844 default,
5845 deserialize_with = "deserialize_optional_string"
5846 )]
5847 pub weight: Option<String>,
5848
5849 #[serde(
5853 rename = "@actionID",
5854 default,
5855 deserialize_with = "deserialize_optional_string"
5856 )]
5857 pub action_id: Option<String>,
5858
5859 #[serde(
5861 rename = "@reportDate",
5862 default,
5863 deserialize_with = "deserialize_optional_date"
5864 )]
5865 pub report_date: Option<NaiveDate>,
5866
5867 #[serde(
5869 rename = "@issuerCountryCode",
5870 default,
5871 deserialize_with = "deserialize_optional_string"
5872 )]
5873 pub issuer_country_code: Option<String>,
5874
5875 #[serde(
5877 rename = "@subCategory",
5878 default,
5879 deserialize_with = "deserialize_optional_string"
5880 )]
5881 pub sub_category: Option<String>,
5882}
5883
5884#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5886pub struct InterestAccrualsCurrency {
5887 #[serde(
5889 rename = "@accountId",
5890 default,
5891 deserialize_with = "deserialize_optional_string"
5892 )]
5893 pub account_id: Option<String>,
5894
5895 #[serde(
5897 rename = "@currency",
5898 default,
5899 deserialize_with = "deserialize_optional_string"
5900 )]
5901 pub currency: Option<String>,
5902
5903 #[serde(
5905 rename = "@fromDate",
5906 default,
5907 deserialize_with = "deserialize_optional_date"
5908 )]
5909 pub from_date: Option<NaiveDate>,
5910
5911 #[serde(
5913 rename = "@toDate",
5914 default,
5915 deserialize_with = "deserialize_optional_date"
5916 )]
5917 pub to_date: Option<NaiveDate>,
5918
5919 #[serde(
5921 rename = "@startingAccrualBalance",
5922 default,
5923 deserialize_with = "deserialize_optional_decimal"
5924 )]
5925 pub starting_balance: Option<Decimal>,
5926
5927 #[serde(
5929 rename = "@interestAccrued",
5930 default,
5931 deserialize_with = "deserialize_optional_decimal"
5932 )]
5933 pub interest_accrued: Option<Decimal>,
5934
5935 #[serde(
5937 rename = "@endingAccrualBalance",
5938 default,
5939 deserialize_with = "deserialize_optional_decimal"
5940 )]
5941 pub ending_balance: Option<Decimal>,
5942
5943 #[serde(
5945 rename = "@accrualReversal",
5946 default,
5947 deserialize_with = "deserialize_optional_decimal"
5948 )]
5949 pub accrual_reversal: Option<Decimal>,
5950
5951 #[serde(
5953 rename = "@acctAlias",
5954 default,
5955 deserialize_with = "deserialize_optional_string"
5956 )]
5957 pub acct_alias: Option<String>,
5958
5959 #[serde(
5961 rename = "@model",
5962 default,
5963 deserialize_with = "deserialize_optional_string"
5964 )]
5965 pub model: Option<String>,
5966
5967 #[serde(
5969 rename = "@fxTranslation",
5970 default,
5971 deserialize_with = "deserialize_optional_decimal"
5972 )]
5973 pub fx_translation: Option<Decimal>,
5974}
5975
5976#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
5978pub struct Transfer {
5979 #[serde(
5981 rename = "@accountId",
5982 default,
5983 deserialize_with = "deserialize_optional_string"
5984 )]
5985 pub account_id: Option<String>,
5986
5987 #[serde(rename = "@acctAlias", default)]
5989 pub acct_alias: Option<String>,
5990
5991 #[serde(rename = "@model", default)]
5993 pub model: Option<String>,
5994
5995 #[serde(rename = "@transactionID", default)]
5997 pub transaction_id: Option<String>,
5998
5999 #[serde(rename = "@type", default)]
6001 pub transfer_type: Option<TransferType>,
6002
6003 #[serde(rename = "@conid", default)]
6005 pub conid: Option<String>,
6006
6007 #[serde(
6009 rename = "@symbol",
6010 default,
6011 deserialize_with = "deserialize_optional_string"
6012 )]
6013 pub symbol: Option<String>,
6014
6015 #[serde(rename = "@description", default)]
6017 pub description: Option<String>,
6018
6019 #[serde(rename = "@assetCategory", default)]
6021 pub asset_category: Option<AssetCategory>,
6022
6023 #[serde(rename = "@cusip", default)]
6026 pub cusip: Option<String>,
6027
6028 #[serde(rename = "@isin", default)]
6030 pub isin: Option<String>,
6031
6032 #[serde(rename = "@figi", default)]
6034 pub figi: Option<String>,
6035
6036 #[serde(rename = "@listingExchange", default)]
6038 pub listing_exchange: Option<String>,
6039
6040 #[serde(
6042 rename = "@quantity",
6043 default,
6044 deserialize_with = "deserialize_optional_decimal"
6045 )]
6046 pub quantity: Option<Decimal>,
6047
6048 #[serde(
6050 rename = "@transferPrice",
6051 default,
6052 deserialize_with = "deserialize_optional_decimal"
6053 )]
6054 pub transfer_price: Option<Decimal>,
6055
6056 #[serde(
6058 rename = "@positionAmount",
6059 default,
6060 deserialize_with = "deserialize_optional_decimal"
6061 )]
6062 pub position_amount: Option<Decimal>,
6063
6064 #[serde(
6066 rename = "@positionAmountInBase",
6067 default,
6068 deserialize_with = "deserialize_optional_decimal"
6069 )]
6070 pub position_amount_in_base: Option<Decimal>,
6071
6072 #[serde(
6074 rename = "@cashTransfer",
6075 default,
6076 deserialize_with = "deserialize_optional_decimal"
6077 )]
6078 pub cash_transfer: Option<Decimal>,
6079
6080 #[serde(rename = "@currency", default)]
6082 pub currency: Option<String>,
6083
6084 #[serde(
6086 rename = "@fxRateToBase",
6087 default,
6088 deserialize_with = "deserialize_optional_decimal"
6089 )]
6090 pub fx_rate_to_base: Option<Decimal>,
6091
6092 #[serde(rename = "@direction", default)]
6094 pub direction: Option<String>,
6095
6096 #[serde(
6098 rename = "@date",
6099 default,
6100 deserialize_with = "deserialize_optional_date"
6101 )]
6102 pub date: Option<NaiveDate>,
6103
6104 #[serde(rename = "@ppiPayerPayeeAccount", default)]
6106 pub ppi_payer_payee_account: Option<String>,
6107
6108 #[serde(rename = "@deliveringReceivingBroker", default)]
6110 pub delivering_receiving_broker: Option<String>,
6111
6112 #[serde(
6115 rename = "@strike",
6116 default,
6117 deserialize_with = "deserialize_optional_decimal"
6118 )]
6119 pub strike: Option<Decimal>,
6120
6121 #[serde(
6123 rename = "@expiry",
6124 default,
6125 deserialize_with = "deserialize_optional_date"
6126 )]
6127 pub expiry: Option<NaiveDate>,
6128
6129 #[serde(rename = "@putCall", default)]
6131 pub put_call: Option<String>,
6132
6133 #[serde(
6135 rename = "@multiplier",
6136 default,
6137 deserialize_with = "deserialize_optional_decimal"
6138 )]
6139 pub multiplier: Option<Decimal>,
6140
6141 #[serde(
6143 rename = "@subCategory",
6144 default,
6145 deserialize_with = "deserialize_optional_string"
6146 )]
6147 pub sub_category: Option<String>,
6148
6149 #[serde(
6151 rename = "@securityID",
6152 default,
6153 deserialize_with = "deserialize_optional_string"
6154 )]
6155 pub security_id: Option<String>,
6156
6157 #[serde(
6159 rename = "@underlyingSecurityID",
6160 default,
6161 deserialize_with = "deserialize_optional_string"
6162 )]
6163 pub underlying_security_id: Option<String>,
6164
6165 #[serde(
6167 rename = "@underlyingListingExchange",
6168 default,
6169 deserialize_with = "deserialize_optional_string"
6170 )]
6171 pub underlying_listing_exchange: Option<String>,
6172
6173 #[serde(
6175 rename = "@reportDate",
6176 default,
6177 deserialize_with = "deserialize_optional_date"
6178 )]
6179 pub report_date: Option<NaiveDate>,
6180
6181 #[serde(
6183 rename = "@underlyingConid",
6184 default,
6185 deserialize_with = "deserialize_optional_string"
6186 )]
6187 pub underlying_conid: Option<String>,
6188
6189 #[serde(
6191 rename = "@dateTime",
6192 default,
6193 deserialize_with = "deserialize_optional_string"
6194 )]
6195 pub date_time: Option<String>,
6196
6197 #[serde(
6199 rename = "@account",
6200 default,
6201 deserialize_with = "deserialize_optional_string"
6202 )]
6203 pub account: Option<String>,
6204
6205 #[serde(
6207 rename = "@deliveringBroker",
6208 default,
6209 deserialize_with = "deserialize_optional_string"
6210 )]
6211 pub delivering_broker: Option<String>,
6212
6213 #[serde(
6215 rename = "@capitalGainsPnl",
6216 default,
6217 deserialize_with = "deserialize_optional_decimal"
6218 )]
6219 pub capital_gains_pnl: Option<Decimal>,
6220
6221 #[serde(
6223 rename = "@code",
6224 default,
6225 deserialize_with = "deserialize_optional_string"
6226 )]
6227 pub code: Option<String>,
6228
6229 #[serde(
6231 rename = "@clientReference",
6232 default,
6233 deserialize_with = "deserialize_optional_string"
6234 )]
6235 pub client_reference: Option<String>,
6236
6237 #[serde(
6239 rename = "@sedol",
6240 default,
6241 deserialize_with = "deserialize_optional_string"
6242 )]
6243 pub sedol: Option<String>,
6244
6245 #[serde(
6247 rename = "@securityIDType",
6248 default,
6249 deserialize_with = "deserialize_optional_string"
6250 )]
6251 pub security_id_type: Option<String>,
6252
6253 #[serde(
6255 rename = "@underlyingSymbol",
6256 default,
6257 deserialize_with = "deserialize_optional_string"
6258 )]
6259 pub underlying_symbol: Option<String>,
6260
6261 #[serde(
6263 rename = "@issuer",
6264 default,
6265 deserialize_with = "deserialize_optional_string"
6266 )]
6267 pub issuer: Option<String>,
6268
6269 #[serde(
6271 rename = "@principalAdjustFactor",
6272 default,
6273 deserialize_with = "deserialize_optional_decimal"
6274 )]
6275 pub principal_adjust_factor: Option<Decimal>,
6276
6277 #[serde(
6279 rename = "@company",
6280 default,
6281 deserialize_with = "deserialize_optional_string"
6282 )]
6283 pub company: Option<String>,
6284
6285 #[serde(
6287 rename = "@accountName",
6288 default,
6289 deserialize_with = "deserialize_optional_string"
6290 )]
6291 pub account_name: Option<String>,
6292
6293 #[serde(
6295 rename = "@pnlAmount",
6296 default,
6297 deserialize_with = "deserialize_optional_decimal"
6298 )]
6299 pub pnl_amount: Option<Decimal>,
6300
6301 #[serde(
6303 rename = "@pnlAmountInBase",
6304 default,
6305 deserialize_with = "deserialize_optional_decimal"
6306 )]
6307 pub pnl_amount_in_base: Option<Decimal>,
6308
6309 #[serde(
6311 rename = "@fxPnl",
6312 default,
6313 deserialize_with = "deserialize_optional_decimal"
6314 )]
6315 pub fx_pnl: Option<Decimal>,
6316
6317 #[serde(
6319 rename = "@serialNumber",
6320 default,
6321 deserialize_with = "deserialize_optional_string"
6322 )]
6323 pub serial_number: Option<String>,
6324
6325 #[serde(
6327 rename = "@deliveryType",
6328 default,
6329 deserialize_with = "deserialize_optional_string"
6330 )]
6331 pub delivery_type: Option<String>,
6332
6333 #[serde(
6335 rename = "@commodityType",
6336 default,
6337 deserialize_with = "deserialize_optional_string"
6338 )]
6339 pub commodity_type: Option<String>,
6340
6341 #[serde(
6343 rename = "@fineness",
6344 default,
6345 deserialize_with = "deserialize_optional_decimal"
6346 )]
6347 pub fineness: Option<Decimal>,
6348
6349 #[serde(
6351 rename = "@weight",
6352 default,
6353 deserialize_with = "deserialize_optional_string"
6354 )]
6355 pub weight: Option<String>,
6356
6357 #[serde(
6359 rename = "@settleDate",
6360 default,
6361 deserialize_with = "deserialize_optional_date"
6362 )]
6363 pub settle_date: Option<NaiveDate>,
6364
6365 #[serde(
6367 rename = "@issuerCountryCode",
6368 default,
6369 deserialize_with = "deserialize_optional_string"
6370 )]
6371 pub issuer_country_code: Option<String>,
6372
6373 #[serde(
6375 rename = "@levelOfDetail",
6376 default,
6377 deserialize_with = "deserialize_optional_string"
6378 )]
6379 pub level_of_detail: Option<String>,
6380
6381 #[serde(
6383 rename = "@positionInstructionID",
6384 default,
6385 deserialize_with = "deserialize_optional_string"
6386 )]
6387 pub position_instruction_id: Option<String>,
6388
6389 #[serde(
6391 rename = "@positionInstructionSetID",
6392 default,
6393 deserialize_with = "deserialize_optional_string"
6394 )]
6395 pub position_instruction_set_id: Option<String>,
6396}
6397
6398#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
6407pub struct MTMPerformanceSummaryUnderlying {
6408 #[serde(
6410 rename = "@accountId",
6411 default,
6412 deserialize_with = "deserialize_optional_string"
6413 )]
6414 pub account_id: Option<String>,
6415
6416 #[serde(rename = "@acctAlias", default)]
6418 pub acct_alias: Option<String>,
6419
6420 #[serde(rename = "@model", default)]
6422 pub model: Option<String>,
6423
6424 #[serde(
6426 rename = "@reportDate",
6427 default,
6428 deserialize_with = "deserialize_optional_date"
6429 )]
6430 pub report_date: Option<NaiveDate>,
6431
6432 #[serde(rename = "@symbol", default)]
6434 pub symbol: Option<String>,
6435
6436 #[serde(rename = "@description", default)]
6438 pub description: Option<String>,
6439
6440 #[serde(rename = "@conid", default)]
6442 pub conid: Option<String>,
6443
6444 #[serde(rename = "@assetCategory", default)]
6446 pub asset_category: Option<AssetCategory>,
6447
6448 #[serde(rename = "@cusip", default)]
6451 pub cusip: Option<String>,
6452
6453 #[serde(rename = "@isin", default)]
6455 pub isin: Option<String>,
6456
6457 #[serde(rename = "@listingExchange", default)]
6459 pub listing_exchange: Option<String>,
6460
6461 #[serde(rename = "@underlyingSymbol", default)]
6463 pub underlying_symbol: Option<String>,
6464
6465 #[serde(rename = "@underlyingConid", default)]
6467 pub underlying_conid: Option<String>,
6468
6469 #[serde(rename = "@underlyingListingExchange", default)]
6471 pub underlying_listing_exchange: Option<String>,
6472
6473 #[serde(
6476 rename = "@costAdj",
6477 default,
6478 deserialize_with = "deserialize_optional_decimal"
6479 )]
6480 pub cost_adj: Option<Decimal>,
6481
6482 #[serde(
6484 rename = "@realizedSTProfit",
6485 default,
6486 deserialize_with = "deserialize_optional_decimal"
6487 )]
6488 pub realized_st_profit: Option<Decimal>,
6489
6490 #[serde(
6492 rename = "@realizedSTLoss",
6493 default,
6494 deserialize_with = "deserialize_optional_decimal"
6495 )]
6496 pub realized_st_loss: Option<Decimal>,
6497
6498 #[serde(
6500 rename = "@realizedLTProfit",
6501 default,
6502 deserialize_with = "deserialize_optional_decimal"
6503 )]
6504 pub realized_lt_profit: Option<Decimal>,
6505
6506 #[serde(
6508 rename = "@realizedLTLoss",
6509 default,
6510 deserialize_with = "deserialize_optional_decimal"
6511 )]
6512 pub realized_lt_loss: Option<Decimal>,
6513
6514 #[serde(
6516 rename = "@unrealizedSTProfit",
6517 default,
6518 deserialize_with = "deserialize_optional_decimal"
6519 )]
6520 pub unrealized_st_profit: Option<Decimal>,
6521
6522 #[serde(
6524 rename = "@unrealizedSTLoss",
6525 default,
6526 deserialize_with = "deserialize_optional_decimal"
6527 )]
6528 pub unrealized_st_loss: Option<Decimal>,
6529
6530 #[serde(
6532 rename = "@unrealizedLTProfit",
6533 default,
6534 deserialize_with = "deserialize_optional_decimal"
6535 )]
6536 pub unrealized_lt_profit: Option<Decimal>,
6537
6538 #[serde(
6540 rename = "@unrealizedLTLoss",
6541 default,
6542 deserialize_with = "deserialize_optional_decimal"
6543 )]
6544 pub unrealized_lt_loss: Option<Decimal>,
6545
6546 #[serde(
6548 rename = "@transactionMtm",
6549 default,
6550 deserialize_with = "deserialize_optional_decimal"
6551 )]
6552 pub transaction_mtm: Option<Decimal>,
6553
6554 #[serde(
6556 rename = "@commissions",
6557 default,
6558 deserialize_with = "deserialize_optional_decimal"
6559 )]
6560 pub commissions: Option<Decimal>,
6561
6562 #[serde(
6564 rename = "@other",
6565 default,
6566 deserialize_with = "deserialize_optional_decimal"
6567 )]
6568 pub other: Option<Decimal>,
6569
6570 #[serde(rename = "@levelOfDetail", default)]
6572 pub level_of_detail: Option<String>,
6573
6574 #[serde(
6576 rename = "@securityID",
6577 default,
6578 deserialize_with = "deserialize_optional_string"
6579 )]
6580 pub security_id: Option<String>,
6581
6582 #[serde(
6584 rename = "@securityIDType",
6585 default,
6586 deserialize_with = "deserialize_optional_string"
6587 )]
6588 pub security_id_type: Option<String>,
6589
6590 #[serde(
6592 rename = "@sedol",
6593 default,
6594 deserialize_with = "deserialize_optional_string"
6595 )]
6596 pub sedol: Option<String>,
6597
6598 #[serde(
6600 rename = "@underlyingSecurityID",
6601 default,
6602 deserialize_with = "deserialize_optional_string"
6603 )]
6604 pub underlying_security_id: Option<String>,
6605
6606 #[serde(
6608 rename = "@issuer",
6609 default,
6610 deserialize_with = "deserialize_optional_string"
6611 )]
6612 pub issuer: Option<String>,
6613
6614 #[serde(
6616 rename = "@multiplier",
6617 default,
6618 deserialize_with = "deserialize_optional_decimal"
6619 )]
6620 pub multiplier: Option<Decimal>,
6621
6622 #[serde(
6624 rename = "@strike",
6625 default,
6626 deserialize_with = "deserialize_optional_decimal"
6627 )]
6628 pub strike: Option<Decimal>,
6629
6630 #[serde(
6632 rename = "@expiry",
6633 default,
6634 deserialize_with = "deserialize_optional_date"
6635 )]
6636 pub expiry: Option<NaiveDate>,
6637
6638 #[serde(rename = "@putCall", default)]
6640 pub put_call: Option<PutCall>,
6641
6642 #[serde(
6644 rename = "@principalAdjustFactor",
6645 default,
6646 deserialize_with = "deserialize_optional_decimal"
6647 )]
6648 pub principal_adjust_factor: Option<Decimal>,
6649
6650 #[serde(
6652 rename = "@prevCloseQuantity",
6653 default,
6654 deserialize_with = "deserialize_optional_decimal"
6655 )]
6656 pub prev_close_quantity: Option<Decimal>,
6657
6658 #[serde(
6660 rename = "@prevClosePrice",
6661 default,
6662 deserialize_with = "deserialize_optional_decimal"
6663 )]
6664 pub prev_close_price: Option<Decimal>,
6665
6666 #[serde(
6668 rename = "@closeQuantity",
6669 default,
6670 deserialize_with = "deserialize_optional_decimal"
6671 )]
6672 pub close_quantity: Option<Decimal>,
6673
6674 #[serde(
6676 rename = "@closePrice",
6677 default,
6678 deserialize_with = "deserialize_optional_decimal"
6679 )]
6680 pub close_price: Option<Decimal>,
6681
6682 #[serde(
6684 rename = "@priorOpenMtm",
6685 default,
6686 deserialize_with = "deserialize_optional_decimal"
6687 )]
6688 pub prior_open_mtm: Option<Decimal>,
6689
6690 #[serde(
6692 rename = "@total",
6693 default,
6694 deserialize_with = "deserialize_optional_decimal"
6695 )]
6696 pub total: Option<Decimal>,
6697
6698 #[serde(
6700 rename = "@code",
6701 default,
6702 deserialize_with = "deserialize_optional_string"
6703 )]
6704 pub code: Option<String>,
6705
6706 #[serde(
6708 rename = "@corpActionMtm",
6709 default,
6710 deserialize_with = "deserialize_optional_decimal"
6711 )]
6712 pub corp_action_mtm: Option<Decimal>,
6713
6714 #[serde(
6716 rename = "@dividends",
6717 default,
6718 deserialize_with = "deserialize_optional_decimal"
6719 )]
6720 pub dividends: Option<Decimal>,
6721
6722 #[serde(
6724 rename = "@serialNumber",
6725 default,
6726 deserialize_with = "deserialize_optional_string"
6727 )]
6728 pub serial_number: Option<String>,
6729
6730 #[serde(
6732 rename = "@deliveryType",
6733 default,
6734 deserialize_with = "deserialize_optional_string"
6735 )]
6736 pub delivery_type: Option<String>,
6737
6738 #[serde(
6740 rename = "@commodityType",
6741 default,
6742 deserialize_with = "deserialize_optional_string"
6743 )]
6744 pub commodity_type: Option<String>,
6745
6746 #[serde(
6748 rename = "@fineness",
6749 default,
6750 deserialize_with = "deserialize_optional_decimal"
6751 )]
6752 pub fineness: Option<Decimal>,
6753
6754 #[serde(
6756 rename = "@weight",
6757 default,
6758 deserialize_with = "deserialize_optional_string"
6759 )]
6760 pub weight: Option<String>,
6761
6762 #[serde(
6764 rename = "@otherWithAccruals",
6765 default,
6766 deserialize_with = "deserialize_optional_decimal"
6767 )]
6768 pub other_with_accruals: Option<Decimal>,
6769
6770 #[serde(
6772 rename = "@totalWithAccruals",
6773 default,
6774 deserialize_with = "deserialize_optional_decimal"
6775 )]
6776 pub total_with_accruals: Option<Decimal>,
6777
6778 #[serde(
6780 rename = "@subCategory",
6781 default,
6782 deserialize_with = "deserialize_optional_string"
6783 )]
6784 pub sub_category: Option<String>,
6785
6786 #[serde(
6788 rename = "@figi",
6789 default,
6790 deserialize_with = "deserialize_optional_string"
6791 )]
6792 pub figi: Option<String>,
6793
6794 #[serde(
6796 rename = "@issuerCountryCode",
6797 default,
6798 deserialize_with = "deserialize_optional_string"
6799 )]
6800 pub issuer_country_code: Option<String>,
6801}
6802
6803#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
6808pub struct FIFOPerformanceSummaryUnderlying {
6809 #[serde(
6811 rename = "@accountId",
6812 default,
6813 deserialize_with = "deserialize_optional_string"
6814 )]
6815 pub account_id: Option<String>,
6816
6817 #[serde(rename = "@acctAlias", default)]
6819 pub acct_alias: Option<String>,
6820
6821 #[serde(rename = "@model", default)]
6823 pub model: Option<String>,
6824
6825 #[serde(
6827 rename = "@reportDate",
6828 default,
6829 deserialize_with = "deserialize_optional_date"
6830 )]
6831 pub report_date: Option<NaiveDate>,
6832
6833 #[serde(rename = "@symbol", default)]
6835 pub symbol: Option<String>,
6836
6837 #[serde(rename = "@description", default)]
6839 pub description: Option<String>,
6840
6841 #[serde(rename = "@conid", default)]
6843 pub conid: Option<String>,
6844
6845 #[serde(rename = "@assetCategory", default)]
6847 pub asset_category: Option<AssetCategory>,
6848
6849 #[serde(rename = "@cusip", default)]
6852 pub cusip: Option<String>,
6853
6854 #[serde(rename = "@isin", default)]
6856 pub isin: Option<String>,
6857
6858 #[serde(rename = "@listingExchange", default)]
6860 pub listing_exchange: Option<String>,
6861
6862 #[serde(rename = "@underlyingSymbol", default)]
6864 pub underlying_symbol: Option<String>,
6865
6866 #[serde(rename = "@underlyingConid", default)]
6868 pub underlying_conid: Option<String>,
6869
6870 #[serde(
6873 rename = "@realizedShortTermPnl",
6874 default,
6875 deserialize_with = "deserialize_optional_decimal"
6876 )]
6877 pub realized_short_term_pnl: Option<Decimal>,
6878
6879 #[serde(
6881 rename = "@realizedLongTermPnl",
6882 default,
6883 deserialize_with = "deserialize_optional_decimal"
6884 )]
6885 pub realized_long_term_pnl: Option<Decimal>,
6886
6887 #[serde(
6889 rename = "@realizedTotalPnl",
6890 default,
6891 deserialize_with = "deserialize_optional_decimal"
6892 )]
6893 pub realized_total_pnl: Option<Decimal>,
6894
6895 #[serde(
6897 rename = "@unrealizedShortTermPnl",
6898 default,
6899 deserialize_with = "deserialize_optional_decimal"
6900 )]
6901 pub unrealized_short_term_pnl: Option<Decimal>,
6902
6903 #[serde(
6905 rename = "@unrealizedLongTermPnl",
6906 default,
6907 deserialize_with = "deserialize_optional_decimal"
6908 )]
6909 pub unrealized_long_term_pnl: Option<Decimal>,
6910
6911 #[serde(
6913 rename = "@unrealizedTotalPnl",
6914 default,
6915 deserialize_with = "deserialize_optional_decimal"
6916 )]
6917 pub unrealized_total_pnl: Option<Decimal>,
6918
6919 #[serde(
6921 rename = "@totalIncome",
6922 default,
6923 deserialize_with = "deserialize_optional_decimal"
6924 )]
6925 pub total_income: Option<Decimal>,
6926
6927 #[serde(rename = "@levelOfDetail", default)]
6929 pub level_of_detail: Option<String>,
6930
6931 #[serde(
6933 rename = "@securityID",
6934 default,
6935 deserialize_with = "deserialize_optional_string"
6936 )]
6937 pub security_id: Option<String>,
6938
6939 #[serde(
6941 rename = "@underlyingSecurityID",
6942 default,
6943 deserialize_with = "deserialize_optional_string"
6944 )]
6945 pub underlying_security_id: Option<String>,
6946
6947 #[serde(
6949 rename = "@underlyingListingExchange",
6950 default,
6951 deserialize_with = "deserialize_optional_string"
6952 )]
6953 pub underlying_listing_exchange: Option<String>,
6954
6955 #[serde(
6957 rename = "@realizedSTProfit",
6958 default,
6959 deserialize_with = "deserialize_optional_decimal"
6960 )]
6961 pub realized_st_profit: Option<Decimal>,
6962
6963 #[serde(
6965 rename = "@realizedSTLoss",
6966 default,
6967 deserialize_with = "deserialize_optional_decimal"
6968 )]
6969 pub realized_st_loss: Option<Decimal>,
6970
6971 #[serde(
6973 rename = "@realizedLTProfit",
6974 default,
6975 deserialize_with = "deserialize_optional_decimal"
6976 )]
6977 pub realized_lt_profit: Option<Decimal>,
6978
6979 #[serde(
6981 rename = "@realizedLTLoss",
6982 default,
6983 deserialize_with = "deserialize_optional_decimal"
6984 )]
6985 pub realized_lt_loss: Option<Decimal>,
6986
6987 #[serde(
6989 rename = "@totalRealizedPnl",
6990 default,
6991 deserialize_with = "deserialize_optional_decimal"
6992 )]
6993 pub total_realized_pnl: Option<Decimal>,
6994
6995 #[serde(
6997 rename = "@unrealizedProfit",
6998 default,
6999 deserialize_with = "deserialize_optional_decimal"
7000 )]
7001 pub unrealized_profit: Option<Decimal>,
7002
7003 #[serde(
7005 rename = "@unrealizedLoss",
7006 default,
7007 deserialize_with = "deserialize_optional_decimal"
7008 )]
7009 pub unrealized_loss: Option<Decimal>,
7010
7011 #[serde(
7013 rename = "@totalUnrealizedPnl",
7014 default,
7015 deserialize_with = "deserialize_optional_decimal"
7016 )]
7017 pub total_unrealized_pnl: Option<Decimal>,
7018
7019 #[serde(
7021 rename = "@totalFifoPnl",
7022 default,
7023 deserialize_with = "deserialize_optional_decimal"
7024 )]
7025 pub total_fifo_pnl: Option<Decimal>,
7026
7027 #[serde(
7029 rename = "@totalRealizedCapitalGainsPnl",
7030 default,
7031 deserialize_with = "deserialize_optional_decimal"
7032 )]
7033 pub total_realized_capital_gains_pnl: Option<Decimal>,
7034
7035 #[serde(
7037 rename = "@totalRealizedFxPnl",
7038 default,
7039 deserialize_with = "deserialize_optional_decimal"
7040 )]
7041 pub total_realized_fx_pnl: Option<Decimal>,
7042
7043 #[serde(
7045 rename = "@totalUnrealizedCapitalGainsPnl",
7046 default,
7047 deserialize_with = "deserialize_optional_decimal"
7048 )]
7049 pub total_unrealized_capital_gains_pnl: Option<Decimal>,
7050
7051 #[serde(
7053 rename = "@totalUnrealizedFxPnl",
7054 default,
7055 deserialize_with = "deserialize_optional_decimal"
7056 )]
7057 pub total_unrealized_fx_pnl: Option<Decimal>,
7058
7059 #[serde(
7061 rename = "@totalCapitalGainsPnl",
7062 default,
7063 deserialize_with = "deserialize_optional_decimal"
7064 )]
7065 pub total_capital_gains_pnl: Option<Decimal>,
7066
7067 #[serde(
7069 rename = "@totalFxPnl",
7070 default,
7071 deserialize_with = "deserialize_optional_decimal"
7072 )]
7073 pub total_fx_pnl: Option<Decimal>,
7074
7075 #[serde(
7077 rename = "@transferredPnl",
7078 default,
7079 deserialize_with = "deserialize_optional_decimal"
7080 )]
7081 pub transferred_pnl: Option<Decimal>,
7082
7083 #[serde(
7085 rename = "@transferredCapitalGainsPnl",
7086 default,
7087 deserialize_with = "deserialize_optional_decimal"
7088 )]
7089 pub transferred_capital_gains_pnl: Option<Decimal>,
7090
7091 #[serde(
7093 rename = "@transferredFxPnl",
7094 default,
7095 deserialize_with = "deserialize_optional_decimal"
7096 )]
7097 pub transferred_fx_pnl: Option<Decimal>,
7098
7099 #[serde(
7101 rename = "@sedol",
7102 default,
7103 deserialize_with = "deserialize_optional_string"
7104 )]
7105 pub sedol: Option<String>,
7106
7107 #[serde(
7109 rename = "@securityIDType",
7110 default,
7111 deserialize_with = "deserialize_optional_string"
7112 )]
7113 pub security_id_type: Option<String>,
7114
7115 #[serde(
7117 rename = "@issuer",
7118 default,
7119 deserialize_with = "deserialize_optional_string"
7120 )]
7121 pub issuer: Option<String>,
7122
7123 #[serde(
7125 rename = "@multiplier",
7126 default,
7127 deserialize_with = "deserialize_optional_decimal"
7128 )]
7129 pub multiplier: Option<Decimal>,
7130
7131 #[serde(
7133 rename = "@strike",
7134 default,
7135 deserialize_with = "deserialize_optional_decimal"
7136 )]
7137 pub strike: Option<Decimal>,
7138
7139 #[serde(
7141 rename = "@expiry",
7142 default,
7143 deserialize_with = "deserialize_optional_date"
7144 )]
7145 pub expiry: Option<NaiveDate>,
7146
7147 #[serde(rename = "@putCall", default)]
7149 pub put_call: Option<PutCall>,
7150
7151 #[serde(
7153 rename = "@principalAdjustFactor",
7154 default,
7155 deserialize_with = "deserialize_optional_decimal"
7156 )]
7157 pub principal_adjust_factor: Option<Decimal>,
7158
7159 #[serde(
7161 rename = "@unrealizedSTProfit",
7162 default,
7163 deserialize_with = "deserialize_optional_decimal"
7164 )]
7165 pub unrealized_st_profit: Option<Decimal>,
7166
7167 #[serde(
7169 rename = "@unrealizedSTLoss",
7170 default,
7171 deserialize_with = "deserialize_optional_decimal"
7172 )]
7173 pub unrealized_st_loss: Option<Decimal>,
7174
7175 #[serde(
7177 rename = "@unrealizedLTProfit",
7178 default,
7179 deserialize_with = "deserialize_optional_decimal"
7180 )]
7181 pub unrealized_lt_profit: Option<Decimal>,
7182
7183 #[serde(
7185 rename = "@unrealizedLTLoss",
7186 default,
7187 deserialize_with = "deserialize_optional_decimal"
7188 )]
7189 pub unrealized_lt_loss: Option<Decimal>,
7190
7191 #[serde(
7193 rename = "@costAdj",
7194 default,
7195 deserialize_with = "deserialize_optional_decimal"
7196 )]
7197 pub cost_adj: Option<Decimal>,
7198
7199 #[serde(
7201 rename = "@code",
7202 default,
7203 deserialize_with = "deserialize_optional_string"
7204 )]
7205 pub code: Option<String>,
7206
7207 #[serde(
7209 rename = "@serialNumber",
7210 default,
7211 deserialize_with = "deserialize_optional_string"
7212 )]
7213 pub serial_number: Option<String>,
7214
7215 #[serde(
7217 rename = "@deliveryType",
7218 default,
7219 deserialize_with = "deserialize_optional_string"
7220 )]
7221 pub delivery_type: Option<String>,
7222
7223 #[serde(
7225 rename = "@commodityType",
7226 default,
7227 deserialize_with = "deserialize_optional_string"
7228 )]
7229 pub commodity_type: Option<String>,
7230
7231 #[serde(
7233 rename = "@fineness",
7234 default,
7235 deserialize_with = "deserialize_optional_decimal"
7236 )]
7237 pub fineness: Option<Decimal>,
7238
7239 #[serde(
7241 rename = "@weight",
7242 default,
7243 deserialize_with = "deserialize_optional_string"
7244 )]
7245 pub weight: Option<String>,
7246
7247 #[serde(
7249 rename = "@subCategory",
7250 default,
7251 deserialize_with = "deserialize_optional_string"
7252 )]
7253 pub sub_category: Option<String>,
7254
7255 #[serde(
7257 rename = "@figi",
7258 default,
7259 deserialize_with = "deserialize_optional_string"
7260 )]
7261 pub figi: Option<String>,
7262
7263 #[serde(
7265 rename = "@issuerCountryCode",
7266 default,
7267 deserialize_with = "deserialize_optional_string"
7268 )]
7269 pub issuer_country_code: Option<String>,
7270}
7271
7272#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
7274pub struct MTDYTDPerformanceSummary {
7275 #[serde(
7277 rename = "@accountId",
7278 default,
7279 deserialize_with = "deserialize_optional_string"
7280 )]
7281 pub account_id: Option<String>,
7282
7283 #[serde(rename = "@acctAlias", default)]
7285 pub acct_alias: Option<String>,
7286
7287 #[serde(rename = "@model", default)]
7289 pub model: Option<String>,
7290
7291 #[serde(rename = "@symbol", default)]
7293 pub symbol: Option<String>,
7294
7295 #[serde(rename = "@conid", default)]
7297 pub conid: Option<String>,
7298
7299 #[serde(rename = "@assetCategory", default)]
7301 pub asset_category: Option<AssetCategory>,
7302
7303 #[serde(
7306 rename = "@mtdRealizedPnl",
7307 default,
7308 deserialize_with = "deserialize_optional_decimal"
7309 )]
7310 pub mtd_realized_pnl: Option<Decimal>,
7311
7312 #[serde(
7314 rename = "@mtdUnrealizedPnl",
7315 default,
7316 deserialize_with = "deserialize_optional_decimal"
7317 )]
7318 pub mtd_unrealized_pnl: Option<Decimal>,
7319
7320 #[serde(
7322 rename = "@mtdCommissions",
7323 default,
7324 deserialize_with = "deserialize_optional_decimal"
7325 )]
7326 pub mtd_commissions: Option<Decimal>,
7327
7328 #[serde(
7330 rename = "@mtdFees",
7331 default,
7332 deserialize_with = "deserialize_optional_decimal"
7333 )]
7334 pub mtd_fees: Option<Decimal>,
7335
7336 #[serde(
7339 rename = "@ytdRealizedPnl",
7340 default,
7341 deserialize_with = "deserialize_optional_decimal"
7342 )]
7343 pub ytd_realized_pnl: Option<Decimal>,
7344
7345 #[serde(
7347 rename = "@ytdUnrealizedPnl",
7348 default,
7349 deserialize_with = "deserialize_optional_decimal"
7350 )]
7351 pub ytd_unrealized_pnl: Option<Decimal>,
7352
7353 #[serde(
7355 rename = "@ytdCommissions",
7356 default,
7357 deserialize_with = "deserialize_optional_decimal"
7358 )]
7359 pub ytd_commissions: Option<Decimal>,
7360
7361 #[serde(
7363 rename = "@ytdFees",
7364 default,
7365 deserialize_with = "deserialize_optional_decimal"
7366 )]
7367 pub ytd_fees: Option<Decimal>,
7368
7369 #[serde(rename = "@levelOfDetail", default)]
7371 pub level_of_detail: Option<String>,
7372
7373 #[serde(
7375 rename = "@description",
7376 default,
7377 deserialize_with = "deserialize_optional_string"
7378 )]
7379 pub description: Option<String>,
7380
7381 #[serde(
7383 rename = "@securityID",
7384 default,
7385 deserialize_with = "deserialize_optional_string"
7386 )]
7387 pub security_id: Option<String>,
7388
7389 #[serde(
7391 rename = "@cusip",
7392 default,
7393 deserialize_with = "deserialize_optional_string"
7394 )]
7395 pub cusip: Option<String>,
7396
7397 #[serde(
7399 rename = "@isin",
7400 default,
7401 deserialize_with = "deserialize_optional_string"
7402 )]
7403 pub isin: Option<String>,
7404
7405 #[serde(
7407 rename = "@listingExchange",
7408 default,
7409 deserialize_with = "deserialize_optional_string"
7410 )]
7411 pub listing_exchange: Option<String>,
7412
7413 #[serde(
7415 rename = "@underlyingConid",
7416 default,
7417 deserialize_with = "deserialize_optional_string"
7418 )]
7419 pub underlying_conid: Option<String>,
7420
7421 #[serde(
7423 rename = "@underlyingSecurityID",
7424 default,
7425 deserialize_with = "deserialize_optional_string"
7426 )]
7427 pub underlying_security_id: Option<String>,
7428
7429 #[serde(
7431 rename = "@underlyingListingExchange",
7432 default,
7433 deserialize_with = "deserialize_optional_string"
7434 )]
7435 pub underlying_listing_exchange: Option<String>,
7436
7437 #[serde(
7439 rename = "@mtmMTD",
7440 default,
7441 deserialize_with = "deserialize_optional_decimal"
7442 )]
7443 pub mtm_mtd: Option<Decimal>,
7444
7445 #[serde(
7447 rename = "@mtmYTD",
7448 default,
7449 deserialize_with = "deserialize_optional_decimal"
7450 )]
7451 pub mtm_ytd: Option<Decimal>,
7452
7453 #[serde(
7455 rename = "@realSTMTD",
7456 default,
7457 deserialize_with = "deserialize_optional_decimal"
7458 )]
7459 pub real_stmtd: Option<Decimal>,
7460
7461 #[serde(
7463 rename = "@realSTYTD",
7464 default,
7465 deserialize_with = "deserialize_optional_decimal"
7466 )]
7467 pub real_stytd: Option<Decimal>,
7468
7469 #[serde(
7471 rename = "@realLTMTD",
7472 default,
7473 deserialize_with = "deserialize_optional_decimal"
7474 )]
7475 pub real_ltmtd: Option<Decimal>,
7476
7477 #[serde(
7479 rename = "@realLTYTD",
7480 default,
7481 deserialize_with = "deserialize_optional_decimal"
7482 )]
7483 pub real_ltytd: Option<Decimal>,
7484
7485 #[serde(
7487 rename = "@securityIDType",
7488 default,
7489 deserialize_with = "deserialize_optional_string"
7490 )]
7491 pub security_id_type: Option<String>,
7492
7493 #[serde(
7495 rename = "@underlyingSymbol",
7496 default,
7497 deserialize_with = "deserialize_optional_string"
7498 )]
7499 pub underlying_symbol: Option<String>,
7500
7501 #[serde(
7503 rename = "@issuer",
7504 default,
7505 deserialize_with = "deserialize_optional_string"
7506 )]
7507 pub issuer: Option<String>,
7508
7509 #[serde(
7511 rename = "@multiplier",
7512 default,
7513 deserialize_with = "deserialize_optional_decimal"
7514 )]
7515 pub multiplier: Option<Decimal>,
7516
7517 #[serde(
7519 rename = "@strike",
7520 default,
7521 deserialize_with = "deserialize_optional_decimal"
7522 )]
7523 pub strike: Option<Decimal>,
7524
7525 #[serde(
7527 rename = "@expiry",
7528 default,
7529 deserialize_with = "deserialize_optional_date"
7530 )]
7531 pub expiry: Option<NaiveDate>,
7532
7533 #[serde(rename = "@putCall", default)]
7535 pub put_call: Option<PutCall>,
7536
7537 #[serde(
7539 rename = "@principalAdjustFactor",
7540 default,
7541 deserialize_with = "deserialize_optional_decimal"
7542 )]
7543 pub principal_adjust_factor: Option<Decimal>,
7544
7545 #[serde(
7547 rename = "@realizedPnlMTD",
7548 default,
7549 deserialize_with = "deserialize_optional_decimal"
7550 )]
7551 pub realized_pnl_mtd: Option<Decimal>,
7552
7553 #[serde(
7555 rename = "@realizedCapitalGainsPnlMTD",
7556 default,
7557 deserialize_with = "deserialize_optional_decimal"
7558 )]
7559 pub realized_capital_gains_pnl_mtd: Option<Decimal>,
7560
7561 #[serde(
7563 rename = "@realizedFxPnlMTD",
7564 default,
7565 deserialize_with = "deserialize_optional_decimal"
7566 )]
7567 pub realized_fx_pnl_mtd: Option<Decimal>,
7568
7569 #[serde(
7571 rename = "@realizedPnlYTD",
7572 default,
7573 deserialize_with = "deserialize_optional_decimal"
7574 )]
7575 pub realized_pnl_ytd: Option<Decimal>,
7576
7577 #[serde(
7579 rename = "@realizedCapitalGainsPnlYTD",
7580 default,
7581 deserialize_with = "deserialize_optional_decimal"
7582 )]
7583 pub realized_capital_gains_pnl_ytd: Option<Decimal>,
7584
7585 #[serde(
7587 rename = "@realizedFxPnlYTD",
7588 default,
7589 deserialize_with = "deserialize_optional_decimal"
7590 )]
7591 pub realized_fx_pnl_ytd: Option<Decimal>,
7592
7593 #[serde(
7595 rename = "@brokerFees",
7596 default,
7597 deserialize_with = "deserialize_optional_decimal"
7598 )]
7599 pub broker_fees: Option<Decimal>,
7600
7601 #[serde(
7603 rename = "@brokerFeesSec",
7604 default,
7605 deserialize_with = "deserialize_optional_decimal"
7606 )]
7607 pub broker_fees_sec: Option<Decimal>,
7608
7609 #[serde(
7611 rename = "@brokerFeesCom",
7612 default,
7613 deserialize_with = "deserialize_optional_decimal"
7614 )]
7615 pub broker_fees_com: Option<Decimal>,
7616
7617 #[serde(
7619 rename = "@brokerFeesMTD",
7620 default,
7621 deserialize_with = "deserialize_optional_decimal"
7622 )]
7623 pub broker_fees_mtd: Option<Decimal>,
7624
7625 #[serde(
7627 rename = "@brokerFeesYTD",
7628 default,
7629 deserialize_with = "deserialize_optional_decimal"
7630 )]
7631 pub broker_fees_ytd: Option<Decimal>,
7632
7633 #[serde(
7635 rename = "@serialNumber",
7636 default,
7637 deserialize_with = "deserialize_optional_string"
7638 )]
7639 pub serial_number: Option<String>,
7640
7641 #[serde(
7643 rename = "@deliveryType",
7644 default,
7645 deserialize_with = "deserialize_optional_string"
7646 )]
7647 pub delivery_type: Option<String>,
7648
7649 #[serde(
7651 rename = "@commodityType",
7652 default,
7653 deserialize_with = "deserialize_optional_string"
7654 )]
7655 pub commodity_type: Option<String>,
7656
7657 #[serde(
7659 rename = "@fineness",
7660 default,
7661 deserialize_with = "deserialize_optional_decimal"
7662 )]
7663 pub fineness: Option<Decimal>,
7664
7665 #[serde(
7667 rename = "@weight",
7668 default,
7669 deserialize_with = "deserialize_optional_string"
7670 )]
7671 pub weight: Option<String>,
7672}
7673
7674#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
7683pub struct StatementOfFundsLine {
7684 #[serde(
7686 rename = "@accountId",
7687 default,
7688 deserialize_with = "deserialize_optional_string"
7689 )]
7690 pub account_id: Option<String>,
7691
7692 #[serde(rename = "@acctAlias", default)]
7694 pub acct_alias: Option<String>,
7695
7696 #[serde(rename = "@model", default)]
7698 pub model: Option<String>,
7699
7700 #[serde(
7702 rename = "@reportDate",
7703 default,
7704 deserialize_with = "deserialize_optional_date"
7705 )]
7706 pub report_date: Option<NaiveDate>,
7707
7708 #[serde(
7710 rename = "@date",
7711 default,
7712 deserialize_with = "deserialize_optional_date"
7713 )]
7714 pub date: Option<NaiveDate>,
7715
7716 #[serde(rename = "@currency", default)]
7718 pub currency: Option<String>,
7719
7720 #[serde(rename = "@activityCode", default)]
7722 pub activity_code: Option<String>,
7723
7724 #[serde(rename = "@activityDescription", default)]
7726 pub activity_description: Option<String>,
7727
7728 #[serde(rename = "@tradeID", default)]
7730 pub trade_id: Option<String>,
7731
7732 #[serde(rename = "@symbol", default)]
7734 pub symbol: Option<String>,
7735
7736 #[serde(rename = "@conid", default)]
7738 pub conid: Option<String>,
7739
7740 #[serde(
7742 rename = "@debit",
7743 default,
7744 deserialize_with = "deserialize_optional_decimal"
7745 )]
7746 pub debit: Option<Decimal>,
7747
7748 #[serde(
7750 rename = "@credit",
7751 default,
7752 deserialize_with = "deserialize_optional_decimal"
7753 )]
7754 pub credit: Option<Decimal>,
7755
7756 #[serde(
7758 rename = "@amount",
7759 default,
7760 deserialize_with = "deserialize_optional_decimal"
7761 )]
7762 pub amount: Option<Decimal>,
7763
7764 #[serde(
7766 rename = "@balance",
7767 default,
7768 deserialize_with = "deserialize_optional_decimal"
7769 )]
7770 pub balance: Option<Decimal>,
7771
7772 #[serde(
7774 rename = "@fxRateToBase",
7775 default,
7776 deserialize_with = "deserialize_optional_decimal"
7777 )]
7778 pub fx_rate_to_base: Option<Decimal>,
7779
7780 #[serde(rename = "@levelOfDetail", default)]
7782 pub level_of_detail: Option<String>,
7783
7784 #[serde(rename = "@assetCategory", default)]
7786 pub asset_category: Option<AssetCategory>,
7787
7788 #[serde(
7790 rename = "@buySell",
7791 default,
7792 deserialize_with = "deserialize_optional_string"
7793 )]
7794 pub buy_sell: Option<String>,
7795
7796 #[serde(
7798 rename = "@description",
7799 default,
7800 deserialize_with = "deserialize_optional_string"
7801 )]
7802 pub description: Option<String>,
7803
7804 #[serde(
7806 rename = "@securityID",
7807 default,
7808 deserialize_with = "deserialize_optional_string"
7809 )]
7810 pub security_id: Option<String>,
7811
7812 #[serde(
7814 rename = "@securityIDType",
7815 default,
7816 deserialize_with = "deserialize_optional_string"
7817 )]
7818 pub security_id_type: Option<String>,
7819
7820 #[serde(
7822 rename = "@cusip",
7823 default,
7824 deserialize_with = "deserialize_optional_string"
7825 )]
7826 pub cusip: Option<String>,
7827
7828 #[serde(
7830 rename = "@isin",
7831 default,
7832 deserialize_with = "deserialize_optional_string"
7833 )]
7834 pub isin: Option<String>,
7835
7836 #[serde(
7838 rename = "@underlyingConid",
7839 default,
7840 deserialize_with = "deserialize_optional_string"
7841 )]
7842 pub underlying_conid: Option<String>,
7843
7844 #[serde(
7846 rename = "@underlyingSymbol",
7847 default,
7848 deserialize_with = "deserialize_optional_string"
7849 )]
7850 pub underlying_symbol: Option<String>,
7851
7852 #[serde(
7854 rename = "@issuer",
7855 default,
7856 deserialize_with = "deserialize_optional_string"
7857 )]
7858 pub issuer: Option<String>,
7859
7860 #[serde(
7862 rename = "@multiplier",
7863 default,
7864 deserialize_with = "deserialize_optional_decimal"
7865 )]
7866 pub multiplier: Option<Decimal>,
7867
7868 #[serde(
7870 rename = "@strike",
7871 default,
7872 deserialize_with = "deserialize_optional_decimal"
7873 )]
7874 pub strike: Option<Decimal>,
7875
7876 #[serde(
7878 rename = "@expiry",
7879 default,
7880 deserialize_with = "deserialize_optional_date"
7881 )]
7882 pub expiry: Option<NaiveDate>,
7883
7884 #[serde(rename = "@putCall", default)]
7886 pub put_call: Option<PutCall>,
7887
7888 #[serde(
7890 rename = "@principalAdjustFactor",
7891 default,
7892 deserialize_with = "deserialize_optional_decimal"
7893 )]
7894 pub principal_adjust_factor: Option<Decimal>,
7895
7896 #[serde(
7898 rename = "@listingExchange",
7899 default,
7900 deserialize_with = "deserialize_optional_string"
7901 )]
7902 pub listing_exchange: Option<String>,
7903
7904 #[serde(
7906 rename = "@underlyingSecurityID",
7907 default,
7908 deserialize_with = "deserialize_optional_string"
7909 )]
7910 pub underlying_security_id: Option<String>,
7911
7912 #[serde(
7914 rename = "@underlyingListingExchange",
7915 default,
7916 deserialize_with = "deserialize_optional_string"
7917 )]
7918 pub underlying_listing_exchange: Option<String>,
7919
7920 #[serde(
7922 rename = "@settleDate",
7923 default,
7924 deserialize_with = "deserialize_optional_date"
7925 )]
7926 pub settle_date: Option<NaiveDate>,
7927
7928 #[serde(
7930 rename = "@orderID",
7931 default,
7932 deserialize_with = "deserialize_optional_string"
7933 )]
7934 pub order_id: Option<String>,
7935
7936 #[serde(
7938 rename = "@tradeQuantity",
7939 default,
7940 deserialize_with = "deserialize_optional_decimal"
7941 )]
7942 pub trade_quantity: Option<Decimal>,
7943
7944 #[serde(
7946 rename = "@tradePrice",
7947 default,
7948 deserialize_with = "deserialize_optional_decimal"
7949 )]
7950 pub trade_price: Option<Decimal>,
7951
7952 #[serde(
7954 rename = "@tradeGross",
7955 default,
7956 deserialize_with = "deserialize_optional_decimal"
7957 )]
7958 pub trade_gross: Option<Decimal>,
7959
7960 #[serde(
7962 rename = "@tradeCommission",
7963 default,
7964 deserialize_with = "deserialize_optional_decimal"
7965 )]
7966 pub trade_commission: Option<Decimal>,
7967
7968 #[serde(
7970 rename = "@tradeTax",
7971 default,
7972 deserialize_with = "deserialize_optional_decimal"
7973 )]
7974 pub trade_tax: Option<Decimal>,
7975
7976 #[serde(
7978 rename = "@tradeCode",
7979 default,
7980 deserialize_with = "deserialize_optional_string"
7981 )]
7982 pub trade_code: Option<String>,
7983
7984 #[serde(
7986 rename = "@transactionID",
7987 default,
7988 deserialize_with = "deserialize_optional_string"
7989 )]
7990 pub transaction_id: Option<String>,
7991
7992 #[serde(
7994 rename = "@serialNumber",
7995 default,
7996 deserialize_with = "deserialize_optional_string"
7997 )]
7998 pub serial_number: Option<String>,
7999
8000 #[serde(
8002 rename = "@deliveryType",
8003 default,
8004 deserialize_with = "deserialize_optional_string"
8005 )]
8006 pub delivery_type: Option<String>,
8007
8008 #[serde(
8010 rename = "@commodityType",
8011 default,
8012 deserialize_with = "deserialize_optional_string"
8013 )]
8014 pub commodity_type: Option<String>,
8015
8016 #[serde(
8018 rename = "@fineness",
8019 default,
8020 deserialize_with = "deserialize_optional_decimal"
8021 )]
8022 pub fineness: Option<Decimal>,
8023
8024 #[serde(
8026 rename = "@weight",
8027 default,
8028 deserialize_with = "deserialize_optional_string"
8029 )]
8030 pub weight: Option<String>,
8031
8032 #[serde(
8034 rename = "@actionID",
8035 default,
8036 deserialize_with = "deserialize_optional_string"
8037 )]
8038 pub action_id: Option<String>,
8039
8040 #[serde(
8042 rename = "@subCategory",
8043 default,
8044 deserialize_with = "deserialize_optional_string"
8045 )]
8046 pub sub_category: Option<String>,
8047
8048 #[serde(
8050 rename = "@figi",
8051 default,
8052 deserialize_with = "deserialize_optional_string"
8053 )]
8054 pub figi: Option<String>,
8055
8056 #[serde(
8058 rename = "@issuerCountryCode",
8059 default,
8060 deserialize_with = "deserialize_optional_string"
8061 )]
8062 pub issuer_country_code: Option<String>,
8063
8064 #[serde(
8066 rename = "@relatedTradeID",
8067 default,
8068 deserialize_with = "deserialize_optional_string"
8069 )]
8070 pub related_trade_id: Option<String>,
8071
8072 #[serde(
8074 rename = "@origTransactionID",
8075 default,
8076 deserialize_with = "deserialize_optional_string"
8077 )]
8078 pub orig_transaction_id: Option<String>,
8079
8080 #[serde(
8082 rename = "@relatedTransactionID",
8083 default,
8084 deserialize_with = "deserialize_optional_string"
8085 )]
8086 pub related_transaction_id: Option<String>,
8087}
8088
8089#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8098pub struct ChangeInPositionValue {
8099 #[serde(
8101 rename = "@accountId",
8102 default,
8103 deserialize_with = "deserialize_optional_string"
8104 )]
8105 pub account_id: Option<String>,
8106
8107 #[serde(rename = "@acctAlias", default)]
8109 pub acct_alias: Option<String>,
8110
8111 #[serde(rename = "@model", default)]
8113 pub model: Option<String>,
8114
8115 #[serde(
8117 rename = "@reportDate",
8118 default,
8119 deserialize_with = "deserialize_optional_date"
8120 )]
8121 pub report_date: Option<NaiveDate>,
8122
8123 #[serde(rename = "@symbol", default)]
8125 pub symbol: Option<String>,
8126
8127 #[serde(rename = "@conid", default)]
8129 pub conid: Option<String>,
8130
8131 #[serde(rename = "@assetCategory", default)]
8133 pub asset_category: Option<AssetCategory>,
8134
8135 #[serde(rename = "@currency", default)]
8137 pub currency: Option<String>,
8138
8139 #[serde(
8141 rename = "@priorPeriodValue",
8142 default,
8143 deserialize_with = "deserialize_optional_decimal"
8144 )]
8145 pub prior_period_value: Option<Decimal>,
8146
8147 #[serde(
8149 rename = "@transactions",
8150 default,
8151 deserialize_with = "deserialize_optional_decimal"
8152 )]
8153 pub transactions: Option<Decimal>,
8154
8155 #[serde(
8157 rename = "@mtmPriorPeriodPositions",
8158 default,
8159 deserialize_with = "deserialize_optional_decimal"
8160 )]
8161 pub mtm_prior_period_positions: Option<Decimal>,
8162
8163 #[serde(
8165 rename = "@mtmTransactions",
8166 default,
8167 deserialize_with = "deserialize_optional_decimal"
8168 )]
8169 pub mtm_transactions: Option<Decimal>,
8170
8171 #[serde(
8173 rename = "@corporateActions",
8174 default,
8175 deserialize_with = "deserialize_optional_decimal"
8176 )]
8177 pub corporate_actions: Option<Decimal>,
8178
8179 #[serde(
8181 rename = "@fxTranslation",
8182 default,
8183 deserialize_with = "deserialize_optional_decimal"
8184 )]
8185 pub fx_translation: Option<Decimal>,
8186
8187 #[serde(
8189 rename = "@other",
8190 default,
8191 deserialize_with = "deserialize_optional_decimal"
8192 )]
8193 pub other: Option<Decimal>,
8194
8195 #[serde(
8197 rename = "@endingValue",
8198 default,
8199 deserialize_with = "deserialize_optional_decimal"
8200 )]
8201 pub ending_value: Option<Decimal>,
8202
8203 #[serde(rename = "@levelOfDetail", default)]
8205 pub level_of_detail: Option<String>,
8206
8207 #[serde(
8209 rename = "@accountTransfers",
8210 default,
8211 deserialize_with = "deserialize_optional_decimal"
8212 )]
8213 pub account_transfers: Option<Decimal>,
8214
8215 #[serde(
8217 rename = "@fxTranslationPnl",
8218 default,
8219 deserialize_with = "deserialize_optional_decimal"
8220 )]
8221 pub fx_translation_pnl: Option<Decimal>,
8222
8223 #[serde(
8225 rename = "@futurePriceAdjustments",
8226 default,
8227 deserialize_with = "deserialize_optional_decimal"
8228 )]
8229 pub future_price_adjustments: Option<Decimal>,
8230
8231 #[serde(
8233 rename = "@settledCash",
8234 default,
8235 deserialize_with = "deserialize_optional_decimal"
8236 )]
8237 pub settled_cash: Option<Decimal>,
8238
8239 #[serde(
8241 rename = "@endOfPeriodValue",
8242 default,
8243 deserialize_with = "deserialize_optional_decimal"
8244 )]
8245 pub end_of_period_value: Option<Decimal>,
8246
8247 #[serde(
8249 rename = "@linkingAdjustments",
8250 default,
8251 deserialize_with = "deserialize_optional_decimal"
8252 )]
8253 pub linking_adjustments: Option<Decimal>,
8254}
8255
8256#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8265pub struct UnbundledCommissionDetail {
8266 #[serde(
8268 rename = "@accountId",
8269 default,
8270 deserialize_with = "deserialize_optional_string"
8271 )]
8272 pub account_id: Option<String>,
8273
8274 #[serde(rename = "@acctAlias", default)]
8276 pub acct_alias: Option<String>,
8277
8278 #[serde(rename = "@model", default)]
8280 pub model: Option<String>,
8281
8282 #[serde(rename = "@symbol", default)]
8284 pub symbol: Option<String>,
8285
8286 #[serde(rename = "@description", default)]
8288 pub description: Option<String>,
8289
8290 #[serde(rename = "@conid", default)]
8292 pub conid: Option<String>,
8293
8294 #[serde(rename = "@assetCategory", default)]
8296 pub asset_category: Option<AssetCategory>,
8297
8298 #[serde(rename = "@execID", default)]
8300 pub exec_id: Option<String>,
8301
8302 #[serde(rename = "@orderID", default)]
8304 pub order_id: Option<String>,
8305
8306 #[serde(rename = "@tradeID", default)]
8308 pub trade_id: Option<String>,
8309
8310 #[serde(rename = "@dateTime", default)]
8312 pub date_time: Option<String>,
8313
8314 #[serde(rename = "@exchange", default)]
8316 pub exchange: Option<String>,
8317
8318 #[serde(
8320 rename = "@quantity",
8321 default,
8322 deserialize_with = "deserialize_optional_decimal"
8323 )]
8324 pub quantity: Option<Decimal>,
8325
8326 #[serde(
8328 rename = "@price",
8329 default,
8330 deserialize_with = "deserialize_optional_decimal"
8331 )]
8332 pub price: Option<Decimal>,
8333
8334 #[serde(
8336 rename = "@executionCommission",
8337 default,
8338 deserialize_with = "deserialize_optional_decimal"
8339 )]
8340 pub execution_commission: Option<Decimal>,
8341
8342 #[serde(
8344 rename = "@clearingCommission",
8345 default,
8346 deserialize_with = "deserialize_optional_decimal"
8347 )]
8348 pub clearing_commission: Option<Decimal>,
8349
8350 #[serde(
8352 rename = "@regulatoryCommission",
8353 default,
8354 deserialize_with = "deserialize_optional_decimal"
8355 )]
8356 pub regulatory_commission: Option<Decimal>,
8357
8358 #[serde(
8360 rename = "@thirdPartyCommission",
8361 default,
8362 deserialize_with = "deserialize_optional_decimal"
8363 )]
8364 pub third_party_commission: Option<Decimal>,
8365
8366 #[serde(
8368 rename = "@thirdPartyRegulatoryCommission",
8369 default,
8370 deserialize_with = "deserialize_optional_decimal"
8371 )]
8372 pub third_party_regulatory_commission: Option<Decimal>,
8373
8374 #[serde(
8376 rename = "@totalCommission",
8377 default,
8378 deserialize_with = "deserialize_optional_decimal"
8379 )]
8380 pub total_commission: Option<Decimal>,
8381
8382 #[serde(rename = "@currency", default)]
8384 pub currency: Option<String>,
8385
8386 #[serde(rename = "@buySell", default)]
8388 pub buy_sell: Option<BuySell>,
8389
8390 #[serde(
8392 rename = "@fxRateToBase",
8393 default,
8394 deserialize_with = "deserialize_optional_decimal"
8395 )]
8396 pub fx_rate_to_base: Option<Decimal>,
8397
8398 #[serde(
8400 rename = "@securityID",
8401 default,
8402 deserialize_with = "deserialize_optional_string"
8403 )]
8404 pub security_id: Option<String>,
8405
8406 #[serde(
8408 rename = "@securityIDType",
8409 default,
8410 deserialize_with = "deserialize_optional_string"
8411 )]
8412 pub security_id_type: Option<String>,
8413
8414 #[serde(
8416 rename = "@cusip",
8417 default,
8418 deserialize_with = "deserialize_optional_string"
8419 )]
8420 pub cusip: Option<String>,
8421
8422 #[serde(
8424 rename = "@isin",
8425 default,
8426 deserialize_with = "deserialize_optional_string"
8427 )]
8428 pub isin: Option<String>,
8429
8430 #[serde(
8432 rename = "@sedol",
8433 default,
8434 deserialize_with = "deserialize_optional_string"
8435 )]
8436 pub sedol: Option<String>,
8437
8438 #[serde(
8440 rename = "@listingExchange",
8441 default,
8442 deserialize_with = "deserialize_optional_string"
8443 )]
8444 pub listing_exchange: Option<String>,
8445
8446 #[serde(
8448 rename = "@underlyingConid",
8449 default,
8450 deserialize_with = "deserialize_optional_string"
8451 )]
8452 pub underlying_conid: Option<String>,
8453
8454 #[serde(
8456 rename = "@underlyingSymbol",
8457 default,
8458 deserialize_with = "deserialize_optional_string"
8459 )]
8460 pub underlying_symbol: Option<String>,
8461
8462 #[serde(
8464 rename = "@underlyingSecurityID",
8465 default,
8466 deserialize_with = "deserialize_optional_string"
8467 )]
8468 pub underlying_security_id: Option<String>,
8469
8470 #[serde(
8472 rename = "@underlyingListingExchange",
8473 default,
8474 deserialize_with = "deserialize_optional_string"
8475 )]
8476 pub underlying_listing_exchange: Option<String>,
8477
8478 #[serde(
8480 rename = "@issuer",
8481 default,
8482 deserialize_with = "deserialize_optional_string"
8483 )]
8484 pub issuer: Option<String>,
8485
8486 #[serde(
8488 rename = "@multiplier",
8489 default,
8490 deserialize_with = "deserialize_optional_decimal"
8491 )]
8492 pub multiplier: Option<Decimal>,
8493
8494 #[serde(
8496 rename = "@strike",
8497 default,
8498 deserialize_with = "deserialize_optional_decimal"
8499 )]
8500 pub strike: Option<Decimal>,
8501
8502 #[serde(
8504 rename = "@expiry",
8505 default,
8506 deserialize_with = "deserialize_optional_date"
8507 )]
8508 pub expiry: Option<NaiveDate>,
8509
8510 #[serde(rename = "@putCall", default)]
8512 pub put_call: Option<PutCall>,
8513
8514 #[serde(
8516 rename = "@principalAdjustFactor",
8517 default,
8518 deserialize_with = "deserialize_optional_decimal"
8519 )]
8520 pub principal_adjust_factor: Option<Decimal>,
8521
8522 #[serde(
8524 rename = "@orderReference",
8525 default,
8526 deserialize_with = "deserialize_optional_string"
8527 )]
8528 pub order_reference: Option<String>,
8529
8530 #[serde(
8532 rename = "@brokerExecutionCharge",
8533 default,
8534 deserialize_with = "deserialize_optional_decimal"
8535 )]
8536 pub broker_execution_charge: Option<Decimal>,
8537
8538 #[serde(
8540 rename = "@brokerClearingCharge",
8541 default,
8542 deserialize_with = "deserialize_optional_decimal"
8543 )]
8544 pub broker_clearing_charge: Option<Decimal>,
8545
8546 #[serde(
8548 rename = "@thirdPartyExecutionCharge",
8549 default,
8550 deserialize_with = "deserialize_optional_decimal"
8551 )]
8552 pub third_party_execution_charge: Option<Decimal>,
8553
8554 #[serde(
8556 rename = "@thirdPartyClearingCharge",
8557 default,
8558 deserialize_with = "deserialize_optional_decimal"
8559 )]
8560 pub third_party_clearing_charge: Option<Decimal>,
8561
8562 #[serde(
8564 rename = "@thirdPartyRegulatoryCharge",
8565 default,
8566 deserialize_with = "deserialize_optional_decimal"
8567 )]
8568 pub third_party_regulatory_charge: Option<Decimal>,
8569
8570 #[serde(
8572 rename = "@regFINRATradingActivityFee",
8573 default,
8574 deserialize_with = "deserialize_optional_decimal"
8575 )]
8576 pub reg_finra_trading_activity_fee: Option<Decimal>,
8577
8578 #[serde(
8580 rename = "@regSection31TransactionFee",
8581 default,
8582 deserialize_with = "deserialize_optional_decimal"
8583 )]
8584 pub reg_section31_transaction_fee: Option<Decimal>,
8585
8586 #[serde(
8588 rename = "@regOther",
8589 default,
8590 deserialize_with = "deserialize_optional_decimal"
8591 )]
8592 pub reg_other: Option<Decimal>,
8593
8594 #[serde(
8596 rename = "@other",
8597 default,
8598 deserialize_with = "deserialize_optional_decimal"
8599 )]
8600 pub other: Option<Decimal>,
8601
8602 #[serde(
8604 rename = "@subCategory",
8605 default,
8606 deserialize_with = "deserialize_optional_string"
8607 )]
8608 pub sub_category: Option<String>,
8609
8610 #[serde(
8612 rename = "@figi",
8613 default,
8614 deserialize_with = "deserialize_optional_string"
8615 )]
8616 pub figi: Option<String>,
8617
8618 #[serde(
8620 rename = "@issuerCountryCode",
8621 default,
8622 deserialize_with = "deserialize_optional_string"
8623 )]
8624 pub issuer_country_code: Option<String>,
8625
8626 #[serde(
8628 rename = "@serialNumber",
8629 default,
8630 deserialize_with = "deserialize_optional_decimal"
8631 )]
8632 pub serial_number: Option<Decimal>,
8633
8634 #[serde(
8636 rename = "@deliveryType",
8637 default,
8638 deserialize_with = "deserialize_optional_decimal"
8639 )]
8640 pub delivery_type: Option<Decimal>,
8641
8642 #[serde(
8644 rename = "@commodityType",
8645 default,
8646 deserialize_with = "deserialize_optional_string"
8647 )]
8648 pub commodity_type: Option<String>,
8649
8650 #[serde(
8652 rename = "@fineness",
8653 default,
8654 deserialize_with = "deserialize_optional_decimal"
8655 )]
8656 pub fineness: Option<Decimal>,
8657
8658 #[serde(
8660 rename = "@weight",
8661 default,
8662 deserialize_with = "deserialize_optional_decimal"
8663 )]
8664 pub weight: Option<Decimal>,
8665}
8666
8667#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8669pub struct ClientFee {
8670 #[serde(
8672 rename = "@accountId",
8673 default,
8674 deserialize_with = "deserialize_optional_string"
8675 )]
8676 pub account_id: Option<String>,
8677
8678 #[serde(rename = "@acctAlias", default)]
8680 pub acct_alias: Option<String>,
8681
8682 #[serde(rename = "@model", default)]
8684 pub model: Option<String>,
8685
8686 #[serde(
8688 rename = "@date",
8689 default,
8690 deserialize_with = "deserialize_optional_date"
8691 )]
8692 pub date: Option<NaiveDate>,
8693
8694 #[serde(rename = "@currency", default)]
8696 pub currency: Option<String>,
8697
8698 #[serde(
8700 rename = "@revenue",
8701 default,
8702 deserialize_with = "deserialize_optional_decimal"
8703 )]
8704 pub revenue: Option<Decimal>,
8705
8706 #[serde(
8708 rename = "@expense",
8709 default,
8710 deserialize_with = "deserialize_optional_decimal"
8711 )]
8712 pub expense: Option<Decimal>,
8713
8714 #[serde(
8716 rename = "@net",
8717 default,
8718 deserialize_with = "deserialize_optional_decimal"
8719 )]
8720 pub net: Option<Decimal>,
8721
8722 #[serde(rename = "@description", default)]
8724 pub description: Option<String>,
8725
8726 #[serde(
8728 rename = "@fxRateToBase",
8729 default,
8730 deserialize_with = "deserialize_optional_decimal"
8731 )]
8732 pub fx_rate_to_base: Option<Decimal>,
8733
8734 #[serde(
8736 rename = "@feeType",
8737 default,
8738 deserialize_with = "deserialize_optional_string"
8739 )]
8740 pub fee_type: Option<String>,
8741
8742 #[serde(
8744 rename = "@expenseIndicator",
8745 default,
8746 deserialize_with = "deserialize_optional_string"
8747 )]
8748 pub expense_indicator: Option<String>,
8749
8750 #[serde(
8752 rename = "@revenueInBase",
8753 default,
8754 deserialize_with = "deserialize_optional_decimal"
8755 )]
8756 pub revenue_in_base: Option<Decimal>,
8757
8758 #[serde(
8760 rename = "@expenseInBase",
8761 default,
8762 deserialize_with = "deserialize_optional_decimal"
8763 )]
8764 pub expense_in_base: Option<Decimal>,
8765
8766 #[serde(
8768 rename = "@netInBase",
8769 default,
8770 deserialize_with = "deserialize_optional_decimal"
8771 )]
8772 pub net_in_base: Option<Decimal>,
8773
8774 #[serde(
8776 rename = "@tradeID",
8777 default,
8778 deserialize_with = "deserialize_optional_string"
8779 )]
8780 pub trade_id: Option<String>,
8781
8782 #[serde(
8784 rename = "@execID",
8785 default,
8786 deserialize_with = "deserialize_optional_string"
8787 )]
8788 pub exec_id: Option<String>,
8789
8790 #[serde(
8792 rename = "@levelOfDetail",
8793 default,
8794 deserialize_with = "deserialize_optional_string"
8795 )]
8796 pub level_of_detail: Option<String>,
8797
8798 #[serde(
8800 rename = "@assetCategory",
8801 default,
8802 deserialize_with = "deserialize_optional_string"
8803 )]
8804 pub asset_category: Option<String>,
8805
8806 #[serde(
8808 rename = "@settleDate",
8809 default,
8810 deserialize_with = "deserialize_optional_string"
8811 )]
8812 pub settle_date: Option<String>,
8813
8814 #[serde(
8816 rename = "@buySell",
8817 default,
8818 deserialize_with = "deserialize_optional_string"
8819 )]
8820 pub buy_sell: Option<String>,
8821
8822 #[serde(
8824 rename = "@quantity",
8825 default,
8826 deserialize_with = "deserialize_optional_string"
8827 )]
8828 pub quantity: Option<String>,
8829
8830 #[serde(
8832 rename = "@tradePrice",
8833 default,
8834 deserialize_with = "deserialize_optional_string"
8835 )]
8836 pub trade_price: Option<String>,
8837
8838 #[serde(
8840 rename = "@proceeds",
8841 default,
8842 deserialize_with = "deserialize_optional_string"
8843 )]
8844 pub proceeds: Option<String>,
8845
8846 #[serde(
8848 rename = "@symbol",
8849 default,
8850 deserialize_with = "deserialize_optional_string"
8851 )]
8852 pub symbol: Option<String>,
8853
8854 #[serde(
8856 rename = "@underlyingSymbol",
8857 default,
8858 deserialize_with = "deserialize_optional_string"
8859 )]
8860 pub underlying_symbol: Option<String>,
8861
8862 #[serde(
8864 rename = "@multiplier",
8865 default,
8866 deserialize_with = "deserialize_optional_string"
8867 )]
8868 pub multiplier: Option<String>,
8869
8870 #[serde(
8872 rename = "@underlyingSecurityID",
8873 default,
8874 deserialize_with = "deserialize_optional_string"
8875 )]
8876 pub underlying_security_id: Option<String>,
8877}
8878
8879#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
8881pub struct ClientFeesDetail {
8882 #[serde(
8884 rename = "@accountId",
8885 default,
8886 deserialize_with = "deserialize_optional_string"
8887 )]
8888 pub account_id: Option<String>,
8889
8890 #[serde(rename = "@acctAlias", default)]
8892 pub acct_alias: Option<String>,
8893
8894 #[serde(rename = "@model", default)]
8896 pub model: Option<String>,
8897
8898 #[serde(
8900 rename = "@date",
8901 default,
8902 deserialize_with = "deserialize_optional_date"
8903 )]
8904 pub date: Option<NaiveDate>,
8905
8906 #[serde(rename = "@currency", default)]
8908 pub currency: Option<String>,
8909
8910 #[serde(rename = "@feeType", default)]
8912 pub fee_type: Option<String>,
8913
8914 #[serde(
8916 rename = "@revenue",
8917 default,
8918 deserialize_with = "deserialize_optional_decimal"
8919 )]
8920 pub revenue: Option<Decimal>,
8921
8922 #[serde(
8924 rename = "@expense",
8925 default,
8926 deserialize_with = "deserialize_optional_decimal"
8927 )]
8928 pub expense: Option<Decimal>,
8929
8930 #[serde(
8932 rename = "@net",
8933 default,
8934 deserialize_with = "deserialize_optional_decimal"
8935 )]
8936 pub net: Option<Decimal>,
8937
8938 #[serde(rename = "@description", default)]
8940 pub description: Option<String>,
8941
8942 #[serde(
8944 rename = "@fxRateToBase",
8945 default,
8946 deserialize_with = "deserialize_optional_decimal"
8947 )]
8948 pub fx_rate_to_base: Option<Decimal>,
8949
8950 #[serde(
8952 rename = "@tradeID",
8953 default,
8954 deserialize_with = "deserialize_optional_string"
8955 )]
8956 pub trade_id: Option<String>,
8957
8958 #[serde(
8960 rename = "@execID",
8961 default,
8962 deserialize_with = "deserialize_optional_string"
8963 )]
8964 pub exec_id: Option<String>,
8965
8966 #[serde(
8968 rename = "@totalRevenue",
8969 default,
8970 deserialize_with = "deserialize_optional_decimal"
8971 )]
8972 pub total_revenue: Option<Decimal>,
8973
8974 #[serde(
8976 rename = "@totalCommission",
8977 default,
8978 deserialize_with = "deserialize_optional_decimal"
8979 )]
8980 pub total_commission: Option<Decimal>,
8981
8982 #[serde(
8984 rename = "@brokerExecutionCharge",
8985 default,
8986 deserialize_with = "deserialize_optional_decimal"
8987 )]
8988 pub broker_execution_charge: Option<Decimal>,
8989
8990 #[serde(
8992 rename = "@clearingCharge",
8993 default,
8994 deserialize_with = "deserialize_optional_decimal"
8995 )]
8996 pub clearing_charge: Option<Decimal>,
8997
8998 #[serde(
9000 rename = "@thirdPartyExecutionCharge",
9001 default,
9002 deserialize_with = "deserialize_optional_decimal"
9003 )]
9004 pub third_party_execution_charge: Option<Decimal>,
9005
9006 #[serde(
9008 rename = "@thirdPartyRegulatoryCharge",
9009 default,
9010 deserialize_with = "deserialize_optional_decimal"
9011 )]
9012 pub third_party_regulatory_charge: Option<Decimal>,
9013
9014 #[serde(
9016 rename = "@regFINRATradingActivityFee",
9017 default,
9018 deserialize_with = "deserialize_optional_decimal"
9019 )]
9020 pub reg_finra_trading_activity_fee: Option<Decimal>,
9021
9022 #[serde(
9024 rename = "@regSection31TransactionFee",
9025 default,
9026 deserialize_with = "deserialize_optional_decimal"
9027 )]
9028 pub reg_section31_transaction_fee: Option<Decimal>,
9029
9030 #[serde(
9032 rename = "@regOther",
9033 default,
9034 deserialize_with = "deserialize_optional_decimal"
9035 )]
9036 pub reg_other: Option<Decimal>,
9037
9038 #[serde(
9040 rename = "@totalNet",
9041 default,
9042 deserialize_with = "deserialize_optional_decimal"
9043 )]
9044 pub total_net: Option<Decimal>,
9045
9046 #[serde(
9048 rename = "@totalNetInBase",
9049 default,
9050 deserialize_with = "deserialize_optional_decimal"
9051 )]
9052 pub total_net_in_base: Option<Decimal>,
9053
9054 #[serde(
9056 rename = "@levelOfDetail",
9057 default,
9058 deserialize_with = "deserialize_optional_string"
9059 )]
9060 pub level_of_detail: Option<String>,
9061
9062 #[serde(
9064 rename = "@other",
9065 default,
9066 deserialize_with = "deserialize_optional_decimal"
9067 )]
9068 pub other: Option<Decimal>,
9069}
9070
9071#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9077pub struct SLBActivity {
9078 #[serde(
9080 rename = "@accountId",
9081 default,
9082 deserialize_with = "deserialize_optional_string"
9083 )]
9084 pub account_id: Option<String>,
9085
9086 #[serde(rename = "@acctAlias", default)]
9088 pub acct_alias: Option<String>,
9089
9090 #[serde(rename = "@model", default)]
9092 pub model: Option<String>,
9093
9094 #[serde(rename = "@symbol", default)]
9096 pub symbol: Option<String>,
9097
9098 #[serde(rename = "@description", default)]
9100 pub description: Option<String>,
9101
9102 #[serde(rename = "@conid", default)]
9104 pub conid: Option<String>,
9105
9106 #[serde(rename = "@assetCategory", default)]
9108 pub asset_category: Option<AssetCategory>,
9109
9110 #[serde(
9112 rename = "@date",
9113 default,
9114 deserialize_with = "deserialize_optional_date"
9115 )]
9116 pub date: Option<NaiveDate>,
9117
9118 #[serde(rename = "@type", default)]
9120 pub activity_type: Option<String>,
9121
9122 #[serde(
9124 rename = "@quantity",
9125 default,
9126 deserialize_with = "deserialize_optional_decimal"
9127 )]
9128 pub quantity: Option<Decimal>,
9129
9130 #[serde(
9132 rename = "@collateralAmount",
9133 default,
9134 deserialize_with = "deserialize_optional_decimal"
9135 )]
9136 pub collateral_amount: Option<Decimal>,
9137
9138 #[serde(
9140 rename = "@feeRate",
9141 default,
9142 deserialize_with = "deserialize_optional_decimal"
9143 )]
9144 pub fee_rate: Option<Decimal>,
9145
9146 #[serde(
9148 rename = "@netLendFee",
9149 default,
9150 deserialize_with = "deserialize_optional_decimal"
9151 )]
9152 pub net_lend_fee: Option<Decimal>,
9153
9154 #[serde(rename = "@currency", default)]
9156 pub currency: Option<String>,
9157
9158 #[serde(
9160 rename = "@fxRateToBase",
9161 default,
9162 deserialize_with = "deserialize_optional_decimal"
9163 )]
9164 pub fx_rate_to_base: Option<Decimal>,
9165
9166 #[serde(
9168 rename = "@securityID",
9169 default,
9170 deserialize_with = "deserialize_optional_string"
9171 )]
9172 pub security_id: Option<String>,
9173
9174 #[serde(
9176 rename = "@securityIDType",
9177 default,
9178 deserialize_with = "deserialize_optional_string"
9179 )]
9180 pub security_id_type: Option<String>,
9181
9182 #[serde(
9184 rename = "@cusip",
9185 default,
9186 deserialize_with = "deserialize_optional_string"
9187 )]
9188 pub cusip: Option<String>,
9189
9190 #[serde(
9192 rename = "@isin",
9193 default,
9194 deserialize_with = "deserialize_optional_string"
9195 )]
9196 pub isin: Option<String>,
9197
9198 #[serde(
9200 rename = "@underlyingConid",
9201 default,
9202 deserialize_with = "deserialize_optional_string"
9203 )]
9204 pub underlying_conid: Option<String>,
9205
9206 #[serde(
9208 rename = "@underlyingSymbol",
9209 default,
9210 deserialize_with = "deserialize_optional_string"
9211 )]
9212 pub underlying_symbol: Option<String>,
9213
9214 #[serde(
9216 rename = "@issuer",
9217 default,
9218 deserialize_with = "deserialize_optional_string"
9219 )]
9220 pub issuer: Option<String>,
9221
9222 #[serde(
9224 rename = "@multiplier",
9225 default,
9226 deserialize_with = "deserialize_optional_decimal"
9227 )]
9228 pub multiplier: Option<Decimal>,
9229
9230 #[serde(
9232 rename = "@strike",
9233 default,
9234 deserialize_with = "deserialize_optional_decimal"
9235 )]
9236 pub strike: Option<Decimal>,
9237
9238 #[serde(
9240 rename = "@expiry",
9241 default,
9242 deserialize_with = "deserialize_optional_date"
9243 )]
9244 pub expiry: Option<NaiveDate>,
9245
9246 #[serde(rename = "@putCall", default)]
9248 pub put_call: Option<PutCall>,
9249
9250 #[serde(
9252 rename = "@principalAdjustFactor",
9253 default,
9254 deserialize_with = "deserialize_optional_decimal"
9255 )]
9256 pub principal_adjust_factor: Option<Decimal>,
9257
9258 #[serde(
9260 rename = "@slbTransactionId",
9261 default,
9262 deserialize_with = "deserialize_optional_string"
9263 )]
9264 pub slb_transaction_id: Option<String>,
9265
9266 #[serde(
9268 rename = "@activityDescription",
9269 default,
9270 deserialize_with = "deserialize_optional_string"
9271 )]
9272 pub activity_description: Option<String>,
9273
9274 #[serde(
9276 rename = "@exchange",
9277 default,
9278 deserialize_with = "deserialize_optional_string"
9279 )]
9280 pub exchange: Option<String>,
9281
9282 #[serde(
9284 rename = "@markQuantity",
9285 default,
9286 deserialize_with = "deserialize_optional_decimal"
9287 )]
9288 pub mark_quantity: Option<Decimal>,
9289
9290 #[serde(
9292 rename = "@markPriorPrice",
9293 default,
9294 deserialize_with = "deserialize_optional_decimal"
9295 )]
9296 pub mark_prior_price: Option<Decimal>,
9297
9298 #[serde(
9300 rename = "@markCurrentPrice",
9301 default,
9302 deserialize_with = "deserialize_optional_decimal"
9303 )]
9304 pub mark_current_price: Option<Decimal>,
9305
9306 #[serde(
9308 rename = "@subCategory",
9309 default,
9310 deserialize_with = "deserialize_optional_string"
9311 )]
9312 pub sub_category: Option<String>,
9313
9314 #[serde(
9316 rename = "@figi",
9317 default,
9318 deserialize_with = "deserialize_optional_string"
9319 )]
9320 pub figi: Option<String>,
9321
9322 #[serde(
9324 rename = "@listingExchange",
9325 default,
9326 deserialize_with = "deserialize_optional_string"
9327 )]
9328 pub listing_exchange: Option<String>,
9329
9330 #[serde(
9332 rename = "@underlyingSecurityID",
9333 default,
9334 deserialize_with = "deserialize_optional_string"
9335 )]
9336 pub underlying_security_id: Option<String>,
9337
9338 #[serde(
9340 rename = "@underlyingListingExchange",
9341 default,
9342 deserialize_with = "deserialize_optional_string"
9343 )]
9344 pub underlying_listing_exchange: Option<String>,
9345
9346 #[serde(
9348 rename = "@issuerCountryCode",
9349 default,
9350 deserialize_with = "deserialize_optional_string"
9351 )]
9352 pub issuer_country_code: Option<String>,
9353
9354 #[serde(
9356 rename = "@serialNumber",
9357 default,
9358 deserialize_with = "deserialize_optional_decimal"
9359 )]
9360 pub serial_number: Option<Decimal>,
9361
9362 #[serde(
9364 rename = "@deliveryType",
9365 default,
9366 deserialize_with = "deserialize_optional_decimal"
9367 )]
9368 pub delivery_type: Option<Decimal>,
9369
9370 #[serde(
9372 rename = "@commodityType",
9373 default,
9374 deserialize_with = "deserialize_optional_string"
9375 )]
9376 pub commodity_type: Option<String>,
9377
9378 #[serde(
9380 rename = "@fineness",
9381 default,
9382 deserialize_with = "deserialize_optional_decimal"
9383 )]
9384 pub fineness: Option<Decimal>,
9385
9386 #[serde(
9388 rename = "@weight",
9389 default,
9390 deserialize_with = "deserialize_optional_decimal"
9391 )]
9392 pub weight: Option<Decimal>,
9393}
9394
9395#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9397pub struct SLBFee {
9398 #[serde(
9400 rename = "@accountId",
9401 default,
9402 deserialize_with = "deserialize_optional_string"
9403 )]
9404 pub account_id: Option<String>,
9405
9406 #[serde(rename = "@acctAlias", default)]
9408 pub acct_alias: Option<String>,
9409
9410 #[serde(rename = "@model", default)]
9412 pub model: Option<String>,
9413
9414 #[serde(rename = "@symbol", default)]
9416 pub symbol: Option<String>,
9417
9418 #[serde(rename = "@description", default)]
9420 pub description: Option<String>,
9421
9422 #[serde(rename = "@conid", default)]
9424 pub conid: Option<String>,
9425
9426 #[serde(rename = "@assetCategory", default)]
9428 pub asset_category: Option<AssetCategory>,
9429
9430 #[serde(
9432 rename = "@valueDate",
9433 default,
9434 deserialize_with = "deserialize_optional_date"
9435 )]
9436 pub value_date: Option<NaiveDate>,
9437
9438 #[serde(
9440 rename = "@startDate",
9441 default,
9442 deserialize_with = "deserialize_optional_date"
9443 )]
9444 pub start_date: Option<NaiveDate>,
9445
9446 #[serde(
9448 rename = "@quantity",
9449 default,
9450 deserialize_with = "deserialize_optional_decimal"
9451 )]
9452 pub quantity: Option<Decimal>,
9453
9454 #[serde(
9456 rename = "@collateralAmount",
9457 default,
9458 deserialize_with = "deserialize_optional_decimal"
9459 )]
9460 pub collateral_amount: Option<Decimal>,
9461
9462 #[serde(
9464 rename = "@feeRate",
9465 default,
9466 deserialize_with = "deserialize_optional_decimal"
9467 )]
9468 pub fee_rate: Option<Decimal>,
9469
9470 #[serde(
9472 rename = "@fee",
9473 default,
9474 deserialize_with = "deserialize_optional_decimal"
9475 )]
9476 pub fee: Option<Decimal>,
9477
9478 #[serde(
9480 rename = "@carryCharge",
9481 default,
9482 deserialize_with = "deserialize_optional_decimal"
9483 )]
9484 pub carry_charge: Option<Decimal>,
9485
9486 #[serde(rename = "@currency", default)]
9488 pub currency: Option<String>,
9489
9490 #[serde(
9492 rename = "@fxRateToBase",
9493 default,
9494 deserialize_with = "deserialize_optional_decimal"
9495 )]
9496 pub fx_rate_to_base: Option<Decimal>,
9497
9498 #[serde(
9503 rename = "@type",
9504 default,
9505 deserialize_with = "deserialize_optional_string"
9506 )]
9507 pub slb_type: Option<String>,
9508
9509 #[serde(
9511 rename = "@code",
9512 default,
9513 deserialize_with = "deserialize_optional_string"
9514 )]
9515 pub code: Option<String>,
9516
9517 #[serde(
9520 rename = "@uniqueID",
9521 default,
9522 deserialize_with = "deserialize_optional_string"
9523 )]
9524 pub unique_id: Option<String>,
9525
9526 #[serde(
9528 rename = "@grossLendFee",
9529 default,
9530 deserialize_with = "deserialize_optional_decimal"
9531 )]
9532 pub gross_lend_fee: Option<Decimal>,
9533
9534 #[serde(
9537 rename = "@netLendFee",
9538 default,
9539 deserialize_with = "deserialize_optional_decimal"
9540 )]
9541 pub net_lend_fee: Option<Decimal>,
9542
9543 #[serde(
9545 rename = "@marketFeeRate",
9546 default,
9547 deserialize_with = "deserialize_optional_decimal"
9548 )]
9549 pub market_fee_rate: Option<Decimal>,
9550
9551 #[serde(
9553 rename = "@netLendFeeRate",
9554 default,
9555 deserialize_with = "deserialize_optional_decimal"
9556 )]
9557 pub net_lend_fee_rate: Option<Decimal>,
9558
9559 #[serde(
9561 rename = "@totalCharges",
9562 default,
9563 deserialize_with = "deserialize_optional_decimal"
9564 )]
9565 pub total_charges: Option<Decimal>,
9566
9567 #[serde(
9569 rename = "@ticketCharge",
9570 default,
9571 deserialize_with = "deserialize_optional_decimal"
9572 )]
9573 pub ticket_charge: Option<Decimal>,
9574
9575 #[serde(
9578 rename = "@securityID",
9579 default,
9580 deserialize_with = "deserialize_optional_string"
9581 )]
9582 pub security_id: Option<String>,
9583
9584 #[serde(
9586 rename = "@securityIDType",
9587 default,
9588 deserialize_with = "deserialize_optional_string"
9589 )]
9590 pub security_id_type: Option<String>,
9591
9592 #[serde(
9594 rename = "@cusip",
9595 default,
9596 deserialize_with = "deserialize_optional_string"
9597 )]
9598 pub cusip: Option<String>,
9599
9600 #[serde(
9602 rename = "@isin",
9603 default,
9604 deserialize_with = "deserialize_optional_string"
9605 )]
9606 pub isin: Option<String>,
9607
9608 #[serde(
9610 rename = "@figi",
9611 default,
9612 deserialize_with = "deserialize_optional_string"
9613 )]
9614 pub figi: Option<String>,
9615
9616 #[serde(
9618 rename = "@issuerCountryCode",
9619 default,
9620 deserialize_with = "deserialize_optional_string"
9621 )]
9622 pub issuer_country_code: Option<String>,
9623
9624 #[serde(
9626 rename = "@subCategory",
9627 default,
9628 deserialize_with = "deserialize_optional_string"
9629 )]
9630 pub sub_category: Option<String>,
9631
9632 #[serde(
9634 rename = "@listingExchange",
9635 default,
9636 deserialize_with = "deserialize_optional_string"
9637 )]
9638 pub listing_exchange: Option<String>,
9639
9640 #[serde(
9642 rename = "@issuer",
9643 default,
9644 deserialize_with = "deserialize_optional_string"
9645 )]
9646 pub issuer: Option<String>,
9647
9648 #[serde(
9650 rename = "@exchange",
9651 default,
9652 deserialize_with = "deserialize_optional_string"
9653 )]
9654 pub exchange: Option<String>,
9655
9656 #[serde(
9658 rename = "@multiplier",
9659 default,
9660 deserialize_with = "deserialize_optional_decimal"
9661 )]
9662 pub multiplier: Option<Decimal>,
9663
9664 #[serde(
9666 rename = "@strike",
9667 default,
9668 deserialize_with = "deserialize_optional_decimal"
9669 )]
9670 pub strike: Option<Decimal>,
9671
9672 #[serde(
9674 rename = "@expiry",
9675 default,
9676 deserialize_with = "deserialize_optional_date"
9677 )]
9678 pub expiry: Option<NaiveDate>,
9679
9680 #[serde(rename = "@putCall", default)]
9682 pub put_call: Option<PutCall>,
9683
9684 #[serde(
9686 rename = "@principalAdjustFactor",
9687 default,
9688 deserialize_with = "deserialize_optional_decimal"
9689 )]
9690 pub principal_adjust_factor: Option<Decimal>,
9691
9692 #[serde(
9694 rename = "@fromAcct",
9695 default,
9696 deserialize_with = "deserialize_optional_string"
9697 )]
9698 pub from_acct: Option<String>,
9699
9700 #[serde(
9702 rename = "@toAcct",
9703 default,
9704 deserialize_with = "deserialize_optional_string"
9705 )]
9706 pub to_acct: Option<String>,
9707
9708 #[serde(
9710 rename = "@underlyingConid",
9711 default,
9712 deserialize_with = "deserialize_optional_string"
9713 )]
9714 pub underlying_conid: Option<String>,
9715
9716 #[serde(
9718 rename = "@underlyingSymbol",
9719 default,
9720 deserialize_with = "deserialize_optional_string"
9721 )]
9722 pub underlying_symbol: Option<String>,
9723
9724 #[serde(
9726 rename = "@underlyingSecurityID",
9727 default,
9728 deserialize_with = "deserialize_optional_string"
9729 )]
9730 pub underlying_security_id: Option<String>,
9731
9732 #[serde(
9734 rename = "@underlyingListingExchange",
9735 default,
9736 deserialize_with = "deserialize_optional_string"
9737 )]
9738 pub underlying_listing_exchange: Option<String>,
9739
9740 #[serde(
9742 rename = "@serialNumber",
9743 default,
9744 deserialize_with = "deserialize_optional_decimal"
9745 )]
9746 pub serial_number: Option<Decimal>,
9747
9748 #[serde(
9750 rename = "@deliveryType",
9751 default,
9752 deserialize_with = "deserialize_optional_decimal"
9753 )]
9754 pub delivery_type: Option<Decimal>,
9755
9756 #[serde(
9758 rename = "@commodityType",
9759 default,
9760 deserialize_with = "deserialize_optional_string"
9761 )]
9762 pub commodity_type: Option<String>,
9763
9764 #[serde(
9766 rename = "@fineness",
9767 default,
9768 deserialize_with = "deserialize_optional_decimal"
9769 )]
9770 pub fineness: Option<Decimal>,
9771
9772 #[serde(
9774 rename = "@weight",
9775 default,
9776 deserialize_with = "deserialize_optional_decimal"
9777 )]
9778 pub weight: Option<Decimal>,
9779}
9780
9781impl SLBFee {
9782 pub fn lending_income(&self) -> Option<Decimal> {
9793 match self.net_lend_fee {
9794 Some(v) if v != Decimal::ZERO => Some(v),
9795 _ => self.fee,
9796 }
9797 }
9798}
9799
9800#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
9802pub struct HardToBorrowDetail {
9803 #[serde(
9805 rename = "@accountId",
9806 default,
9807 deserialize_with = "deserialize_optional_string"
9808 )]
9809 pub account_id: Option<String>,
9810
9811 #[serde(rename = "@acctAlias", default)]
9813 pub acct_alias: Option<String>,
9814
9815 #[serde(rename = "@model", default)]
9817 pub model: Option<String>,
9818
9819 #[serde(rename = "@symbol", default)]
9821 pub symbol: Option<String>,
9822
9823 #[serde(rename = "@description", default)]
9825 pub description: Option<String>,
9826
9827 #[serde(rename = "@conid", default)]
9829 pub conid: Option<String>,
9830
9831 #[serde(rename = "@assetCategory", default)]
9833 pub asset_category: Option<AssetCategory>,
9834
9835 #[serde(
9837 rename = "@valueDate",
9838 default,
9839 deserialize_with = "deserialize_optional_date"
9840 )]
9841 pub value_date: Option<NaiveDate>,
9842
9843 #[serde(
9845 rename = "@quantity",
9846 default,
9847 deserialize_with = "deserialize_optional_decimal"
9848 )]
9849 pub quantity: Option<Decimal>,
9850
9851 #[serde(
9853 rename = "@price",
9854 default,
9855 deserialize_with = "deserialize_optional_decimal"
9856 )]
9857 pub price: Option<Decimal>,
9858
9859 #[serde(
9861 rename = "@value",
9862 default,
9863 deserialize_with = "deserialize_optional_decimal"
9864 )]
9865 pub value: Option<Decimal>,
9866
9867 #[serde(
9869 rename = "@borrowFeeRate",
9870 default,
9871 deserialize_with = "deserialize_optional_decimal"
9872 )]
9873 pub borrow_fee_rate: Option<Decimal>,
9874
9875 #[serde(
9877 rename = "@borrowFee",
9878 default,
9879 deserialize_with = "deserialize_optional_decimal"
9880 )]
9881 pub borrow_fee: Option<Decimal>,
9882
9883 #[serde(rename = "@currency", default)]
9885 pub currency: Option<String>,
9886
9887 #[serde(
9889 rename = "@fxRateToBase",
9890 default,
9891 deserialize_with = "deserialize_optional_decimal"
9892 )]
9893 pub fx_rate_to_base: Option<Decimal>,
9894
9895 #[serde(
9897 rename = "@securityID",
9898 default,
9899 deserialize_with = "deserialize_optional_string"
9900 )]
9901 pub security_id: Option<String>,
9902
9903 #[serde(
9905 rename = "@securityIDType",
9906 default,
9907 deserialize_with = "deserialize_optional_string"
9908 )]
9909 pub security_id_type: Option<String>,
9910
9911 #[serde(
9913 rename = "@cusip",
9914 default,
9915 deserialize_with = "deserialize_optional_string"
9916 )]
9917 pub cusip: Option<String>,
9918
9919 #[serde(
9921 rename = "@isin",
9922 default,
9923 deserialize_with = "deserialize_optional_string"
9924 )]
9925 pub isin: Option<String>,
9926
9927 #[serde(
9929 rename = "@listingExchange",
9930 default,
9931 deserialize_with = "deserialize_optional_string"
9932 )]
9933 pub listing_exchange: Option<String>,
9934
9935 #[serde(
9937 rename = "@underlyingConid",
9938 default,
9939 deserialize_with = "deserialize_optional_string"
9940 )]
9941 pub underlying_conid: Option<String>,
9942
9943 #[serde(
9945 rename = "@underlyingSymbol",
9946 default,
9947 deserialize_with = "deserialize_optional_string"
9948 )]
9949 pub underlying_symbol: Option<String>,
9950
9951 #[serde(
9953 rename = "@underlyingSecurityID",
9954 default,
9955 deserialize_with = "deserialize_optional_string"
9956 )]
9957 pub underlying_security_id: Option<String>,
9958
9959 #[serde(
9961 rename = "@underlyingListingExchange",
9962 default,
9963 deserialize_with = "deserialize_optional_string"
9964 )]
9965 pub underlying_listing_exchange: Option<String>,
9966
9967 #[serde(
9969 rename = "@issuer",
9970 default,
9971 deserialize_with = "deserialize_optional_string"
9972 )]
9973 pub issuer: Option<String>,
9974
9975 #[serde(
9977 rename = "@multiplier",
9978 default,
9979 deserialize_with = "deserialize_optional_decimal"
9980 )]
9981 pub multiplier: Option<Decimal>,
9982
9983 #[serde(
9985 rename = "@strike",
9986 default,
9987 deserialize_with = "deserialize_optional_decimal"
9988 )]
9989 pub strike: Option<Decimal>,
9990
9991 #[serde(
9993 rename = "@expiry",
9994 default,
9995 deserialize_with = "deserialize_optional_date"
9996 )]
9997 pub expiry: Option<NaiveDate>,
9998
9999 #[serde(rename = "@putCall", default)]
10001 pub put_call: Option<PutCall>,
10002
10003 #[serde(
10005 rename = "@principalAdjustFactor",
10006 default,
10007 deserialize_with = "deserialize_optional_decimal"
10008 )]
10009 pub principal_adjust_factor: Option<Decimal>,
10010
10011 #[serde(
10013 rename = "@code",
10014 default,
10015 deserialize_with = "deserialize_optional_string"
10016 )]
10017 pub code: Option<String>,
10018
10019 #[serde(
10021 rename = "@fromAcct",
10022 default,
10023 deserialize_with = "deserialize_optional_string"
10024 )]
10025 pub from_acct: Option<String>,
10026
10027 #[serde(
10029 rename = "@toAcct",
10030 default,
10031 deserialize_with = "deserialize_optional_string"
10032 )]
10033 pub to_acct: Option<String>,
10034
10035 #[serde(
10037 rename = "@figi",
10038 default,
10039 deserialize_with = "deserialize_optional_string"
10040 )]
10041 pub figi: Option<String>,
10042
10043 #[serde(
10045 rename = "@issuerCountryCode",
10046 default,
10047 deserialize_with = "deserialize_optional_string"
10048 )]
10049 pub issuer_country_code: Option<String>,
10050
10051 #[serde(
10053 rename = "@subCategory",
10054 default,
10055 deserialize_with = "deserialize_optional_string"
10056 )]
10057 pub sub_category: Option<String>,
10058
10059 #[serde(
10061 rename = "@commodityType",
10062 default,
10063 deserialize_with = "deserialize_optional_string"
10064 )]
10065 pub commodity_type: Option<String>,
10066
10067 #[serde(
10069 rename = "@deliveryType",
10070 default,
10071 deserialize_with = "deserialize_optional_decimal"
10072 )]
10073 pub delivery_type: Option<Decimal>,
10074
10075 #[serde(
10077 rename = "@serialNumber",
10078 default,
10079 deserialize_with = "deserialize_optional_decimal"
10080 )]
10081 pub serial_number: Option<Decimal>,
10082
10083 #[serde(
10085 rename = "@fineness",
10086 default,
10087 deserialize_with = "deserialize_optional_decimal"
10088 )]
10089 pub fineness: Option<Decimal>,
10090
10091 #[serde(
10093 rename = "@weight",
10094 default,
10095 deserialize_with = "deserialize_optional_decimal"
10096 )]
10097 pub weight: Option<Decimal>,
10098}
10099
10100#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10106pub struct FxLot {
10107 #[serde(
10109 rename = "@accountId",
10110 default,
10111 deserialize_with = "deserialize_optional_string"
10112 )]
10113 pub account_id: Option<String>,
10114
10115 #[serde(rename = "@acctAlias", default)]
10117 pub acct_alias: Option<String>,
10118
10119 #[serde(rename = "@model", default)]
10121 pub model: Option<String>,
10122
10123 #[serde(rename = "@assetCategory", default)]
10125 pub asset_category: Option<String>,
10126
10127 #[serde(
10129 rename = "@reportDate",
10130 default,
10131 deserialize_with = "deserialize_optional_date"
10132 )]
10133 pub report_date: Option<NaiveDate>,
10134
10135 #[serde(rename = "@functionalCurrency", default)]
10137 pub functional_currency: Option<String>,
10138
10139 #[serde(rename = "@fxCurrency", default)]
10141 pub fx_currency: Option<String>,
10142
10143 #[serde(
10145 rename = "@quantity",
10146 default,
10147 deserialize_with = "deserialize_optional_decimal"
10148 )]
10149 pub quantity: Option<Decimal>,
10150
10151 #[serde(
10153 rename = "@costPrice",
10154 default,
10155 deserialize_with = "deserialize_optional_decimal"
10156 )]
10157 pub cost_price: Option<Decimal>,
10158
10159 #[serde(
10161 rename = "@costBasis",
10162 default,
10163 deserialize_with = "deserialize_optional_decimal"
10164 )]
10165 pub cost_basis: Option<Decimal>,
10166
10167 #[serde(
10169 rename = "@closePrice",
10170 default,
10171 deserialize_with = "deserialize_optional_decimal"
10172 )]
10173 pub close_price: Option<Decimal>,
10174
10175 #[serde(
10177 rename = "@value",
10178 default,
10179 deserialize_with = "deserialize_optional_decimal"
10180 )]
10181 pub value: Option<Decimal>,
10182
10183 #[serde(
10185 rename = "@unrealizedPL",
10186 default,
10187 deserialize_with = "deserialize_optional_decimal"
10188 )]
10189 pub unrealized_pl: Option<Decimal>,
10190
10191 #[serde(rename = "@levelOfDetail", default)]
10193 pub level_of_detail: Option<String>,
10194
10195 #[serde(
10197 rename = "@code",
10198 default,
10199 deserialize_with = "deserialize_optional_string"
10200 )]
10201 pub code: Option<String>,
10202
10203 #[serde(
10205 rename = "@lotDescription",
10206 default,
10207 deserialize_with = "deserialize_optional_string"
10208 )]
10209 pub lot_description: Option<String>,
10210
10211 #[serde(
10213 rename = "@lotOpenDateTime",
10214 default,
10215 deserialize_with = "deserialize_optional_string"
10216 )]
10217 pub lot_open_date_time: Option<String>,
10218}
10219
10220#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10226pub struct UnsettledTransfer {
10227 #[serde(
10229 rename = "@accountId",
10230 default,
10231 deserialize_with = "deserialize_optional_string"
10232 )]
10233 pub account_id: Option<String>,
10234
10235 #[serde(rename = "@acctAlias", default)]
10237 pub acct_alias: Option<String>,
10238
10239 #[serde(rename = "@model", default)]
10241 pub model: Option<String>,
10242
10243 #[serde(rename = "@symbol", default)]
10245 pub symbol: Option<String>,
10246
10247 #[serde(rename = "@description", default)]
10249 pub description: Option<String>,
10250
10251 #[serde(rename = "@conid", default)]
10253 pub conid: Option<String>,
10254
10255 #[serde(rename = "@assetCategory", default)]
10257 pub asset_category: Option<AssetCategory>,
10258
10259 #[serde(rename = "@direction", default)]
10261 pub direction: Option<String>,
10262
10263 #[serde(
10265 rename = "@date",
10266 default,
10267 deserialize_with = "deserialize_optional_date"
10268 )]
10269 pub date: Option<NaiveDate>,
10270
10271 #[serde(
10273 rename = "@expectedDate",
10274 default,
10275 deserialize_with = "deserialize_optional_date"
10276 )]
10277 pub expected_date: Option<NaiveDate>,
10278
10279 #[serde(
10281 rename = "@quantity",
10282 default,
10283 deserialize_with = "deserialize_optional_decimal"
10284 )]
10285 pub quantity: Option<Decimal>,
10286
10287 #[serde(rename = "@currency", default)]
10289 pub currency: Option<String>,
10290
10291 #[serde(
10293 rename = "@fxRateToBase",
10294 default,
10295 deserialize_with = "deserialize_optional_decimal"
10296 )]
10297 pub fx_rate_to_base: Option<Decimal>,
10298
10299 #[serde(
10301 rename = "@securityID",
10302 default,
10303 deserialize_with = "deserialize_optional_string"
10304 )]
10305 pub security_id: Option<String>,
10306
10307 #[serde(
10309 rename = "@cusip",
10310 default,
10311 deserialize_with = "deserialize_optional_string"
10312 )]
10313 pub cusip: Option<String>,
10314
10315 #[serde(
10317 rename = "@isin",
10318 default,
10319 deserialize_with = "deserialize_optional_string"
10320 )]
10321 pub isin: Option<String>,
10322
10323 #[serde(
10325 rename = "@sedol",
10326 default,
10327 deserialize_with = "deserialize_optional_string"
10328 )]
10329 pub sedol: Option<String>,
10330
10331 #[serde(
10333 rename = "@underlyingConid",
10334 default,
10335 deserialize_with = "deserialize_optional_string"
10336 )]
10337 pub underlying_conid: Option<String>,
10338
10339 #[serde(
10341 rename = "@stage",
10342 default,
10343 deserialize_with = "deserialize_optional_string"
10344 )]
10345 pub stage: Option<String>,
10346
10347 #[serde(
10349 rename = "@tradeDate",
10350 default,
10351 deserialize_with = "deserialize_optional_date"
10352 )]
10353 pub trade_date: Option<NaiveDate>,
10354
10355 #[serde(
10357 rename = "@targetSettlement",
10358 default,
10359 deserialize_with = "deserialize_optional_date"
10360 )]
10361 pub target_settlement: Option<NaiveDate>,
10362
10363 #[serde(
10365 rename = "@contra",
10366 default,
10367 deserialize_with = "deserialize_optional_string"
10368 )]
10369 pub contra: Option<String>,
10370
10371 #[serde(
10373 rename = "@tradePrice",
10374 default,
10375 deserialize_with = "deserialize_optional_decimal"
10376 )]
10377 pub trade_price: Option<Decimal>,
10378
10379 #[serde(
10381 rename = "@tradeAmount",
10382 default,
10383 deserialize_with = "deserialize_optional_decimal"
10384 )]
10385 pub trade_amount: Option<Decimal>,
10386
10387 #[serde(
10389 rename = "@tradeAmountInBase",
10390 default,
10391 deserialize_with = "deserialize_optional_decimal"
10392 )]
10393 pub trade_amount_in_base: Option<Decimal>,
10394
10395 #[serde(
10397 rename = "@transactionID",
10398 default,
10399 deserialize_with = "deserialize_optional_string"
10400 )]
10401 pub transaction_id: Option<String>,
10402}
10403
10404#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10406pub struct TradeTransfer {
10407 #[serde(
10409 rename = "@accountId",
10410 default,
10411 deserialize_with = "deserialize_optional_string"
10412 )]
10413 pub account_id: Option<String>,
10414
10415 #[serde(rename = "@acctAlias", default)]
10417 pub acct_alias: Option<String>,
10418
10419 #[serde(rename = "@model", default)]
10421 pub model: Option<String>,
10422
10423 #[serde(rename = "@symbol", default)]
10425 pub symbol: Option<String>,
10426
10427 #[serde(rename = "@description", default)]
10429 pub description: Option<String>,
10430
10431 #[serde(rename = "@conid", default)]
10433 pub conid: Option<String>,
10434
10435 #[serde(rename = "@assetCategory", default)]
10437 pub asset_category: Option<AssetCategory>,
10438
10439 #[serde(rename = "@transferType", default)]
10441 pub transfer_type: Option<String>,
10442
10443 #[serde(rename = "@direction", default)]
10445 pub direction: Option<String>,
10446
10447 #[serde(rename = "@deliveryType", default)]
10449 pub delivery_type: Option<String>,
10450
10451 #[serde(
10453 rename = "@quantity",
10454 default,
10455 deserialize_with = "deserialize_optional_decimal"
10456 )]
10457 pub quantity: Option<Decimal>,
10458
10459 #[serde(
10461 rename = "@transferPrice",
10462 default,
10463 deserialize_with = "deserialize_optional_decimal"
10464 )]
10465 pub transfer_price: Option<Decimal>,
10466
10467 #[serde(
10469 rename = "@date",
10470 default,
10471 deserialize_with = "deserialize_optional_date"
10472 )]
10473 pub date: Option<NaiveDate>,
10474
10475 #[serde(rename = "@executingBroker", default)]
10477 pub executing_broker: Option<String>,
10478
10479 #[serde(rename = "@currency", default)]
10481 pub currency: Option<String>,
10482
10483 #[serde(
10485 rename = "@fxRateToBase",
10486 default,
10487 deserialize_with = "deserialize_optional_decimal"
10488 )]
10489 pub fx_rate_to_base: Option<Decimal>,
10490
10491 #[serde(rename = "@transactionType", default)]
10493 pub transaction_type: Option<TradeType>,
10494
10495 #[serde(rename = "@openCloseIndicator", default)]
10497 pub open_close_indicator: Option<OpenClose>,
10498
10499 #[serde(rename = "@deliveredReceived", default)]
10501 pub delivered_received: Option<DeliveredReceived>,
10502
10503 #[serde(
10505 rename = "@cusip",
10506 default,
10507 deserialize_with = "deserialize_optional_string"
10508 )]
10509 pub cusip: Option<String>,
10510
10511 #[serde(
10513 rename = "@isin",
10514 default,
10515 deserialize_with = "deserialize_optional_string"
10516 )]
10517 pub isin: Option<String>,
10518
10519 #[serde(
10521 rename = "@underlyingConid",
10522 default,
10523 deserialize_with = "deserialize_optional_string"
10524 )]
10525 pub underlying_conid: Option<String>,
10526
10527 #[serde(
10529 rename = "@tradeID",
10530 default,
10531 deserialize_with = "deserialize_optional_string"
10532 )]
10533 pub trade_id: Option<String>,
10534
10535 #[serde(
10537 rename = "@reportDate",
10538 default,
10539 deserialize_with = "deserialize_optional_date"
10540 )]
10541 pub report_date: Option<NaiveDate>,
10542
10543 #[serde(
10545 rename = "@tradeDate",
10546 default,
10547 deserialize_with = "deserialize_optional_date"
10548 )]
10549 pub trade_date: Option<NaiveDate>,
10550
10551 #[serde(
10553 rename = "@tradeTime",
10554 default,
10555 deserialize_with = "deserialize_optional_string"
10556 )]
10557 pub trade_time: Option<String>,
10558
10559 #[serde(
10561 rename = "@settleDateTarget",
10562 default,
10563 deserialize_with = "deserialize_optional_date"
10564 )]
10565 pub settle_date_target: Option<NaiveDate>,
10566
10567 #[serde(
10569 rename = "@exchange",
10570 default,
10571 deserialize_with = "deserialize_optional_string"
10572 )]
10573 pub exchange: Option<String>,
10574
10575 #[serde(
10577 rename = "@tradePrice",
10578 default,
10579 deserialize_with = "deserialize_optional_decimal"
10580 )]
10581 pub trade_price: Option<Decimal>,
10582
10583 #[serde(
10585 rename = "@tradeMoney",
10586 default,
10587 deserialize_with = "deserialize_optional_decimal"
10588 )]
10589 pub trade_money: Option<Decimal>,
10590
10591 #[serde(
10593 rename = "@taxes",
10594 default,
10595 deserialize_with = "deserialize_optional_decimal"
10596 )]
10597 pub taxes: Option<Decimal>,
10598
10599 #[serde(
10601 rename = "@ibCommission",
10602 default,
10603 deserialize_with = "deserialize_optional_decimal"
10604 )]
10605 pub ib_commission: Option<Decimal>,
10606
10607 #[serde(
10609 rename = "@ibCommissionCurrency",
10610 default,
10611 deserialize_with = "deserialize_optional_string"
10612 )]
10613 pub ib_commission_currency: Option<String>,
10614
10615 #[serde(
10617 rename = "@closePrice",
10618 default,
10619 deserialize_with = "deserialize_optional_decimal"
10620 )]
10621 pub close_price: Option<Decimal>,
10622
10623 #[serde(
10625 rename = "@notes",
10626 default,
10627 deserialize_with = "deserialize_optional_string"
10628 )]
10629 pub notes: Option<String>,
10630
10631 #[serde(
10633 rename = "@cost",
10634 default,
10635 deserialize_with = "deserialize_optional_decimal"
10636 )]
10637 pub cost: Option<Decimal>,
10638
10639 #[serde(
10641 rename = "@fifoPnlRealized",
10642 default,
10643 deserialize_with = "deserialize_optional_decimal"
10644 )]
10645 pub fifo_pnl_realized: Option<Decimal>,
10646
10647 #[serde(
10649 rename = "@mtmPnl",
10650 default,
10651 deserialize_with = "deserialize_optional_decimal"
10652 )]
10653 pub mtm_pnl: Option<Decimal>,
10654
10655 #[serde(
10657 rename = "@brokerName",
10658 default,
10659 deserialize_with = "deserialize_optional_string"
10660 )]
10661 pub broker_name: Option<String>,
10662
10663 #[serde(
10665 rename = "@brokerAccount",
10666 default,
10667 deserialize_with = "deserialize_optional_string"
10668 )]
10669 pub broker_account: Option<String>,
10670
10671 #[serde(
10673 rename = "@awayBrokerCommission",
10674 default,
10675 deserialize_with = "deserialize_optional_decimal"
10676 )]
10677 pub away_broker_commission: Option<Decimal>,
10678
10679 #[serde(
10681 rename = "@regulatoryFee",
10682 default,
10683 deserialize_with = "deserialize_optional_decimal"
10684 )]
10685 pub regulatory_fee: Option<Decimal>,
10686
10687 #[serde(
10689 rename = "@netTradeMoney",
10690 default,
10691 deserialize_with = "deserialize_optional_decimal"
10692 )]
10693 pub net_trade_money: Option<Decimal>,
10694
10695 #[serde(
10697 rename = "@netTradeMoneyInBase",
10698 default,
10699 deserialize_with = "deserialize_optional_decimal"
10700 )]
10701 pub net_trade_money_in_base: Option<Decimal>,
10702
10703 #[serde(
10705 rename = "@netTradePrice",
10706 default,
10707 deserialize_with = "deserialize_optional_decimal"
10708 )]
10709 pub net_trade_price: Option<Decimal>,
10710
10711 #[serde(
10713 rename = "@multiplier",
10714 default,
10715 deserialize_with = "deserialize_optional_decimal"
10716 )]
10717 pub multiplier: Option<Decimal>,
10718
10719 #[serde(
10721 rename = "@sedol",
10722 default,
10723 deserialize_with = "deserialize_optional_string"
10724 )]
10725 pub sedol: Option<String>,
10726
10727 #[serde(
10729 rename = "@securityID",
10730 default,
10731 deserialize_with = "deserialize_optional_string"
10732 )]
10733 pub security_id: Option<String>,
10734
10735 #[serde(
10737 rename = "@underlyingSymbol",
10738 default,
10739 deserialize_with = "deserialize_optional_string"
10740 )]
10741 pub underlying_symbol: Option<String>,
10742
10743 #[serde(
10745 rename = "@issuer",
10746 default,
10747 deserialize_with = "deserialize_optional_string"
10748 )]
10749 pub issuer: Option<String>,
10750
10751 #[serde(
10753 rename = "@strike",
10754 default,
10755 deserialize_with = "deserialize_optional_decimal"
10756 )]
10757 pub strike: Option<Decimal>,
10758
10759 #[serde(
10761 rename = "@expiry",
10762 default,
10763 deserialize_with = "deserialize_optional_date"
10764 )]
10765 pub expiry: Option<NaiveDate>,
10766
10767 #[serde(rename = "@putCall", default)]
10769 pub put_call: Option<PutCall>,
10770
10771 #[serde(
10773 rename = "@principalAdjustFactor",
10774 default,
10775 deserialize_with = "deserialize_optional_decimal"
10776 )]
10777 pub principal_adjust_factor: Option<Decimal>,
10778
10779 #[serde(
10781 rename = "@proceeds",
10782 default,
10783 deserialize_with = "deserialize_optional_decimal"
10784 )]
10785 pub proceeds: Option<Decimal>,
10786
10787 #[serde(
10789 rename = "@fxPnl",
10790 default,
10791 deserialize_with = "deserialize_optional_decimal"
10792 )]
10793 pub fx_pnl: Option<Decimal>,
10794
10795 #[serde(
10797 rename = "@netCash",
10798 default,
10799 deserialize_with = "deserialize_optional_decimal"
10800 )]
10801 pub net_cash: Option<Decimal>,
10802
10803 #[serde(
10805 rename = "@origTradePrice",
10806 default,
10807 deserialize_with = "deserialize_optional_decimal"
10808 )]
10809 pub orig_trade_price: Option<Decimal>,
10810
10811 #[serde(
10813 rename = "@origTradeDate",
10814 default,
10815 deserialize_with = "deserialize_optional_date"
10816 )]
10817 pub orig_trade_date: Option<NaiveDate>,
10818
10819 #[serde(
10821 rename = "@origTradeID",
10822 default,
10823 deserialize_with = "deserialize_optional_string"
10824 )]
10825 pub orig_trade_id: Option<String>,
10826
10827 #[serde(
10829 rename = "@origOrderID",
10830 default,
10831 deserialize_with = "deserialize_optional_string"
10832 )]
10833 pub orig_order_id: Option<String>,
10834
10835 #[serde(
10837 rename = "@clearingFirmID",
10838 default,
10839 deserialize_with = "deserialize_optional_string"
10840 )]
10841 pub clearing_firm_id: Option<String>,
10842
10843 #[serde(
10845 rename = "@transactionID",
10846 default,
10847 deserialize_with = "deserialize_optional_string"
10848 )]
10849 pub transaction_id: Option<String>,
10850
10851 #[serde(
10853 rename = "@openDateTime",
10854 default,
10855 deserialize_with = "deserialize_optional_string"
10856 )]
10857 pub open_date_time: Option<String>,
10858
10859 #[serde(
10861 rename = "@holdingPeriodDateTime",
10862 default,
10863 deserialize_with = "deserialize_optional_string"
10864 )]
10865 pub holding_period_date_time: Option<String>,
10866
10867 #[serde(
10869 rename = "@whenRealized",
10870 default,
10871 deserialize_with = "deserialize_optional_string"
10872 )]
10873 pub when_realized: Option<String>,
10874
10875 #[serde(
10877 rename = "@whenReopened",
10878 default,
10879 deserialize_with = "deserialize_optional_string"
10880 )]
10881 pub when_reopened: Option<String>,
10882
10883 #[serde(
10885 rename = "@levelOfDetail",
10886 default,
10887 deserialize_with = "deserialize_optional_string"
10888 )]
10889 pub level_of_detail: Option<String>,
10890
10891 #[serde(
10893 rename = "@securityIDType",
10894 default,
10895 deserialize_with = "deserialize_optional_string"
10896 )]
10897 pub security_id_type: Option<String>,
10898}
10899
10900#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
10906pub struct PriorPeriodPosition {
10907 #[serde(
10909 rename = "@accountId",
10910 default,
10911 deserialize_with = "deserialize_optional_string"
10912 )]
10913 pub account_id: Option<String>,
10914
10915 #[serde(rename = "@acctAlias", default)]
10917 pub acct_alias: Option<String>,
10918
10919 #[serde(rename = "@model", default)]
10921 pub model: Option<String>,
10922
10923 #[serde(rename = "@symbol", default)]
10925 pub symbol: Option<String>,
10926
10927 #[serde(rename = "@description", default)]
10929 pub description: Option<String>,
10930
10931 #[serde(rename = "@conid", default)]
10933 pub conid: Option<String>,
10934
10935 #[serde(rename = "@assetCategory", default)]
10937 pub asset_category: Option<AssetCategory>,
10938
10939 #[serde(
10941 rename = "@priorMtmPnl",
10942 default,
10943 deserialize_with = "deserialize_optional_decimal"
10944 )]
10945 pub prior_mtm_pnl: Option<Decimal>,
10946
10947 #[serde(
10949 rename = "@date",
10950 default,
10951 deserialize_with = "deserialize_optional_date"
10952 )]
10953 pub date: Option<NaiveDate>,
10954
10955 #[serde(
10957 rename = "@quantity",
10958 default,
10959 deserialize_with = "deserialize_optional_decimal"
10960 )]
10961 pub quantity: Option<Decimal>,
10962
10963 #[serde(
10965 rename = "@price",
10966 default,
10967 deserialize_with = "deserialize_optional_decimal"
10968 )]
10969 pub price: Option<Decimal>,
10970
10971 #[serde(rename = "@currency", default)]
10973 pub currency: Option<String>,
10974
10975 #[serde(
10977 rename = "@fxRateToBase",
10978 default,
10979 deserialize_with = "deserialize_optional_decimal"
10980 )]
10981 pub fx_rate_to_base: Option<Decimal>,
10982
10983 #[serde(
10985 rename = "@securityID",
10986 default,
10987 deserialize_with = "deserialize_optional_string"
10988 )]
10989 pub security_id: Option<String>,
10990
10991 #[serde(
10993 rename = "@cusip",
10994 default,
10995 deserialize_with = "deserialize_optional_string"
10996 )]
10997 pub cusip: Option<String>,
10998
10999 #[serde(
11001 rename = "@isin",
11002 default,
11003 deserialize_with = "deserialize_optional_string"
11004 )]
11005 pub isin: Option<String>,
11006
11007 #[serde(
11009 rename = "@listingExchange",
11010 default,
11011 deserialize_with = "deserialize_optional_string"
11012 )]
11013 pub listing_exchange: Option<String>,
11014
11015 #[serde(
11017 rename = "@underlyingConid",
11018 default,
11019 deserialize_with = "deserialize_optional_string"
11020 )]
11021 pub underlying_conid: Option<String>,
11022
11023 #[serde(
11025 rename = "@underlyingSecurityID",
11026 default,
11027 deserialize_with = "deserialize_optional_string"
11028 )]
11029 pub underlying_security_id: Option<String>,
11030
11031 #[serde(
11033 rename = "@underlyingListingExchange",
11034 default,
11035 deserialize_with = "deserialize_optional_string"
11036 )]
11037 pub underlying_listing_exchange: Option<String>,
11038
11039 #[serde(
11041 rename = "@sedol",
11042 default,
11043 deserialize_with = "deserialize_optional_string"
11044 )]
11045 pub sedol: Option<String>,
11046
11047 #[serde(
11049 rename = "@securityIDType",
11050 default,
11051 deserialize_with = "deserialize_optional_string"
11052 )]
11053 pub security_id_type: Option<String>,
11054
11055 #[serde(
11057 rename = "@underlyingSymbol",
11058 default,
11059 deserialize_with = "deserialize_optional_string"
11060 )]
11061 pub underlying_symbol: Option<String>,
11062
11063 #[serde(
11065 rename = "@issuer",
11066 default,
11067 deserialize_with = "deserialize_optional_string"
11068 )]
11069 pub issuer: Option<String>,
11070
11071 #[serde(
11073 rename = "@multiplier",
11074 default,
11075 deserialize_with = "deserialize_optional_decimal"
11076 )]
11077 pub multiplier: Option<Decimal>,
11078
11079 #[serde(
11081 rename = "@strike",
11082 default,
11083 deserialize_with = "deserialize_optional_decimal"
11084 )]
11085 pub strike: Option<Decimal>,
11086
11087 #[serde(
11089 rename = "@expiry",
11090 default,
11091 deserialize_with = "deserialize_optional_date"
11092 )]
11093 pub expiry: Option<NaiveDate>,
11094
11095 #[serde(rename = "@putCall", default)]
11097 pub put_call: Option<PutCall>,
11098
11099 #[serde(
11101 rename = "@principalAdjustFactor",
11102 default,
11103 deserialize_with = "deserialize_optional_decimal"
11104 )]
11105 pub principal_adjust_factor: Option<Decimal>,
11106
11107 #[serde(
11109 rename = "@subCategory",
11110 default,
11111 deserialize_with = "deserialize_optional_string"
11112 )]
11113 pub sub_category: Option<String>,
11114
11115 #[serde(
11117 rename = "@figi",
11118 default,
11119 deserialize_with = "deserialize_optional_string"
11120 )]
11121 pub figi: Option<String>,
11122
11123 #[serde(
11125 rename = "@issuerCountryCode",
11126 default,
11127 deserialize_with = "deserialize_optional_string"
11128 )]
11129 pub issuer_country_code: Option<String>,
11130
11131 #[serde(
11133 rename = "@serialNumber",
11134 default,
11135 deserialize_with = "deserialize_optional_decimal"
11136 )]
11137 pub serial_number: Option<Decimal>,
11138
11139 #[serde(
11141 rename = "@deliveryType",
11142 default,
11143 deserialize_with = "deserialize_optional_decimal"
11144 )]
11145 pub delivery_type: Option<Decimal>,
11146
11147 #[serde(
11149 rename = "@commodityType",
11150 default,
11151 deserialize_with = "deserialize_optional_string"
11152 )]
11153 pub commodity_type: Option<String>,
11154
11155 #[serde(
11157 rename = "@fineness",
11158 default,
11159 deserialize_with = "deserialize_optional_decimal"
11160 )]
11161 pub fineness: Option<Decimal>,
11162
11163 #[serde(
11165 rename = "@weight",
11166 default,
11167 deserialize_with = "deserialize_optional_decimal"
11168 )]
11169 pub weight: Option<Decimal>,
11170}
11171
11172#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11178pub struct TierInterestDetail {
11179 #[serde(
11181 rename = "@accountId",
11182 default,
11183 deserialize_with = "deserialize_optional_string"
11184 )]
11185 pub account_id: Option<String>,
11186
11187 #[serde(rename = "@acctAlias", default)]
11189 pub acct_alias: Option<String>,
11190
11191 #[serde(rename = "@model", default)]
11193 pub model: Option<String>,
11194
11195 #[serde(rename = "@currency", default)]
11197 pub currency: Option<String>,
11198
11199 #[serde(
11201 rename = "@fxRateToBase",
11202 default,
11203 deserialize_with = "deserialize_optional_decimal"
11204 )]
11205 pub fx_rate_to_base: Option<Decimal>,
11206
11207 #[serde(rename = "@interestType", default)]
11209 pub interest_type: Option<String>,
11210
11211 #[serde(
11213 rename = "@reportDate",
11214 default,
11215 deserialize_with = "deserialize_optional_date"
11216 )]
11217 pub report_date: Option<NaiveDate>,
11218
11219 #[serde(
11221 rename = "@valueDate",
11222 default,
11223 deserialize_with = "deserialize_optional_date"
11224 )]
11225 pub value_date: Option<NaiveDate>,
11226
11227 #[serde(rename = "@tierBreak", default)]
11229 pub tier_break: Option<String>,
11230
11231 #[serde(
11233 rename = "@balanceThreshold",
11234 default,
11235 deserialize_with = "deserialize_optional_decimal"
11236 )]
11237 pub balance_threshold: Option<Decimal>,
11238
11239 #[serde(
11241 rename = "@securitiesPrincipal",
11242 default,
11243 deserialize_with = "deserialize_optional_decimal"
11244 )]
11245 pub securities_principal: Option<Decimal>,
11246
11247 #[serde(
11249 rename = "@commoditiesPrincipal",
11250 default,
11251 deserialize_with = "deserialize_optional_decimal"
11252 )]
11253 pub commodities_principal: Option<Decimal>,
11254
11255 #[serde(
11257 rename = "@ibuklPrincipal",
11258 default,
11259 deserialize_with = "deserialize_optional_decimal"
11260 )]
11261 pub ibukl_principal: Option<Decimal>,
11262
11263 #[serde(
11265 rename = "@totalPrincipal",
11266 default,
11267 deserialize_with = "deserialize_optional_decimal"
11268 )]
11269 pub total_principal: Option<Decimal>,
11270
11271 #[serde(
11273 rename = "@rate",
11274 default,
11275 deserialize_with = "deserialize_optional_decimal"
11276 )]
11277 pub rate: Option<Decimal>,
11278
11279 #[serde(
11281 rename = "@securitiesInterest",
11282 default,
11283 deserialize_with = "deserialize_optional_decimal"
11284 )]
11285 pub securities_interest: Option<Decimal>,
11286
11287 #[serde(
11289 rename = "@commoditiesInterest",
11290 default,
11291 deserialize_with = "deserialize_optional_decimal"
11292 )]
11293 pub commodities_interest: Option<Decimal>,
11294
11295 #[serde(
11297 rename = "@ibuklInterest",
11298 default,
11299 deserialize_with = "deserialize_optional_decimal"
11300 )]
11301 pub ibukl_interest: Option<Decimal>,
11302
11303 #[serde(
11305 rename = "@totalInterest",
11306 default,
11307 deserialize_with = "deserialize_optional_decimal"
11308 )]
11309 pub total_interest: Option<Decimal>,
11310
11311 #[serde(rename = "@code", default)]
11313 pub code: Option<String>,
11314
11315 #[serde(rename = "@fromAcct", default)]
11317 pub from_acct: Option<String>,
11318
11319 #[serde(rename = "@toAcct", default)]
11321 pub to_acct: Option<String>,
11322
11323 #[serde(rename = "@marginBalance", default)]
11325 pub margin_balance: Option<String>,
11326
11327 #[serde(
11330 rename = "@date",
11331 default,
11332 deserialize_with = "deserialize_optional_date"
11333 )]
11334 pub date: Option<NaiveDate>,
11335
11336 #[serde(
11338 rename = "@fromDate",
11339 default,
11340 deserialize_with = "deserialize_optional_date"
11341 )]
11342 pub from_date: Option<NaiveDate>,
11343
11344 #[serde(
11346 rename = "@toDate",
11347 default,
11348 deserialize_with = "deserialize_optional_date"
11349 )]
11350 pub to_date: Option<NaiveDate>,
11351
11352 #[serde(
11354 rename = "@balance",
11355 default,
11356 deserialize_with = "deserialize_optional_decimal"
11357 )]
11358 pub balance: Option<Decimal>,
11359
11360 #[serde(
11362 rename = "@interestRate",
11363 default,
11364 deserialize_with = "deserialize_optional_decimal"
11365 )]
11366 pub interest_rate: Option<Decimal>,
11367
11368 #[serde(
11370 rename = "@interest",
11371 default,
11372 deserialize_with = "deserialize_optional_decimal"
11373 )]
11374 pub interest: Option<Decimal>,
11375}
11376
11377#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11383pub struct DebitCardActivity {
11384 #[serde(
11386 rename = "@accountId",
11387 default,
11388 deserialize_with = "deserialize_optional_string"
11389 )]
11390 pub account_id: Option<String>,
11391
11392 #[serde(rename = "@acctAlias", default)]
11394 pub acct_alias: Option<String>,
11395
11396 #[serde(rename = "@model", default)]
11398 pub model: Option<String>,
11399
11400 #[serde(
11402 rename = "@date",
11403 default,
11404 deserialize_with = "deserialize_optional_date"
11405 )]
11406 pub date: Option<NaiveDate>,
11407
11408 #[serde(rename = "@merchant", default)]
11410 pub merchant: Option<String>,
11411
11412 #[serde(rename = "@category", default)]
11414 pub category: Option<String>,
11415
11416 #[serde(rename = "@status", default)]
11418 pub status: Option<String>,
11419
11420 #[serde(rename = "@transactionType", default)]
11422 pub transaction_type: Option<String>,
11423
11424 #[serde(
11426 rename = "@amount",
11427 default,
11428 deserialize_with = "deserialize_optional_decimal"
11429 )]
11430 pub amount: Option<Decimal>,
11431
11432 #[serde(rename = "@currency", default)]
11434 pub currency: Option<String>,
11435
11436 #[serde(
11438 rename = "@fxRateToBase",
11439 default,
11440 deserialize_with = "deserialize_optional_decimal"
11441 )]
11442 pub fx_rate_to_base: Option<Decimal>,
11443
11444 #[serde(rename = "@assetCategory", default)]
11446 pub asset_category: Option<AssetCategory>,
11447
11448 #[serde(
11450 rename = "@reportDate",
11451 default,
11452 deserialize_with = "deserialize_optional_date"
11453 )]
11454 pub report_date: Option<NaiveDate>,
11455
11456 #[serde(
11458 rename = "@postingDate",
11459 default,
11460 deserialize_with = "deserialize_optional_date"
11461 )]
11462 pub posting_date: Option<NaiveDate>,
11463
11464 #[serde(
11466 rename = "@transactionDateTime",
11467 default,
11468 deserialize_with = "deserialize_optional_string"
11469 )]
11470 pub transaction_date_time: Option<String>,
11471
11472 #[serde(
11474 rename = "@merchantNameLocation",
11475 default,
11476 deserialize_with = "deserialize_optional_string"
11477 )]
11478 pub merchant_name_location: Option<String>,
11479}
11480
11481#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11483pub struct SalesTax {
11484 #[serde(
11486 rename = "@accountId",
11487 default,
11488 deserialize_with = "deserialize_optional_string"
11489 )]
11490 pub account_id: Option<String>,
11491
11492 #[serde(rename = "@acctAlias", default)]
11494 pub acct_alias: Option<String>,
11495
11496 #[serde(rename = "@model", default)]
11498 pub model: Option<String>,
11499
11500 #[serde(
11502 rename = "@date",
11503 default,
11504 deserialize_with = "deserialize_optional_date"
11505 )]
11506 pub date: Option<NaiveDate>,
11507
11508 #[serde(rename = "@symbol", default)]
11510 pub symbol: Option<String>,
11511
11512 #[serde(rename = "@description", default)]
11514 pub description: Option<String>,
11515
11516 #[serde(rename = "@conid", default)]
11518 pub conid: Option<String>,
11519
11520 #[serde(rename = "@taxType", default)]
11522 pub tax_type: Option<String>,
11523
11524 #[serde(
11526 rename = "@taxAmount",
11527 default,
11528 deserialize_with = "deserialize_optional_decimal"
11529 )]
11530 pub tax_amount: Option<Decimal>,
11531
11532 #[serde(
11534 rename = "@proceeds",
11535 default,
11536 deserialize_with = "deserialize_optional_decimal"
11537 )]
11538 pub proceeds: Option<Decimal>,
11539
11540 #[serde(rename = "@currency", default)]
11542 pub currency: Option<String>,
11543
11544 #[serde(
11546 rename = "@fxRateToBase",
11547 default,
11548 deserialize_with = "deserialize_optional_decimal"
11549 )]
11550 pub fx_rate_to_base: Option<Decimal>,
11551
11552 #[serde(rename = "@assetCategory", default)]
11554 pub asset_category: Option<AssetCategory>,
11555
11556 #[serde(
11558 rename = "@subCategory",
11559 default,
11560 deserialize_with = "deserialize_optional_string"
11561 )]
11562 pub sub_category: Option<String>,
11563
11564 #[serde(
11566 rename = "@securityID",
11567 default,
11568 deserialize_with = "deserialize_optional_string"
11569 )]
11570 pub security_id: Option<String>,
11571
11572 #[serde(
11574 rename = "@securityIDType",
11575 default,
11576 deserialize_with = "deserialize_optional_string"
11577 )]
11578 pub security_id_type: Option<String>,
11579
11580 #[serde(
11582 rename = "@cusip",
11583 default,
11584 deserialize_with = "deserialize_optional_string"
11585 )]
11586 pub cusip: Option<String>,
11587
11588 #[serde(
11590 rename = "@isin",
11591 default,
11592 deserialize_with = "deserialize_optional_string"
11593 )]
11594 pub isin: Option<String>,
11595
11596 #[serde(
11598 rename = "@listingExchange",
11599 default,
11600 deserialize_with = "deserialize_optional_string"
11601 )]
11602 pub listing_exchange: Option<String>,
11603
11604 #[serde(
11606 rename = "@underlyingConid",
11607 default,
11608 deserialize_with = "deserialize_optional_string"
11609 )]
11610 pub underlying_conid: Option<String>,
11611
11612 #[serde(
11614 rename = "@underlyingSecurityID",
11615 default,
11616 deserialize_with = "deserialize_optional_string"
11617 )]
11618 pub underlying_security_id: Option<String>,
11619
11620 #[serde(
11622 rename = "@underlyingSymbol",
11623 default,
11624 deserialize_with = "deserialize_optional_string"
11625 )]
11626 pub underlying_symbol: Option<String>,
11627
11628 #[serde(
11630 rename = "@underlyingListingExchange",
11631 default,
11632 deserialize_with = "deserialize_optional_string"
11633 )]
11634 pub underlying_listing_exchange: Option<String>,
11635
11636 #[serde(
11638 rename = "@issuer",
11639 default,
11640 deserialize_with = "deserialize_optional_string"
11641 )]
11642 pub issuer: Option<String>,
11643
11644 #[serde(
11646 rename = "@multiplier",
11647 default,
11648 deserialize_with = "deserialize_optional_decimal"
11649 )]
11650 pub multiplier: Option<Decimal>,
11651
11652 #[serde(
11654 rename = "@strike",
11655 default,
11656 deserialize_with = "deserialize_optional_decimal"
11657 )]
11658 pub strike: Option<Decimal>,
11659
11660 #[serde(
11662 rename = "@expiry",
11663 default,
11664 deserialize_with = "deserialize_optional_date"
11665 )]
11666 pub expiry: Option<NaiveDate>,
11667
11668 #[serde(rename = "@putCall", default)]
11670 pub put_call: Option<PutCall>,
11671
11672 #[serde(
11674 rename = "@principalAdjustFactor",
11675 default,
11676 deserialize_with = "deserialize_optional_decimal"
11677 )]
11678 pub principal_adjust_factor: Option<Decimal>,
11679
11680 #[serde(
11682 rename = "@country",
11683 default,
11684 deserialize_with = "deserialize_optional_string"
11685 )]
11686 pub country: Option<String>,
11687
11688 #[serde(
11690 rename = "@payer",
11691 default,
11692 deserialize_with = "deserialize_optional_string"
11693 )]
11694 pub payer: Option<String>,
11695
11696 #[serde(
11698 rename = "@taxableDescription",
11699 default,
11700 deserialize_with = "deserialize_optional_string"
11701 )]
11702 pub taxable_description: Option<String>,
11703
11704 #[serde(
11706 rename = "@taxableAmount",
11707 default,
11708 deserialize_with = "deserialize_optional_decimal"
11709 )]
11710 pub taxable_amount: Option<Decimal>,
11711
11712 #[serde(
11714 rename = "@taxRate",
11715 default,
11716 deserialize_with = "deserialize_optional_decimal"
11717 )]
11718 pub tax_rate: Option<Decimal>,
11719
11720 #[serde(
11722 rename = "@salesTax",
11723 default,
11724 deserialize_with = "deserialize_optional_decimal"
11725 )]
11726 pub sales_tax: Option<Decimal>,
11727
11728 #[serde(
11730 rename = "@taxableTransactionID",
11731 default,
11732 deserialize_with = "deserialize_optional_string"
11733 )]
11734 pub taxable_transaction_id: Option<String>,
11735
11736 #[serde(
11738 rename = "@transactionID",
11739 default,
11740 deserialize_with = "deserialize_optional_string"
11741 )]
11742 pub transaction_id: Option<String>,
11743
11744 #[serde(
11746 rename = "@serialNumber",
11747 default,
11748 deserialize_with = "deserialize_optional_string"
11749 )]
11750 pub serial_number: Option<String>,
11751
11752 #[serde(
11754 rename = "@deliveryType",
11755 default,
11756 deserialize_with = "deserialize_optional_string"
11757 )]
11758 pub delivery_type: Option<String>,
11759
11760 #[serde(
11762 rename = "@commodityType",
11763 default,
11764 deserialize_with = "deserialize_optional_string"
11765 )]
11766 pub commodity_type: Option<String>,
11767
11768 #[serde(
11770 rename = "@fineness",
11771 default,
11772 deserialize_with = "deserialize_optional_decimal"
11773 )]
11774 pub fineness: Option<Decimal>,
11775
11776 #[serde(
11778 rename = "@weight",
11779 default,
11780 deserialize_with = "deserialize_optional_string"
11781 )]
11782 pub weight: Option<String>,
11783
11784 #[serde(
11786 rename = "@code",
11787 default,
11788 deserialize_with = "deserialize_optional_string"
11789 )]
11790 pub code: Option<String>,
11791}
11792
11793#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
11799pub struct SymbolSummary {
11800 #[serde(
11802 rename = "@accountId",
11803 default,
11804 deserialize_with = "deserialize_optional_string"
11805 )]
11806 pub account_id: Option<String>,
11807
11808 #[serde(rename = "@acctAlias", default)]
11810 pub acct_alias: Option<String>,
11811
11812 #[serde(rename = "@model", default)]
11814 pub model: Option<String>,
11815
11816 #[serde(rename = "@symbol", default)]
11818 pub symbol: Option<String>,
11819
11820 #[serde(rename = "@description", default)]
11822 pub description: Option<String>,
11823
11824 #[serde(rename = "@conid", default)]
11826 pub conid: Option<String>,
11827
11828 #[serde(rename = "@assetCategory", default)]
11830 pub asset_category: Option<AssetCategory>,
11831
11832 #[serde(
11834 rename = "@totalBuyQuantity",
11835 default,
11836 deserialize_with = "deserialize_optional_decimal"
11837 )]
11838 pub total_buy_quantity: Option<Decimal>,
11839
11840 #[serde(
11842 rename = "@totalSellQuantity",
11843 default,
11844 deserialize_with = "deserialize_optional_decimal"
11845 )]
11846 pub total_sell_quantity: Option<Decimal>,
11847
11848 #[serde(
11850 rename = "@totalBuyValue",
11851 default,
11852 deserialize_with = "deserialize_optional_decimal"
11853 )]
11854 pub total_buy_value: Option<Decimal>,
11855
11856 #[serde(
11858 rename = "@totalSellValue",
11859 default,
11860 deserialize_with = "deserialize_optional_decimal"
11861 )]
11862 pub total_sell_value: Option<Decimal>,
11863
11864 #[serde(
11866 rename = "@totalCommission",
11867 default,
11868 deserialize_with = "deserialize_optional_decimal"
11869 )]
11870 pub total_commission: Option<Decimal>,
11871
11872 #[serde(
11874 rename = "@realizedPnl",
11875 default,
11876 deserialize_with = "deserialize_optional_decimal"
11877 )]
11878 pub realized_pnl: Option<Decimal>,
11879
11880 #[serde(rename = "@currency", default)]
11882 pub currency: Option<String>,
11883
11884 #[serde(
11886 rename = "@securityID",
11887 default,
11888 deserialize_with = "deserialize_optional_string"
11889 )]
11890 pub security_id: Option<String>,
11891
11892 #[serde(
11894 rename = "@securityIDType",
11895 default,
11896 deserialize_with = "deserialize_optional_string"
11897 )]
11898 pub security_id_type: Option<String>,
11899
11900 #[serde(
11902 rename = "@cusip",
11903 default,
11904 deserialize_with = "deserialize_optional_string"
11905 )]
11906 pub cusip: Option<String>,
11907
11908 #[serde(
11910 rename = "@isin",
11911 default,
11912 deserialize_with = "deserialize_optional_string"
11913 )]
11914 pub isin: Option<String>,
11915
11916 #[serde(
11918 rename = "@listingExchange",
11919 default,
11920 deserialize_with = "deserialize_optional_string"
11921 )]
11922 pub listing_exchange: Option<String>,
11923
11924 #[serde(
11926 rename = "@underlyingConid",
11927 default,
11928 deserialize_with = "deserialize_optional_string"
11929 )]
11930 pub underlying_conid: Option<String>,
11931
11932 #[serde(
11934 rename = "@underlyingSymbol",
11935 default,
11936 deserialize_with = "deserialize_optional_string"
11937 )]
11938 pub underlying_symbol: Option<String>,
11939
11940 #[serde(
11942 rename = "@underlyingSecurityID",
11943 default,
11944 deserialize_with = "deserialize_optional_string"
11945 )]
11946 pub underlying_security_id: Option<String>,
11947
11948 #[serde(
11950 rename = "@underlyingListingExchange",
11951 default,
11952 deserialize_with = "deserialize_optional_string"
11953 )]
11954 pub underlying_listing_exchange: Option<String>,
11955
11956 #[serde(
11958 rename = "@issuer",
11959 default,
11960 deserialize_with = "deserialize_optional_string"
11961 )]
11962 pub issuer: Option<String>,
11963
11964 #[serde(
11966 rename = "@multiplier",
11967 default,
11968 deserialize_with = "deserialize_optional_decimal"
11969 )]
11970 pub multiplier: Option<Decimal>,
11971
11972 #[serde(
11974 rename = "@strike",
11975 default,
11976 deserialize_with = "deserialize_optional_decimal"
11977 )]
11978 pub strike: Option<Decimal>,
11979
11980 #[serde(
11982 rename = "@expiry",
11983 default,
11984 deserialize_with = "deserialize_optional_date"
11985 )]
11986 pub expiry: Option<NaiveDate>,
11987
11988 #[serde(rename = "@putCall", default)]
11990 pub put_call: Option<PutCall>,
11991
11992 #[serde(
11994 rename = "@principalAdjustFactor",
11995 default,
11996 deserialize_with = "deserialize_optional_decimal"
11997 )]
11998 pub principal_adjust_factor: Option<Decimal>,
11999
12000 #[serde(rename = "@transactionType", default)]
12002 pub transaction_type: Option<TradeType>,
12003
12004 #[serde(
12006 rename = "@tradeID",
12007 default,
12008 deserialize_with = "deserialize_optional_string"
12009 )]
12010 pub trade_id: Option<String>,
12011
12012 #[serde(
12014 rename = "@orderID",
12015 default,
12016 deserialize_with = "deserialize_optional_decimal"
12017 )]
12018 pub order_id: Option<Decimal>,
12019
12020 #[serde(
12022 rename = "@execID",
12023 default,
12024 deserialize_with = "deserialize_optional_string"
12025 )]
12026 pub exec_id: Option<String>,
12027
12028 #[serde(
12030 rename = "@brokerageOrderID",
12031 default,
12032 deserialize_with = "deserialize_optional_string"
12033 )]
12034 pub brokerage_order_id: Option<String>,
12035
12036 #[serde(
12038 rename = "@orderReference",
12039 default,
12040 deserialize_with = "deserialize_optional_string"
12041 )]
12042 pub order_reference: Option<String>,
12043
12044 #[serde(
12046 rename = "@volatilityOrderLink",
12047 default,
12048 deserialize_with = "deserialize_optional_string"
12049 )]
12050 pub volatility_order_link: Option<String>,
12051
12052 #[serde(
12054 rename = "@clearingFirmID",
12055 default,
12056 deserialize_with = "deserialize_optional_string"
12057 )]
12058 pub clearing_firm_id: Option<String>,
12059
12060 #[serde(
12062 rename = "@origTradePrice",
12063 default,
12064 deserialize_with = "deserialize_optional_decimal"
12065 )]
12066 pub orig_trade_price: Option<Decimal>,
12067
12068 #[serde(
12070 rename = "@origTradeDate",
12071 default,
12072 deserialize_with = "deserialize_optional_date"
12073 )]
12074 pub orig_trade_date: Option<NaiveDate>,
12075
12076 #[serde(
12078 rename = "@origTradeID",
12079 default,
12080 deserialize_with = "deserialize_optional_string"
12081 )]
12082 pub orig_trade_id: Option<String>,
12083
12084 #[serde(
12086 rename = "@orderTime",
12087 default,
12088 deserialize_with = "deserialize_optional_string"
12089 )]
12090 pub order_time: Option<String>,
12091
12092 #[serde(
12094 rename = "@dateTime",
12095 default,
12096 deserialize_with = "deserialize_optional_string"
12097 )]
12098 pub date_time: Option<String>,
12099
12100 #[serde(
12102 rename = "@reportDate",
12103 default,
12104 deserialize_with = "deserialize_optional_date"
12105 )]
12106 pub report_date: Option<NaiveDate>,
12107
12108 #[serde(
12110 rename = "@settleDate",
12111 default,
12112 deserialize_with = "deserialize_optional_date"
12113 )]
12114 pub settle_date: Option<NaiveDate>,
12115
12116 #[serde(
12118 rename = "@tradeDate",
12119 default,
12120 deserialize_with = "deserialize_optional_date"
12121 )]
12122 pub trade_date: Option<NaiveDate>,
12123
12124 #[serde(
12126 rename = "@exchange",
12127 default,
12128 deserialize_with = "deserialize_optional_string"
12129 )]
12130 pub exchange: Option<String>,
12131
12132 #[serde(rename = "@buySell", default)]
12134 pub buy_sell: Option<BuySell>,
12135
12136 #[serde(
12138 rename = "@quantity",
12139 default,
12140 deserialize_with = "deserialize_optional_decimal"
12141 )]
12142 pub quantity: Option<Decimal>,
12143
12144 #[serde(
12146 rename = "@price",
12147 default,
12148 deserialize_with = "deserialize_optional_decimal"
12149 )]
12150 pub price: Option<Decimal>,
12151
12152 #[serde(
12154 rename = "@amount",
12155 default,
12156 deserialize_with = "deserialize_optional_decimal"
12157 )]
12158 pub amount: Option<Decimal>,
12159
12160 #[serde(
12162 rename = "@proceeds",
12163 default,
12164 deserialize_with = "deserialize_optional_decimal"
12165 )]
12166 pub proceeds: Option<Decimal>,
12167
12168 #[serde(
12170 rename = "@commission",
12171 default,
12172 deserialize_with = "deserialize_optional_decimal"
12173 )]
12174 pub commission: Option<Decimal>,
12175
12176 #[serde(
12178 rename = "@brokerExecutionCommission",
12179 default,
12180 deserialize_with = "deserialize_optional_decimal"
12181 )]
12182 pub broker_execution_commission: Option<Decimal>,
12183
12184 #[serde(
12186 rename = "@brokerClearingCommission",
12187 default,
12188 deserialize_with = "deserialize_optional_decimal"
12189 )]
12190 pub broker_clearing_commission: Option<Decimal>,
12191
12192 #[serde(
12194 rename = "@thirdPartyExecutionCommission",
12195 default,
12196 deserialize_with = "deserialize_optional_decimal"
12197 )]
12198 pub third_party_execution_commission: Option<Decimal>,
12199
12200 #[serde(
12202 rename = "@thirdPartyClearingCommission",
12203 default,
12204 deserialize_with = "deserialize_optional_decimal"
12205 )]
12206 pub third_party_clearing_commission: Option<Decimal>,
12207
12208 #[serde(
12210 rename = "@thirdPartyRegulatoryCommission",
12211 default,
12212 deserialize_with = "deserialize_optional_decimal"
12213 )]
12214 pub third_party_regulatory_commission: Option<Decimal>,
12215
12216 #[serde(
12218 rename = "@otherCommission",
12219 default,
12220 deserialize_with = "deserialize_optional_decimal"
12221 )]
12222 pub other_commission: Option<Decimal>,
12223
12224 #[serde(
12226 rename = "@commissionCurrency",
12227 default,
12228 deserialize_with = "deserialize_optional_string"
12229 )]
12230 pub commission_currency: Option<String>,
12231
12232 #[serde(
12234 rename = "@tax",
12235 default,
12236 deserialize_with = "deserialize_optional_decimal"
12237 )]
12238 pub tax: Option<Decimal>,
12239
12240 #[serde(
12242 rename = "@code",
12243 default,
12244 deserialize_with = "deserialize_optional_string"
12245 )]
12246 pub code: Option<String>,
12247
12248 #[serde(rename = "@orderType", default)]
12250 pub order_type: Option<OrderType>,
12251
12252 #[serde(
12254 rename = "@levelOfDetail",
12255 default,
12256 deserialize_with = "deserialize_optional_string"
12257 )]
12258 pub level_of_detail: Option<String>,
12259
12260 #[serde(
12262 rename = "@traderID",
12263 default,
12264 deserialize_with = "deserialize_optional_string"
12265 )]
12266 pub trader_id: Option<String>,
12267
12268 #[serde(
12270 rename = "@isAPIOrder",
12271 default,
12272 deserialize_with = "deserialize_optional_bool"
12273 )]
12274 pub is_api_order: Option<bool>,
12275
12276 #[serde(
12278 rename = "@allocatedTo",
12279 default,
12280 deserialize_with = "deserialize_optional_string"
12281 )]
12282 pub allocated_to: Option<String>,
12283
12284 #[serde(
12286 rename = "@accruedInt",
12287 default,
12288 deserialize_with = "deserialize_optional_decimal"
12289 )]
12290 pub accrued_int: Option<Decimal>,
12291
12292 #[serde(
12294 rename = "@fxRateToBase",
12295 default,
12296 deserialize_with = "deserialize_optional_decimal"
12297 )]
12298 pub fx_rate_to_base: Option<Decimal>,
12299
12300 #[serde(
12302 rename = "@subCategory",
12303 default,
12304 deserialize_with = "deserialize_optional_string"
12305 )]
12306 pub sub_category: Option<String>,
12307
12308 #[serde(
12310 rename = "@figi",
12311 default,
12312 deserialize_with = "deserialize_optional_string"
12313 )]
12314 pub figi: Option<String>,
12315
12316 #[serde(
12318 rename = "@issuerCountryCode",
12319 default,
12320 deserialize_with = "deserialize_optional_string"
12321 )]
12322 pub issuer_country_code: Option<String>,
12323
12324 #[serde(
12326 rename = "@relatedTradeID",
12327 default,
12328 deserialize_with = "deserialize_optional_string"
12329 )]
12330 pub related_trade_id: Option<String>,
12331
12332 #[serde(
12334 rename = "@origTransactionID",
12335 default,
12336 deserialize_with = "deserialize_optional_string"
12337 )]
12338 pub orig_transaction_id: Option<String>,
12339
12340 #[serde(
12342 rename = "@relatedTransactionID",
12343 default,
12344 deserialize_with = "deserialize_optional_string"
12345 )]
12346 pub related_transaction_id: Option<String>,
12347
12348 #[serde(
12350 rename = "@positionActionID",
12351 default,
12352 deserialize_with = "deserialize_optional_string"
12353 )]
12354 pub position_action_id: Option<String>,
12355
12356 #[serde(
12358 rename = "@ibExecID",
12359 default,
12360 deserialize_with = "deserialize_optional_string"
12361 )]
12362 pub ib_exec_id: Option<String>,
12363
12364 #[serde(
12366 rename = "@extExecID",
12367 default,
12368 deserialize_with = "deserialize_optional_string"
12369 )]
12370 pub ext_exec_id: Option<String>,
12371
12372 #[serde(
12374 rename = "@exchOrderId",
12375 default,
12376 deserialize_with = "deserialize_optional_string"
12377 )]
12378 pub exch_order_id: Option<String>,
12379
12380 #[serde(
12382 rename = "@transactionID",
12383 default,
12384 deserialize_with = "deserialize_optional_string"
12385 )]
12386 pub transaction_id: Option<String>,
12387
12388 #[serde(
12390 rename = "@openDateTime",
12391 default,
12392 deserialize_with = "deserialize_optional_string"
12393 )]
12394 pub open_date_time: Option<String>,
12395
12396 #[serde(
12398 rename = "@holdingPeriodDateTime",
12399 default,
12400 deserialize_with = "deserialize_optional_string"
12401 )]
12402 pub holding_period_date_time: Option<String>,
12403
12404 #[serde(
12406 rename = "@settleDateTarget",
12407 default,
12408 deserialize_with = "deserialize_optional_date"
12409 )]
12410 pub settle_date_target: Option<NaiveDate>,
12411
12412 #[serde(
12414 rename = "@taxes",
12415 default,
12416 deserialize_with = "deserialize_optional_decimal"
12417 )]
12418 pub taxes: Option<Decimal>,
12419
12420 #[serde(
12422 rename = "@tradePrice",
12423 default,
12424 deserialize_with = "deserialize_optional_decimal"
12425 )]
12426 pub trade_price: Option<Decimal>,
12427
12428 #[serde(
12430 rename = "@tradeMoney",
12431 default,
12432 deserialize_with = "deserialize_optional_decimal"
12433 )]
12434 pub trade_money: Option<Decimal>,
12435
12436 #[serde(
12438 rename = "@changeInPrice",
12439 default,
12440 deserialize_with = "deserialize_optional_decimal"
12441 )]
12442 pub change_in_price: Option<Decimal>,
12443
12444 #[serde(
12446 rename = "@changeInQuantity",
12447 default,
12448 deserialize_with = "deserialize_optional_decimal"
12449 )]
12450 pub change_in_quantity: Option<Decimal>,
12451
12452 #[serde(
12454 rename = "@closePrice",
12455 default,
12456 deserialize_with = "deserialize_optional_decimal"
12457 )]
12458 pub close_price: Option<Decimal>,
12459
12460 #[serde(
12462 rename = "@commodityType",
12463 default,
12464 deserialize_with = "deserialize_optional_string"
12465 )]
12466 pub commodity_type: Option<String>,
12467
12468 #[serde(
12470 rename = "@cost",
12471 default,
12472 deserialize_with = "deserialize_optional_decimal"
12473 )]
12474 pub cost: Option<Decimal>,
12475
12476 #[serde(
12478 rename = "@deliveryType",
12479 default,
12480 deserialize_with = "deserialize_optional_string"
12481 )]
12482 pub delivery_type: Option<String>,
12483
12484 #[serde(
12486 rename = "@fifoPnlRealized",
12487 default,
12488 deserialize_with = "deserialize_optional_decimal"
12489 )]
12490 pub fifo_pnl_realized: Option<Decimal>,
12491
12492 #[serde(
12494 rename = "@fineness",
12495 default,
12496 deserialize_with = "deserialize_optional_decimal"
12497 )]
12498 pub fineness: Option<Decimal>,
12499
12500 #[serde(
12502 rename = "@ibCommission",
12503 default,
12504 deserialize_with = "deserialize_optional_decimal"
12505 )]
12506 pub ib_commission: Option<Decimal>,
12507
12508 #[serde(
12510 rename = "@ibCommissionCurrency",
12511 default,
12512 deserialize_with = "deserialize_optional_string"
12513 )]
12514 pub ib_commission_currency: Option<String>,
12515
12516 #[serde(
12518 rename = "@ibOrderID",
12519 default,
12520 deserialize_with = "deserialize_optional_string"
12521 )]
12522 pub ib_order_id: Option<String>,
12523
12524 #[serde(
12526 rename = "@initialInvestment",
12527 default,
12528 deserialize_with = "deserialize_optional_bool"
12529 )]
12530 pub initial_investment: Option<bool>,
12531
12532 #[serde(
12534 rename = "@mtmPnl",
12535 default,
12536 deserialize_with = "deserialize_optional_decimal"
12537 )]
12538 pub mtm_pnl: Option<Decimal>,
12539
12540 #[serde(
12542 rename = "@netCash",
12543 default,
12544 deserialize_with = "deserialize_optional_decimal"
12545 )]
12546 pub net_cash: Option<Decimal>,
12547
12548 #[serde(
12550 rename = "@netCashInBase",
12551 default,
12552 deserialize_with = "deserialize_optional_decimal"
12553 )]
12554 pub net_cash_in_base: Option<Decimal>,
12555
12556 #[serde(
12558 rename = "@notes",
12559 default,
12560 deserialize_with = "deserialize_optional_string"
12561 )]
12562 pub notes: Option<String>,
12563
12564 #[serde(rename = "@openCloseIndicator", default)]
12566 pub open_close_indicator: Option<OpenClose>,
12567
12568 #[serde(
12570 rename = "@origOrderID",
12571 default,
12572 deserialize_with = "deserialize_optional_string"
12573 )]
12574 pub orig_order_id: Option<String>,
12575
12576 #[serde(
12578 rename = "@rtn",
12579 default,
12580 deserialize_with = "deserialize_optional_string"
12581 )]
12582 pub rtn: Option<String>,
12583
12584 #[serde(
12586 rename = "@serialNumber",
12587 default,
12588 deserialize_with = "deserialize_optional_string"
12589 )]
12590 pub serial_number: Option<String>,
12591
12592 #[serde(
12594 rename = "@weight",
12595 default,
12596 deserialize_with = "deserialize_optional_string"
12597 )]
12598 pub weight: Option<String>,
12599
12600 #[serde(
12602 rename = "@whenRealized",
12603 default,
12604 deserialize_with = "deserialize_optional_string"
12605 )]
12606 pub when_realized: Option<String>,
12607
12608 #[serde(
12610 rename = "@whenReopened",
12611 default,
12612 deserialize_with = "deserialize_optional_string"
12613 )]
12614 pub when_reopened: Option<String>,
12615}
12616
12617#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
12619pub struct AssetSummary {
12620 #[serde(
12622 rename = "@accountId",
12623 default,
12624 deserialize_with = "deserialize_optional_string"
12625 )]
12626 pub account_id: Option<String>,
12627
12628 #[serde(rename = "@acctAlias", default)]
12630 pub acct_alias: Option<String>,
12631
12632 #[serde(rename = "@model", default)]
12634 pub model: Option<String>,
12635
12636 #[serde(rename = "@assetCategory", default)]
12638 pub asset_category: Option<AssetCategory>,
12639
12640 #[serde(
12642 rename = "@totalBuyQuantity",
12643 default,
12644 deserialize_with = "deserialize_optional_decimal"
12645 )]
12646 pub total_buy_quantity: Option<Decimal>,
12647
12648 #[serde(
12650 rename = "@totalSellQuantity",
12651 default,
12652 deserialize_with = "deserialize_optional_decimal"
12653 )]
12654 pub total_sell_quantity: Option<Decimal>,
12655
12656 #[serde(
12658 rename = "@totalBuyValue",
12659 default,
12660 deserialize_with = "deserialize_optional_decimal"
12661 )]
12662 pub total_buy_value: Option<Decimal>,
12663
12664 #[serde(
12666 rename = "@totalSellValue",
12667 default,
12668 deserialize_with = "deserialize_optional_decimal"
12669 )]
12670 pub total_sell_value: Option<Decimal>,
12671
12672 #[serde(
12674 rename = "@totalCommission",
12675 default,
12676 deserialize_with = "deserialize_optional_decimal"
12677 )]
12678 pub total_commission: Option<Decimal>,
12679
12680 #[serde(
12682 rename = "@realizedPnl",
12683 default,
12684 deserialize_with = "deserialize_optional_decimal"
12685 )]
12686 pub realized_pnl: Option<Decimal>,
12687
12688 #[serde(rename = "@currency", default)]
12690 pub currency: Option<String>,
12691
12692 #[serde(
12694 rename = "@symbol",
12695 default,
12696 deserialize_with = "deserialize_optional_string"
12697 )]
12698 pub symbol: Option<String>,
12699
12700 #[serde(
12702 rename = "@description",
12703 default,
12704 deserialize_with = "deserialize_optional_string"
12705 )]
12706 pub description: Option<String>,
12707
12708 #[serde(
12710 rename = "@conid",
12711 default,
12712 deserialize_with = "deserialize_optional_string"
12713 )]
12714 pub conid: Option<String>,
12715
12716 #[serde(
12718 rename = "@securityID",
12719 default,
12720 deserialize_with = "deserialize_optional_string"
12721 )]
12722 pub security_id: Option<String>,
12723
12724 #[serde(
12726 rename = "@securityIDType",
12727 default,
12728 deserialize_with = "deserialize_optional_string"
12729 )]
12730 pub security_id_type: Option<String>,
12731
12732 #[serde(
12734 rename = "@cusip",
12735 default,
12736 deserialize_with = "deserialize_optional_string"
12737 )]
12738 pub cusip: Option<String>,
12739
12740 #[serde(
12742 rename = "@isin",
12743 default,
12744 deserialize_with = "deserialize_optional_string"
12745 )]
12746 pub isin: Option<String>,
12747
12748 #[serde(
12750 rename = "@listingExchange",
12751 default,
12752 deserialize_with = "deserialize_optional_string"
12753 )]
12754 pub listing_exchange: Option<String>,
12755
12756 #[serde(
12758 rename = "@underlyingConid",
12759 default,
12760 deserialize_with = "deserialize_optional_string"
12761 )]
12762 pub underlying_conid: Option<String>,
12763
12764 #[serde(
12766 rename = "@underlyingSymbol",
12767 default,
12768 deserialize_with = "deserialize_optional_string"
12769 )]
12770 pub underlying_symbol: Option<String>,
12771
12772 #[serde(
12774 rename = "@underlyingSecurityID",
12775 default,
12776 deserialize_with = "deserialize_optional_string"
12777 )]
12778 pub underlying_security_id: Option<String>,
12779
12780 #[serde(
12782 rename = "@underlyingListingExchange",
12783 default,
12784 deserialize_with = "deserialize_optional_string"
12785 )]
12786 pub underlying_listing_exchange: Option<String>,
12787
12788 #[serde(
12790 rename = "@issuer",
12791 default,
12792 deserialize_with = "deserialize_optional_string"
12793 )]
12794 pub issuer: Option<String>,
12795
12796 #[serde(
12798 rename = "@multiplier",
12799 default,
12800 deserialize_with = "deserialize_optional_decimal"
12801 )]
12802 pub multiplier: Option<Decimal>,
12803
12804 #[serde(
12806 rename = "@strike",
12807 default,
12808 deserialize_with = "deserialize_optional_decimal"
12809 )]
12810 pub strike: Option<Decimal>,
12811
12812 #[serde(
12814 rename = "@expiry",
12815 default,
12816 deserialize_with = "deserialize_optional_date"
12817 )]
12818 pub expiry: Option<NaiveDate>,
12819
12820 #[serde(rename = "@putCall", default)]
12822 pub put_call: Option<PutCall>,
12823
12824 #[serde(
12826 rename = "@principalAdjustFactor",
12827 default,
12828 deserialize_with = "deserialize_optional_decimal"
12829 )]
12830 pub principal_adjust_factor: Option<Decimal>,
12831
12832 #[serde(rename = "@transactionType", default)]
12834 pub transaction_type: Option<TradeType>,
12835
12836 #[serde(
12838 rename = "@tradeID",
12839 default,
12840 deserialize_with = "deserialize_optional_string"
12841 )]
12842 pub trade_id: Option<String>,
12843
12844 #[serde(
12846 rename = "@orderID",
12847 default,
12848 deserialize_with = "deserialize_optional_decimal"
12849 )]
12850 pub order_id: Option<Decimal>,
12851
12852 #[serde(
12854 rename = "@execID",
12855 default,
12856 deserialize_with = "deserialize_optional_string"
12857 )]
12858 pub exec_id: Option<String>,
12859
12860 #[serde(
12862 rename = "@brokerageOrderID",
12863 default,
12864 deserialize_with = "deserialize_optional_string"
12865 )]
12866 pub brokerage_order_id: Option<String>,
12867
12868 #[serde(
12870 rename = "@orderReference",
12871 default,
12872 deserialize_with = "deserialize_optional_string"
12873 )]
12874 pub order_reference: Option<String>,
12875
12876 #[serde(
12878 rename = "@volatilityOrderLink",
12879 default,
12880 deserialize_with = "deserialize_optional_string"
12881 )]
12882 pub volatility_order_link: Option<String>,
12883
12884 #[serde(
12886 rename = "@clearingFirmID",
12887 default,
12888 deserialize_with = "deserialize_optional_string"
12889 )]
12890 pub clearing_firm_id: Option<String>,
12891
12892 #[serde(
12894 rename = "@origTradePrice",
12895 default,
12896 deserialize_with = "deserialize_optional_decimal"
12897 )]
12898 pub orig_trade_price: Option<Decimal>,
12899
12900 #[serde(
12902 rename = "@TradePrice",
12903 default,
12904 deserialize_with = "deserialize_optional_decimal"
12905 )]
12906 pub trade_price: Option<Decimal>,
12907
12908 #[serde(
12910 rename = "@tradeMoney",
12911 default,
12912 deserialize_with = "deserialize_optional_decimal"
12913 )]
12914 pub trade_money: Option<Decimal>,
12915
12916 #[serde(
12918 rename = "@taxes",
12919 default,
12920 deserialize_with = "deserialize_optional_decimal"
12921 )]
12922 pub taxes: Option<Decimal>,
12923
12924 #[serde(
12926 rename = "@origTradeDate",
12927 default,
12928 deserialize_with = "deserialize_optional_date"
12929 )]
12930 pub orig_trade_date: Option<NaiveDate>,
12931
12932 #[serde(
12934 rename = "@origTradeID",
12935 default,
12936 deserialize_with = "deserialize_optional_string"
12937 )]
12938 pub orig_trade_id: Option<String>,
12939
12940 #[serde(
12942 rename = "@tradePrice",
12943 default,
12944 deserialize_with = "deserialize_optional_decimal"
12945 )]
12946 pub trade_price_trad: Option<Decimal>,
12947
12948 #[serde(
12950 rename = "@orderTime",
12951 default,
12952 deserialize_with = "deserialize_optional_string"
12953 )]
12954 pub order_time: Option<String>,
12955
12956 #[serde(
12958 rename = "@exchOrderId",
12959 default,
12960 deserialize_with = "deserialize_optional_string"
12961 )]
12962 pub exch_order_id: Option<String>,
12963
12964 #[serde(
12966 rename = "@dateTime",
12967 default,
12968 deserialize_with = "deserialize_optional_string"
12969 )]
12970 pub date_time: Option<String>,
12971
12972 #[serde(
12974 rename = "@fxRateToBase",
12975 default,
12976 deserialize_with = "deserialize_optional_decimal"
12977 )]
12978 pub fx_rate_to_base: Option<Decimal>,
12979
12980 #[serde(
12982 rename = "@reportDate",
12983 default,
12984 deserialize_with = "deserialize_optional_date"
12985 )]
12986 pub report_date: Option<NaiveDate>,
12987
12988 #[serde(
12990 rename = "@ibExecID",
12991 default,
12992 deserialize_with = "deserialize_optional_string"
12993 )]
12994 pub ib_exec_id: Option<String>,
12995
12996 #[serde(
12998 rename = "@settleDateTarget",
12999 default,
13000 deserialize_with = "deserialize_optional_date"
13001 )]
13002 pub settle_date_target: Option<NaiveDate>,
13003
13004 #[serde(
13006 rename = "@cost",
13007 default,
13008 deserialize_with = "deserialize_optional_decimal"
13009 )]
13010 pub cost: Option<Decimal>,
13011
13012 #[serde(
13014 rename = "@extExecID",
13015 default,
13016 deserialize_with = "deserialize_optional_string"
13017 )]
13018 pub ext_exec_id: Option<String>,
13019
13020 #[serde(
13022 rename = "@openDateTime",
13023 default,
13024 deserialize_with = "deserialize_optional_string"
13025 )]
13026 pub open_date_time: Option<String>,
13027
13028 #[serde(
13030 rename = "@holdingPeriodDateTime",
13031 default,
13032 deserialize_with = "deserialize_optional_string"
13033 )]
13034 pub holding_period_date_time: Option<String>,
13035
13036 #[serde(
13038 rename = "@whenRealized",
13039 default,
13040 deserialize_with = "deserialize_optional_string"
13041 )]
13042 pub when_realized: Option<String>,
13043
13044 #[serde(
13046 rename = "@whenReopened",
13047 default,
13048 deserialize_with = "deserialize_optional_string"
13049 )]
13050 pub when_reopened: Option<String>,
13051
13052 #[serde(
13054 rename = "@changeInPrice",
13055 default,
13056 deserialize_with = "deserialize_optional_decimal"
13057 )]
13058 pub change_in_price: Option<Decimal>,
13059
13060 #[serde(
13062 rename = "@changeInQuantity",
13063 default,
13064 deserialize_with = "deserialize_optional_decimal"
13065 )]
13066 pub change_in_quantity: Option<Decimal>,
13067
13068 #[serde(
13070 rename = "@ibOrderID",
13071 default,
13072 deserialize_with = "deserialize_optional_string"
13073 )]
13074 pub ib_order_id: Option<String>,
13075
13076 #[serde(
13078 rename = "@origOrderID",
13079 default,
13080 deserialize_with = "deserialize_optional_string"
13081 )]
13082 pub orig_order_id: Option<String>,
13083
13084 #[serde(
13086 rename = "@transactionID",
13087 default,
13088 deserialize_with = "deserialize_optional_string"
13089 )]
13090 pub transaction_id: Option<String>,
13091
13092 #[serde(
13094 rename = "@tradeDate",
13095 default,
13096 deserialize_with = "deserialize_optional_date"
13097 )]
13098 pub trade_date: Option<NaiveDate>,
13099
13100 #[serde(rename = "@openCloseIndicator", default)]
13102 pub open_close_indicator: Option<OpenClose>,
13103
13104 #[serde(
13106 rename = "@notes",
13107 default,
13108 deserialize_with = "deserialize_optional_string"
13109 )]
13110 pub notes: Option<String>,
13111
13112 #[serde(
13114 rename = "@fxPnl",
13115 default,
13116 deserialize_with = "deserialize_optional_decimal"
13117 )]
13118 pub fx_pnl: Option<Decimal>,
13119
13120 #[serde(
13122 rename = "@mtmPnl",
13123 default,
13124 deserialize_with = "deserialize_optional_decimal"
13125 )]
13126 pub mtm_pnl: Option<Decimal>,
13127
13128 #[serde(
13130 rename = "@fifoPnlRealized",
13131 default,
13132 deserialize_with = "deserialize_optional_decimal"
13133 )]
13134 pub fifo_pnl_realized: Option<Decimal>,
13135
13136 #[serde(
13138 rename = "@closePrice",
13139 default,
13140 deserialize_with = "deserialize_optional_decimal"
13141 )]
13142 pub close_price: Option<Decimal>,
13143
13144 #[serde(
13146 rename = "@exchange",
13147 default,
13148 deserialize_with = "deserialize_optional_string"
13149 )]
13150 pub exchange: Option<String>,
13151
13152 #[serde(
13154 rename = "@ibCommission",
13155 default,
13156 deserialize_with = "deserialize_optional_decimal"
13157 )]
13158 pub ib_commission: Option<Decimal>,
13159
13160 #[serde(
13162 rename = "@ibCommissionCurrency",
13163 default,
13164 deserialize_with = "deserialize_optional_string"
13165 )]
13166 pub ib_commission_currency: Option<String>,
13167
13168 #[serde(
13170 rename = "@netCash",
13171 default,
13172 deserialize_with = "deserialize_optional_decimal"
13173 )]
13174 pub net_cash: Option<Decimal>,
13175
13176 #[serde(
13178 rename = "@netCashInBase",
13179 default,
13180 deserialize_with = "deserialize_optional_decimal"
13181 )]
13182 pub net_cash_in_base: Option<Decimal>,
13183
13184 #[serde(rename = "@buySell", default)]
13186 pub buy_sell: Option<BuySell>,
13187
13188 #[serde(
13190 rename = "@quantity",
13191 default,
13192 deserialize_with = "deserialize_optional_decimal"
13193 )]
13194 pub quantity: Option<Decimal>,
13195
13196 #[serde(
13198 rename = "@price",
13199 default,
13200 deserialize_with = "deserialize_optional_decimal"
13201 )]
13202 pub price: Option<Decimal>,
13203
13204 #[serde(
13206 rename = "@amount",
13207 default,
13208 deserialize_with = "deserialize_optional_decimal"
13209 )]
13210 pub amount: Option<Decimal>,
13211
13212 #[serde(
13214 rename = "@proceeds",
13215 default,
13216 deserialize_with = "deserialize_optional_decimal"
13217 )]
13218 pub proceeds: Option<Decimal>,
13219
13220 #[serde(
13222 rename = "@commission",
13223 default,
13224 deserialize_with = "deserialize_optional_decimal"
13225 )]
13226 pub commission: Option<Decimal>,
13227
13228 #[serde(
13230 rename = "@brokerExecutionCommission",
13231 default,
13232 deserialize_with = "deserialize_optional_decimal"
13233 )]
13234 pub broker_execution_commission: Option<Decimal>,
13235
13236 #[serde(
13238 rename = "@brokerClearingCommission",
13239 default,
13240 deserialize_with = "deserialize_optional_decimal"
13241 )]
13242 pub broker_clearing_commission: Option<Decimal>,
13243
13244 #[serde(
13246 rename = "@thirdPartyExecutionCommission",
13247 default,
13248 deserialize_with = "deserialize_optional_decimal"
13249 )]
13250 pub third_party_execution_commission: Option<Decimal>,
13251
13252 #[serde(
13254 rename = "@thirdPartyClearingCommission",
13255 default,
13256 deserialize_with = "deserialize_optional_decimal"
13257 )]
13258 pub third_party_clearing_commission: Option<Decimal>,
13259
13260 #[serde(
13262 rename = "@thirdPartyRegulatoryCommission",
13263 default,
13264 deserialize_with = "deserialize_optional_decimal"
13265 )]
13266 pub third_party_regulatory_commission: Option<Decimal>,
13267
13268 #[serde(
13270 rename = "@otherCommission",
13271 default,
13272 deserialize_with = "deserialize_optional_decimal"
13273 )]
13274 pub other_commission: Option<Decimal>,
13275
13276 #[serde(
13278 rename = "@commissionCurrency",
13279 default,
13280 deserialize_with = "deserialize_optional_string"
13281 )]
13282 pub commission_currency: Option<String>,
13283
13284 #[serde(
13286 rename = "@tax",
13287 default,
13288 deserialize_with = "deserialize_optional_decimal"
13289 )]
13290 pub tax: Option<Decimal>,
13291
13292 #[serde(
13294 rename = "@code",
13295 default,
13296 deserialize_with = "deserialize_optional_string"
13297 )]
13298 pub code: Option<String>,
13299
13300 #[serde(rename = "@orderType", default)]
13302 pub order_type: Option<OrderType>,
13303
13304 #[serde(
13306 rename = "@levelOfDetail",
13307 default,
13308 deserialize_with = "deserialize_optional_string"
13309 )]
13310 pub level_of_detail: Option<String>,
13311
13312 #[serde(
13314 rename = "@traderID",
13315 default,
13316 deserialize_with = "deserialize_optional_string"
13317 )]
13318 pub trader_id: Option<String>,
13319
13320 #[serde(
13322 rename = "@isAPIOrder",
13323 default,
13324 deserialize_with = "deserialize_optional_bool"
13325 )]
13326 pub is_api_order: Option<bool>,
13327
13328 #[serde(
13330 rename = "@allocatedTo",
13331 default,
13332 deserialize_with = "deserialize_optional_string"
13333 )]
13334 pub allocated_to: Option<String>,
13335
13336 #[serde(
13338 rename = "@accruedInt",
13339 default,
13340 deserialize_with = "deserialize_optional_decimal"
13341 )]
13342 pub accrued_int: Option<Decimal>,
13343
13344 #[serde(
13346 rename = "@deliveryType",
13347 default,
13348 deserialize_with = "deserialize_optional_string"
13349 )]
13350 pub delivery_type: Option<String>,
13351
13352 #[serde(
13354 rename = "@serialNumber",
13355 default,
13356 deserialize_with = "deserialize_optional_string"
13357 )]
13358 pub serial_number: Option<String>,
13359
13360 #[serde(
13362 rename = "@commodityType",
13363 default,
13364 deserialize_with = "deserialize_optional_string"
13365 )]
13366 pub commodity_type: Option<String>,
13367
13368 #[serde(
13370 rename = "@fineness",
13371 default,
13372 deserialize_with = "deserialize_optional_decimal"
13373 )]
13374 pub fineness: Option<Decimal>,
13375
13376 #[serde(
13378 rename = "@weight",
13379 default,
13380 deserialize_with = "deserialize_optional_string"
13381 )]
13382 pub weight: Option<String>,
13383
13384 #[serde(
13386 rename = "@subCategory",
13387 default,
13388 deserialize_with = "deserialize_optional_string"
13389 )]
13390 pub sub_category: Option<String>,
13391
13392 #[serde(
13394 rename = "@figi",
13395 default,
13396 deserialize_with = "deserialize_optional_string"
13397 )]
13398 pub figi: Option<String>,
13399
13400 #[serde(
13402 rename = "@issuerCountryCode",
13403 default,
13404 deserialize_with = "deserialize_optional_string"
13405 )]
13406 pub issuer_country_code: Option<String>,
13407
13408 #[serde(
13410 rename = "@relatedTradeID",
13411 default,
13412 deserialize_with = "deserialize_optional_string"
13413 )]
13414 pub related_trade_id: Option<String>,
13415
13416 #[serde(
13418 rename = "@origTransactionID",
13419 default,
13420 deserialize_with = "deserialize_optional_string"
13421 )]
13422 pub orig_transaction_id: Option<String>,
13423
13424 #[serde(
13426 rename = "@relatedTransactionID",
13427 default,
13428 deserialize_with = "deserialize_optional_string"
13429 )]
13430 pub related_transaction_id: Option<String>,
13431
13432 #[serde(
13434 rename = "@rtn",
13435 default,
13436 deserialize_with = "deserialize_optional_string"
13437 )]
13438 pub rtn: Option<String>,
13439
13440 #[serde(
13442 rename = "@initialInvestment",
13443 default,
13444 deserialize_with = "deserialize_optional_bool"
13445 )]
13446 pub initial_investment: Option<bool>,
13447
13448 #[serde(
13450 rename = "@positionActionID",
13451 default,
13452 deserialize_with = "deserialize_optional_string"
13453 )]
13454 pub position_action_id: Option<String>,
13455}
13456
13457#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
13459pub struct Order {
13460 #[serde(
13462 rename = "@accountId",
13463 default,
13464 deserialize_with = "deserialize_optional_string"
13465 )]
13466 pub account_id: Option<String>,
13467
13468 #[serde(rename = "@acctAlias", default)]
13470 pub acct_alias: Option<String>,
13471
13472 #[serde(rename = "@model", default)]
13474 pub model: Option<String>,
13475
13476 #[serde(rename = "@orderID", default)]
13478 pub order_id: Option<String>,
13479
13480 #[serde(rename = "@symbol", default)]
13482 pub symbol: Option<String>,
13483
13484 #[serde(rename = "@description", default)]
13486 pub description: Option<String>,
13487
13488 #[serde(rename = "@conid", default)]
13490 pub conid: Option<String>,
13491
13492 #[serde(rename = "@assetCategory", default)]
13494 pub asset_category: Option<AssetCategory>,
13495
13496 #[serde(rename = "@orderTime", default)]
13498 pub order_time: Option<String>,
13499
13500 #[serde(rename = "@orderType", default)]
13502 pub order_type: Option<String>,
13503
13504 #[serde(rename = "@side", default)]
13506 pub side: Option<String>,
13507
13508 #[serde(rename = "@tif", default)]
13510 pub tif: Option<String>,
13511
13512 #[serde(
13514 rename = "@orderQty",
13515 default,
13516 deserialize_with = "deserialize_optional_decimal"
13517 )]
13518 pub order_qty: Option<Decimal>,
13519
13520 #[serde(
13522 rename = "@limitPrice",
13523 default,
13524 deserialize_with = "deserialize_optional_decimal"
13525 )]
13526 pub limit_price: Option<Decimal>,
13527
13528 #[serde(
13530 rename = "@stopPrice",
13531 default,
13532 deserialize_with = "deserialize_optional_decimal"
13533 )]
13534 pub stop_price: Option<Decimal>,
13535
13536 #[serde(
13538 rename = "@filledQty",
13539 default,
13540 deserialize_with = "deserialize_optional_decimal"
13541 )]
13542 pub filled_qty: Option<Decimal>,
13543
13544 #[serde(
13546 rename = "@avgPrice",
13547 default,
13548 deserialize_with = "deserialize_optional_decimal"
13549 )]
13550 pub avg_price: Option<Decimal>,
13551
13552 #[serde(
13554 rename = "@remainingQty",
13555 default,
13556 deserialize_with = "deserialize_optional_decimal"
13557 )]
13558 pub remaining_qty: Option<Decimal>,
13559
13560 #[serde(rename = "@status", default)]
13562 pub status: Option<String>,
13563
13564 #[serde(rename = "@currency", default)]
13566 pub currency: Option<String>,
13567
13568 #[serde(
13570 rename = "@securityID",
13571 default,
13572 deserialize_with = "deserialize_optional_string"
13573 )]
13574 pub security_id: Option<String>,
13575
13576 #[serde(
13578 rename = "@securityIDType",
13579 default,
13580 deserialize_with = "deserialize_optional_string"
13581 )]
13582 pub security_id_type: Option<String>,
13583
13584 #[serde(
13586 rename = "@cusip",
13587 default,
13588 deserialize_with = "deserialize_optional_string"
13589 )]
13590 pub cusip: Option<String>,
13591
13592 #[serde(
13594 rename = "@isin",
13595 default,
13596 deserialize_with = "deserialize_optional_string"
13597 )]
13598 pub isin: Option<String>,
13599
13600 #[serde(
13602 rename = "@listingExchange",
13603 default,
13604 deserialize_with = "deserialize_optional_string"
13605 )]
13606 pub listing_exchange: Option<String>,
13607
13608 #[serde(
13610 rename = "@underlyingConid",
13611 default,
13612 deserialize_with = "deserialize_optional_string"
13613 )]
13614 pub underlying_conid: Option<String>,
13615
13616 #[serde(
13618 rename = "@underlyingSymbol",
13619 default,
13620 deserialize_with = "deserialize_optional_string"
13621 )]
13622 pub underlying_symbol: Option<String>,
13623
13624 #[serde(
13626 rename = "@underlyingSecurityID",
13627 default,
13628 deserialize_with = "deserialize_optional_string"
13629 )]
13630 pub underlying_security_id: Option<String>,
13631
13632 #[serde(
13634 rename = "@underlyingListingExchange",
13635 default,
13636 deserialize_with = "deserialize_optional_string"
13637 )]
13638 pub underlying_listing_exchange: Option<String>,
13639
13640 #[serde(
13642 rename = "@issuer",
13643 default,
13644 deserialize_with = "deserialize_optional_string"
13645 )]
13646 pub issuer: Option<String>,
13647
13648 #[serde(
13650 rename = "@multiplier",
13651 default,
13652 deserialize_with = "deserialize_optional_decimal"
13653 )]
13654 pub multiplier: Option<Decimal>,
13655
13656 #[serde(
13658 rename = "@strike",
13659 default,
13660 deserialize_with = "deserialize_optional_decimal"
13661 )]
13662 pub strike: Option<Decimal>,
13663
13664 #[serde(
13666 rename = "@expiry",
13667 default,
13668 deserialize_with = "deserialize_optional_date"
13669 )]
13670 pub expiry: Option<NaiveDate>,
13671
13672 #[serde(rename = "@putCall", default)]
13674 pub put_call: Option<PutCall>,
13675
13676 #[serde(
13678 rename = "@principalAdjustFactor",
13679 default,
13680 deserialize_with = "deserialize_optional_decimal"
13681 )]
13682 pub principal_adjust_factor: Option<Decimal>,
13683
13684 #[serde(rename = "@transactionType", default)]
13686 pub transaction_type: Option<TradeType>,
13687
13688 #[serde(
13690 rename = "@tradeID",
13691 default,
13692 deserialize_with = "deserialize_optional_string"
13693 )]
13694 pub trade_id: Option<String>,
13695
13696 #[serde(
13698 rename = "@execID",
13699 default,
13700 deserialize_with = "deserialize_optional_string"
13701 )]
13702 pub exec_id: Option<String>,
13703
13704 #[serde(
13706 rename = "@brokerageOrderID",
13707 default,
13708 deserialize_with = "deserialize_optional_string"
13709 )]
13710 pub brokerage_order_id: Option<String>,
13711
13712 #[serde(
13714 rename = "@orderReference",
13715 default,
13716 deserialize_with = "deserialize_optional_string"
13717 )]
13718 pub order_reference: Option<String>,
13719
13720 #[serde(
13722 rename = "@volatilityOrderLink",
13723 default,
13724 deserialize_with = "deserialize_optional_string"
13725 )]
13726 pub volatility_order_link: Option<String>,
13727
13728 #[serde(
13730 rename = "@clearingFirmID",
13731 default,
13732 deserialize_with = "deserialize_optional_string"
13733 )]
13734 pub clearing_firm_id: Option<String>,
13735
13736 #[serde(
13738 rename = "@origTradePrice",
13739 default,
13740 deserialize_with = "deserialize_optional_decimal"
13741 )]
13742 pub orig_trade_price: Option<Decimal>,
13743
13744 #[serde(
13746 rename = "@origTradeDate",
13747 default,
13748 deserialize_with = "deserialize_optional_date"
13749 )]
13750 pub orig_trade_date: Option<NaiveDate>,
13751
13752 #[serde(
13754 rename = "@origTradeID",
13755 default,
13756 deserialize_with = "deserialize_optional_string"
13757 )]
13758 pub orig_trade_id: Option<String>,
13759
13760 #[serde(
13762 rename = "@dateTime",
13763 default,
13764 deserialize_with = "deserialize_optional_string"
13765 )]
13766 pub date_time: Option<String>,
13767
13768 #[serde(
13770 rename = "@reportDate",
13771 default,
13772 deserialize_with = "deserialize_optional_date"
13773 )]
13774 pub report_date: Option<NaiveDate>,
13775
13776 #[serde(
13778 rename = "@settleDate",
13779 default,
13780 deserialize_with = "deserialize_optional_date"
13781 )]
13782 pub settle_date: Option<NaiveDate>,
13783
13784 #[serde(
13786 rename = "@tradeDate",
13787 default,
13788 deserialize_with = "deserialize_optional_date"
13789 )]
13790 pub trade_date: Option<NaiveDate>,
13791
13792 #[serde(
13794 rename = "@exchange",
13795 default,
13796 deserialize_with = "deserialize_optional_string"
13797 )]
13798 pub exchange: Option<String>,
13799
13800 #[serde(rename = "@buySell", default)]
13802 pub buy_sell: Option<BuySell>,
13803
13804 #[serde(
13806 rename = "@quantity",
13807 default,
13808 deserialize_with = "deserialize_optional_decimal"
13809 )]
13810 pub quantity: Option<Decimal>,
13811
13812 #[serde(
13814 rename = "@price",
13815 default,
13816 deserialize_with = "deserialize_optional_decimal"
13817 )]
13818 pub price: Option<Decimal>,
13819
13820 #[serde(
13822 rename = "@amount",
13823 default,
13824 deserialize_with = "deserialize_optional_decimal"
13825 )]
13826 pub amount: Option<Decimal>,
13827
13828 #[serde(
13830 rename = "@proceeds",
13831 default,
13832 deserialize_with = "deserialize_optional_decimal"
13833 )]
13834 pub proceeds: Option<Decimal>,
13835
13836 #[serde(
13838 rename = "@commission",
13839 default,
13840 deserialize_with = "deserialize_optional_decimal"
13841 )]
13842 pub commission: Option<Decimal>,
13843
13844 #[serde(
13846 rename = "@brokerExecutionCommission",
13847 default,
13848 deserialize_with = "deserialize_optional_decimal"
13849 )]
13850 pub broker_execution_commission: Option<Decimal>,
13851
13852 #[serde(
13854 rename = "@brokerClearingCommission",
13855 default,
13856 deserialize_with = "deserialize_optional_decimal"
13857 )]
13858 pub broker_clearing_commission: Option<Decimal>,
13859
13860 #[serde(
13862 rename = "@thirdPartyExecutionCommission",
13863 default,
13864 deserialize_with = "deserialize_optional_decimal"
13865 )]
13866 pub third_party_execution_commission: Option<Decimal>,
13867
13868 #[serde(
13870 rename = "@thirdPartyClearingCommission",
13871 default,
13872 deserialize_with = "deserialize_optional_decimal"
13873 )]
13874 pub third_party_clearing_commission: Option<Decimal>,
13875
13876 #[serde(
13878 rename = "@thirdPartyRegulatoryCommission",
13879 default,
13880 deserialize_with = "deserialize_optional_decimal"
13881 )]
13882 pub third_party_regulatory_commission: Option<Decimal>,
13883
13884 #[serde(
13886 rename = "@otherCommission",
13887 default,
13888 deserialize_with = "deserialize_optional_decimal"
13889 )]
13890 pub other_commission: Option<Decimal>,
13891
13892 #[serde(
13894 rename = "@commissionCurrency",
13895 default,
13896 deserialize_with = "deserialize_optional_string"
13897 )]
13898 pub commission_currency: Option<String>,
13899
13900 #[serde(
13902 rename = "@tax",
13903 default,
13904 deserialize_with = "deserialize_optional_decimal"
13905 )]
13906 pub tax: Option<Decimal>,
13907
13908 #[serde(
13910 rename = "@code",
13911 default,
13912 deserialize_with = "deserialize_optional_string"
13913 )]
13914 pub code: Option<String>,
13915
13916 #[serde(
13918 rename = "@levelOfDetail",
13919 default,
13920 deserialize_with = "deserialize_optional_string"
13921 )]
13922 pub level_of_detail: Option<String>,
13923
13924 #[serde(
13926 rename = "@traderID",
13927 default,
13928 deserialize_with = "deserialize_optional_string"
13929 )]
13930 pub trader_id: Option<String>,
13931
13932 #[serde(
13934 rename = "@isAPIOrder",
13935 default,
13936 deserialize_with = "deserialize_optional_bool"
13937 )]
13938 pub is_api_order: Option<bool>,
13939
13940 #[serde(
13942 rename = "@allocatedTo",
13943 default,
13944 deserialize_with = "deserialize_optional_string"
13945 )]
13946 pub allocated_to: Option<String>,
13947
13948 #[serde(
13950 rename = "@accruedInt",
13951 default,
13952 deserialize_with = "deserialize_optional_decimal"
13953 )]
13954 pub accrued_int: Option<Decimal>,
13955
13956 #[serde(
13958 rename = "@netCash",
13959 default,
13960 deserialize_with = "deserialize_optional_decimal"
13961 )]
13962 pub net_cash: Option<Decimal>,
13963
13964 #[serde(
13966 rename = "@tradePrice",
13967 default,
13968 deserialize_with = "deserialize_optional_decimal"
13969 )]
13970 pub trade_price: Option<Decimal>,
13971
13972 #[serde(
13974 rename = "@ibCommission",
13975 default,
13976 deserialize_with = "deserialize_optional_decimal"
13977 )]
13978 pub ib_commission: Option<Decimal>,
13979
13980 #[serde(
13982 rename = "@ibOrderID",
13983 default,
13984 deserialize_with = "deserialize_optional_string"
13985 )]
13986 pub ib_order_id: Option<String>,
13987
13988 #[serde(
13990 rename = "@fxRateToBase",
13991 default,
13992 deserialize_with = "deserialize_optional_decimal"
13993 )]
13994 pub fx_rate_to_base: Option<Decimal>,
13995
13996 #[serde(
13998 rename = "@settleDateTarget",
13999 default,
14000 deserialize_with = "deserialize_optional_date"
14001 )]
14002 pub settle_date_target: Option<NaiveDate>,
14003
14004 #[serde(
14006 rename = "@tradeMoney",
14007 default,
14008 deserialize_with = "deserialize_optional_decimal"
14009 )]
14010 pub trade_money: Option<Decimal>,
14011
14012 #[serde(
14014 rename = "@taxes",
14015 default,
14016 deserialize_with = "deserialize_optional_decimal"
14017 )]
14018 pub taxes: Option<Decimal>,
14019
14020 #[serde(
14022 rename = "@ibCommissionCurrency",
14023 default,
14024 deserialize_with = "deserialize_optional_string"
14025 )]
14026 pub ib_commission_currency: Option<String>,
14027
14028 #[serde(
14030 rename = "@closePrice",
14031 default,
14032 deserialize_with = "deserialize_optional_decimal"
14033 )]
14034 pub close_price: Option<Decimal>,
14035
14036 #[serde(rename = "@openCloseIndicator", default)]
14038 pub open_close_indicator: Option<OpenClose>,
14039
14040 #[serde(
14042 rename = "@notes",
14043 default,
14044 deserialize_with = "deserialize_optional_string"
14045 )]
14046 pub notes: Option<String>,
14047
14048 #[serde(
14050 rename = "@cost",
14051 default,
14052 deserialize_with = "deserialize_optional_decimal"
14053 )]
14054 pub cost: Option<Decimal>,
14055
14056 #[serde(
14058 rename = "@fifoPnlRealized",
14059 default,
14060 deserialize_with = "deserialize_optional_decimal"
14061 )]
14062 pub fifo_pnl_realized: Option<Decimal>,
14063
14064 #[serde(
14066 rename = "@fxPnl",
14067 default,
14068 deserialize_with = "deserialize_optional_decimal"
14069 )]
14070 pub fx_pnl: Option<Decimal>,
14071
14072 #[serde(
14074 rename = "@mtmPnl",
14075 default,
14076 deserialize_with = "deserialize_optional_decimal"
14077 )]
14078 pub mtm_pnl: Option<Decimal>,
14079
14080 #[serde(
14082 rename = "@origOrderID",
14083 default,
14084 deserialize_with = "deserialize_optional_string"
14085 )]
14086 pub orig_order_id: Option<String>,
14087
14088 #[serde(
14090 rename = "@transactionID",
14091 default,
14092 deserialize_with = "deserialize_optional_string"
14093 )]
14094 pub transaction_id: Option<String>,
14095
14096 #[serde(
14098 rename = "@ibExecID",
14099 default,
14100 deserialize_with = "deserialize_optional_string"
14101 )]
14102 pub ib_exec_id: Option<String>,
14103
14104 #[serde(
14106 rename = "@exchOrderId",
14107 default,
14108 deserialize_with = "deserialize_optional_string"
14109 )]
14110 pub exch_order_id: Option<String>,
14111
14112 #[serde(
14114 rename = "@extExecID",
14115 default,
14116 deserialize_with = "deserialize_optional_string"
14117 )]
14118 pub ext_exec_id: Option<String>,
14119
14120 #[serde(
14122 rename = "@openDateTime",
14123 default,
14124 deserialize_with = "deserialize_optional_string"
14125 )]
14126 pub open_date_time: Option<String>,
14127
14128 #[serde(
14130 rename = "@holdingPeriodDateTime",
14131 default,
14132 deserialize_with = "deserialize_optional_string"
14133 )]
14134 pub holding_period_date_time: Option<String>,
14135
14136 #[serde(
14138 rename = "@whenRealized",
14139 default,
14140 deserialize_with = "deserialize_optional_string"
14141 )]
14142 pub when_realized: Option<String>,
14143
14144 #[serde(
14146 rename = "@whenReopened",
14147 default,
14148 deserialize_with = "deserialize_optional_string"
14149 )]
14150 pub when_reopened: Option<String>,
14151
14152 #[serde(
14154 rename = "@changeInPrice",
14155 default,
14156 deserialize_with = "deserialize_optional_decimal"
14157 )]
14158 pub change_in_price: Option<Decimal>,
14159
14160 #[serde(
14162 rename = "@changeInQuantity",
14163 default,
14164 deserialize_with = "deserialize_optional_decimal"
14165 )]
14166 pub change_in_quantity: Option<Decimal>,
14167
14168 #[serde(
14170 rename = "@subCategory",
14171 default,
14172 deserialize_with = "deserialize_optional_string"
14173 )]
14174 pub sub_category: Option<String>,
14175
14176 #[serde(
14178 rename = "@figi",
14179 default,
14180 deserialize_with = "deserialize_optional_string"
14181 )]
14182 pub figi: Option<String>,
14183
14184 #[serde(
14186 rename = "@issuerCountryCode",
14187 default,
14188 deserialize_with = "deserialize_optional_string"
14189 )]
14190 pub issuer_country_code: Option<String>,
14191
14192 #[serde(
14194 rename = "@relatedTradeID",
14195 default,
14196 deserialize_with = "deserialize_optional_string"
14197 )]
14198 pub related_trade_id: Option<String>,
14199
14200 #[serde(
14202 rename = "@origTransactionID",
14203 default,
14204 deserialize_with = "deserialize_optional_string"
14205 )]
14206 pub orig_transaction_id: Option<String>,
14207
14208 #[serde(
14210 rename = "@relatedTransactionID",
14211 default,
14212 deserialize_with = "deserialize_optional_string"
14213 )]
14214 pub related_transaction_id: Option<String>,
14215
14216 #[serde(
14218 rename = "@rtn",
14219 default,
14220 deserialize_with = "deserialize_optional_string"
14221 )]
14222 pub rtn: Option<String>,
14223
14224 #[serde(
14226 rename = "@initialInvestment",
14227 default,
14228 deserialize_with = "deserialize_optional_bool"
14229 )]
14230 pub initial_investment: Option<bool>,
14231
14232 #[serde(
14234 rename = "@serialNumber",
14235 default,
14236 deserialize_with = "deserialize_optional_string"
14237 )]
14238 pub serial_number: Option<String>,
14239
14240 #[serde(
14242 rename = "@deliveryType",
14243 default,
14244 deserialize_with = "deserialize_optional_string"
14245 )]
14246 pub delivery_type: Option<String>,
14247
14248 #[serde(
14250 rename = "@commodityType",
14251 default,
14252 deserialize_with = "deserialize_optional_string"
14253 )]
14254 pub commodity_type: Option<String>,
14255
14256 #[serde(
14258 rename = "@fineness",
14259 default,
14260 deserialize_with = "deserialize_optional_decimal"
14261 )]
14262 pub fineness: Option<Decimal>,
14263
14264 #[serde(
14266 rename = "@weight",
14267 default,
14268 deserialize_with = "deserialize_optional_string"
14269 )]
14270 pub weight: Option<String>,
14271
14272 #[serde(
14274 rename = "@positionActionID",
14275 default,
14276 deserialize_with = "deserialize_optional_string"
14277 )]
14278 pub position_action_id: Option<String>,
14279}
14280
14281#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14286pub struct NetStockPosition {
14287 #[serde(rename = "@assetCategory", default)]
14289 pub asset_category: Option<AssetCategory>,
14290
14291 #[serde(
14293 rename = "@accountId",
14294 default,
14295 deserialize_with = "deserialize_optional_string"
14296 )]
14297 pub account_id: Option<String>,
14298
14299 #[serde(
14301 rename = "@acctAlias",
14302 default,
14303 deserialize_with = "deserialize_optional_string"
14304 )]
14305 pub acct_alias: Option<String>,
14306
14307 #[serde(
14309 rename = "@model",
14310 default,
14311 deserialize_with = "deserialize_optional_string"
14312 )]
14313 pub model: Option<String>,
14314
14315 #[serde(
14317 rename = "@currency",
14318 default,
14319 deserialize_with = "deserialize_optional_string"
14320 )]
14321 pub currency: Option<String>,
14322
14323 #[serde(
14325 rename = "@symbol",
14326 default,
14327 deserialize_with = "deserialize_optional_string"
14328 )]
14329 pub symbol: Option<String>,
14330
14331 #[serde(
14333 rename = "@description",
14334 default,
14335 deserialize_with = "deserialize_optional_string"
14336 )]
14337 pub description: Option<String>,
14338
14339 #[serde(
14341 rename = "@conid",
14342 default,
14343 deserialize_with = "deserialize_optional_string"
14344 )]
14345 pub conid: Option<String>,
14346
14347 #[serde(
14349 rename = "@securityID",
14350 default,
14351 deserialize_with = "deserialize_optional_string"
14352 )]
14353 pub security_id: Option<String>,
14354
14355 #[serde(
14357 rename = "@securityIDType",
14358 default,
14359 deserialize_with = "deserialize_optional_string"
14360 )]
14361 pub security_id_type: Option<String>,
14362
14363 #[serde(
14365 rename = "@cusip",
14366 default,
14367 deserialize_with = "deserialize_optional_string"
14368 )]
14369 pub cusip: Option<String>,
14370
14371 #[serde(
14373 rename = "@isin",
14374 default,
14375 deserialize_with = "deserialize_optional_string"
14376 )]
14377 pub isin: Option<String>,
14378
14379 #[serde(
14381 rename = "@sedol",
14382 default,
14383 deserialize_with = "deserialize_optional_string"
14384 )]
14385 pub sedol: Option<String>,
14386
14387 #[serde(
14389 rename = "@listingExchange",
14390 default,
14391 deserialize_with = "deserialize_optional_string"
14392 )]
14393 pub listing_exchange: Option<String>,
14394
14395 #[serde(
14397 rename = "@underlyingConid",
14398 default,
14399 deserialize_with = "deserialize_optional_string"
14400 )]
14401 pub underlying_conid: Option<String>,
14402
14403 #[serde(
14405 rename = "@underlyingSymbol",
14406 default,
14407 deserialize_with = "deserialize_optional_string"
14408 )]
14409 pub underlying_symbol: Option<String>,
14410
14411 #[serde(
14413 rename = "@underlyingSecurityID",
14414 default,
14415 deserialize_with = "deserialize_optional_string"
14416 )]
14417 pub underlying_security_id: Option<String>,
14418
14419 #[serde(
14421 rename = "@underlyingListingExchange",
14422 default,
14423 deserialize_with = "deserialize_optional_string"
14424 )]
14425 pub underlying_listing_exchange: Option<String>,
14426
14427 #[serde(
14429 rename = "@issuer",
14430 default,
14431 deserialize_with = "deserialize_optional_string"
14432 )]
14433 pub issuer: Option<String>,
14434
14435 #[serde(
14437 rename = "@multiplier",
14438 default,
14439 deserialize_with = "deserialize_optional_decimal"
14440 )]
14441 pub multiplier: Option<Decimal>,
14442
14443 #[serde(
14445 rename = "@strike",
14446 default,
14447 deserialize_with = "deserialize_optional_decimal"
14448 )]
14449 pub strike: Option<Decimal>,
14450
14451 #[serde(
14453 rename = "@expiry",
14454 default,
14455 deserialize_with = "deserialize_optional_date"
14456 )]
14457 pub expiry: Option<NaiveDate>,
14458
14459 #[serde(rename = "@putCall", default)]
14461 pub put_call: Option<PutCall>,
14462
14463 #[serde(
14465 rename = "@principalAdjustFactor",
14466 default,
14467 deserialize_with = "deserialize_optional_decimal"
14468 )]
14469 pub principal_adjust_factor: Option<Decimal>,
14470
14471 #[serde(
14473 rename = "@reportDate",
14474 default,
14475 deserialize_with = "deserialize_optional_date"
14476 )]
14477 pub report_date: Option<NaiveDate>,
14478
14479 #[serde(
14481 rename = "@sharesAtIb",
14482 default,
14483 deserialize_with = "deserialize_optional_decimal"
14484 )]
14485 pub shares_at_ib: Option<Decimal>,
14486
14487 #[serde(
14489 rename = "@sharesBorrowed",
14490 default,
14491 deserialize_with = "deserialize_optional_decimal"
14492 )]
14493 pub shares_borrowed: Option<Decimal>,
14494
14495 #[serde(
14497 rename = "@sharesLent",
14498 default,
14499 deserialize_with = "deserialize_optional_decimal"
14500 )]
14501 pub shares_lent: Option<Decimal>,
14502
14503 #[serde(
14505 rename = "@netShares",
14506 default,
14507 deserialize_with = "deserialize_optional_decimal"
14508 )]
14509 pub net_shares: Option<Decimal>,
14510
14511 #[serde(
14513 rename = "@serialNumber",
14514 default,
14515 deserialize_with = "deserialize_optional_string"
14516 )]
14517 pub serial_number: Option<String>,
14518
14519 #[serde(
14521 rename = "@deliveryType",
14522 default,
14523 deserialize_with = "deserialize_optional_string"
14524 )]
14525 pub delivery_type: Option<String>,
14526
14527 #[serde(
14529 rename = "@commodityType",
14530 default,
14531 deserialize_with = "deserialize_optional_string"
14532 )]
14533 pub commodity_type: Option<String>,
14534
14535 #[serde(
14537 rename = "@fineness",
14538 default,
14539 deserialize_with = "deserialize_optional_decimal"
14540 )]
14541 pub fineness: Option<Decimal>,
14542
14543 #[serde(
14545 rename = "@weight",
14546 default,
14547 deserialize_with = "deserialize_optional_string"
14548 )]
14549 pub weight: Option<String>,
14550
14551 #[serde(
14553 rename = "@subCategory",
14554 default,
14555 deserialize_with = "deserialize_optional_string"
14556 )]
14557 pub sub_category: Option<String>,
14558
14559 #[serde(
14561 rename = "@figi",
14562 default,
14563 deserialize_with = "deserialize_optional_string"
14564 )]
14565 pub figi: Option<String>,
14566
14567 #[serde(
14569 rename = "@issuerCountryCode",
14570 default,
14571 deserialize_with = "deserialize_optional_string"
14572 )]
14573 pub issuer_country_code: Option<String>,
14574}
14575
14576#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14581pub struct TransactionTax {
14582 #[serde(
14584 rename = "@accountId",
14585 default,
14586 deserialize_with = "deserialize_optional_string"
14587 )]
14588 pub account_id: Option<String>,
14589
14590 #[serde(
14592 rename = "@acctAlias",
14593 default,
14594 deserialize_with = "deserialize_optional_string"
14595 )]
14596 pub acct_alias: Option<String>,
14597
14598 #[serde(
14600 rename = "@model",
14601 default,
14602 deserialize_with = "deserialize_optional_string"
14603 )]
14604 pub model: Option<String>,
14605
14606 #[serde(
14608 rename = "@currency",
14609 default,
14610 deserialize_with = "deserialize_optional_string"
14611 )]
14612 pub currency: Option<String>,
14613
14614 #[serde(
14616 rename = "@fxRateToBase",
14617 default,
14618 deserialize_with = "deserialize_optional_decimal"
14619 )]
14620 pub fx_rate_to_base: Option<Decimal>,
14621
14622 #[serde(rename = "@assetCategory", default)]
14624 pub asset_category: Option<AssetCategory>,
14625
14626 #[serde(
14628 rename = "@symbol",
14629 default,
14630 deserialize_with = "deserialize_optional_string"
14631 )]
14632 pub symbol: Option<String>,
14633
14634 #[serde(
14636 rename = "@description",
14637 default,
14638 deserialize_with = "deserialize_optional_string"
14639 )]
14640 pub description: Option<String>,
14641
14642 #[serde(
14644 rename = "@conid",
14645 default,
14646 deserialize_with = "deserialize_optional_string"
14647 )]
14648 pub conid: Option<String>,
14649
14650 #[serde(
14652 rename = "@securityID",
14653 default,
14654 deserialize_with = "deserialize_optional_string"
14655 )]
14656 pub security_id: Option<String>,
14657
14658 #[serde(
14660 rename = "@securityIDType",
14661 default,
14662 deserialize_with = "deserialize_optional_string"
14663 )]
14664 pub security_id_type: Option<String>,
14665
14666 #[serde(
14668 rename = "@cusip",
14669 default,
14670 deserialize_with = "deserialize_optional_string"
14671 )]
14672 pub cusip: Option<String>,
14673
14674 #[serde(
14676 rename = "@isin",
14677 default,
14678 deserialize_with = "deserialize_optional_string"
14679 )]
14680 pub isin: Option<String>,
14681
14682 #[serde(
14684 rename = "@listingExchange",
14685 default,
14686 deserialize_with = "deserialize_optional_string"
14687 )]
14688 pub listing_exchange: Option<String>,
14689
14690 #[serde(
14692 rename = "@underlyingConid",
14693 default,
14694 deserialize_with = "deserialize_optional_string"
14695 )]
14696 pub underlying_conid: Option<String>,
14697
14698 #[serde(
14700 rename = "@underlyingSecurityID",
14701 default,
14702 deserialize_with = "deserialize_optional_string"
14703 )]
14704 pub underlying_security_id: Option<String>,
14705
14706 #[serde(
14708 rename = "@underlyingSymbol",
14709 default,
14710 deserialize_with = "deserialize_optional_string"
14711 )]
14712 pub underlying_symbol: Option<String>,
14713
14714 #[serde(
14716 rename = "@underlyingListingExchange",
14717 default,
14718 deserialize_with = "deserialize_optional_string"
14719 )]
14720 pub underlying_listing_exchange: Option<String>,
14721
14722 #[serde(
14724 rename = "@issuer",
14725 default,
14726 deserialize_with = "deserialize_optional_string"
14727 )]
14728 pub issuer: Option<String>,
14729
14730 #[serde(
14732 rename = "@multiplier",
14733 default,
14734 deserialize_with = "deserialize_optional_decimal"
14735 )]
14736 pub multiplier: Option<Decimal>,
14737
14738 #[serde(
14740 rename = "@strike",
14741 default,
14742 deserialize_with = "deserialize_optional_decimal"
14743 )]
14744 pub strike: Option<Decimal>,
14745
14746 #[serde(
14748 rename = "@expiry",
14749 default,
14750 deserialize_with = "deserialize_optional_date"
14751 )]
14752 pub expiry: Option<NaiveDate>,
14753
14754 #[serde(rename = "@putCall", default)]
14756 pub put_call: Option<PutCall>,
14757
14758 #[serde(
14760 rename = "@principalAdjustFactor",
14761 default,
14762 deserialize_with = "deserialize_optional_decimal"
14763 )]
14764 pub principal_adjust_factor: Option<Decimal>,
14765
14766 #[serde(
14768 rename = "@date",
14769 default,
14770 deserialize_with = "deserialize_optional_string"
14771 )]
14772 pub date: Option<String>,
14773
14774 #[serde(
14776 rename = "@taxDescription",
14777 default,
14778 deserialize_with = "deserialize_optional_string"
14779 )]
14780 pub tax_description: Option<String>,
14781
14782 #[serde(
14784 rename = "@quantity",
14785 default,
14786 deserialize_with = "deserialize_optional_decimal"
14787 )]
14788 pub quantity: Option<Decimal>,
14789
14790 #[serde(
14792 rename = "@reportDate",
14793 default,
14794 deserialize_with = "deserialize_optional_date"
14795 )]
14796 pub report_date: Option<NaiveDate>,
14797
14798 #[serde(
14800 rename = "@taxAmount",
14801 default,
14802 deserialize_with = "deserialize_optional_decimal"
14803 )]
14804 pub tax_amount: Option<Decimal>,
14805
14806 #[serde(
14808 rename = "@tradeId",
14809 default,
14810 deserialize_with = "deserialize_optional_string"
14811 )]
14812 pub trade_id: Option<String>,
14813
14814 #[serde(
14816 rename = "@tradePrice",
14817 default,
14818 deserialize_with = "deserialize_optional_decimal"
14819 )]
14820 pub trade_price: Option<Decimal>,
14821
14822 #[serde(
14824 rename = "@source",
14825 default,
14826 deserialize_with = "deserialize_optional_string"
14827 )]
14828 pub source: Option<String>,
14829
14830 #[serde(
14832 rename = "@code",
14833 default,
14834 deserialize_with = "deserialize_optional_string"
14835 )]
14836 pub code: Option<String>,
14837
14838 #[serde(
14840 rename = "@levelOfDetail",
14841 default,
14842 deserialize_with = "deserialize_optional_string"
14843 )]
14844 pub level_of_detail: Option<String>,
14845}
14846
14847#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
14852pub struct CFDCharge {
14853 #[serde(rename = "@assetCategory", default)]
14855 pub asset_category: Option<AssetCategory>,
14856
14857 #[serde(
14859 rename = "@accountId",
14860 default,
14861 deserialize_with = "deserialize_optional_string"
14862 )]
14863 pub account_id: Option<String>,
14864
14865 #[serde(
14867 rename = "@currency",
14868 default,
14869 deserialize_with = "deserialize_optional_string"
14870 )]
14871 pub currency: Option<String>,
14872
14873 #[serde(
14875 rename = "@fxRateToBase",
14876 default,
14877 deserialize_with = "deserialize_optional_decimal"
14878 )]
14879 pub fx_rate_to_base: Option<Decimal>,
14880
14881 #[serde(
14883 rename = "@description",
14884 default,
14885 deserialize_with = "deserialize_optional_string"
14886 )]
14887 pub description: Option<String>,
14888
14889 #[serde(
14891 rename = "@conid",
14892 default,
14893 deserialize_with = "deserialize_optional_string"
14894 )]
14895 pub conid: Option<String>,
14896
14897 #[serde(
14899 rename = "@securityID",
14900 default,
14901 deserialize_with = "deserialize_optional_string"
14902 )]
14903 pub security_id: Option<String>,
14904
14905 #[serde(
14907 rename = "@cusip",
14908 default,
14909 deserialize_with = "deserialize_optional_string"
14910 )]
14911 pub cusip: Option<String>,
14912
14913 #[serde(
14915 rename = "@isin",
14916 default,
14917 deserialize_with = "deserialize_optional_string"
14918 )]
14919 pub isin: Option<String>,
14920
14921 #[serde(
14923 rename = "@listingExchange",
14924 default,
14925 deserialize_with = "deserialize_optional_string"
14926 )]
14927 pub listing_exchange: Option<String>,
14928
14929 #[serde(
14931 rename = "@underlyingConid",
14932 default,
14933 deserialize_with = "deserialize_optional_string"
14934 )]
14935 pub underlying_conid: Option<String>,
14936
14937 #[serde(
14939 rename = "@underlyingSecurityID",
14940 default,
14941 deserialize_with = "deserialize_optional_string"
14942 )]
14943 pub underlying_security_id: Option<String>,
14944
14945 #[serde(
14947 rename = "@underlyingListingExchange",
14948 default,
14949 deserialize_with = "deserialize_optional_string"
14950 )]
14951 pub underlying_listing_exchange: Option<String>,
14952
14953 #[serde(
14955 rename = "@amount",
14956 default,
14957 deserialize_with = "deserialize_optional_decimal"
14958 )]
14959 pub amount: Option<Decimal>,
14960
14961 #[serde(
14963 rename = "@dateTime",
14964 default,
14965 deserialize_with = "deserialize_optional_string"
14966 )]
14967 pub date_time: Option<String>,
14968
14969 #[serde(
14971 rename = "@sedol",
14972 default,
14973 deserialize_with = "deserialize_optional_string"
14974 )]
14975 pub sedol: Option<String>,
14976
14977 #[serde(
14979 rename = "@symbol",
14980 default,
14981 deserialize_with = "deserialize_optional_string"
14982 )]
14983 pub symbol: Option<String>,
14984
14985 #[serde(
14987 rename = "@securityIDType",
14988 default,
14989 deserialize_with = "deserialize_optional_string"
14990 )]
14991 pub security_id_type: Option<String>,
14992
14993 #[serde(
14995 rename = "@underlyingSymbol",
14996 default,
14997 deserialize_with = "deserialize_optional_string"
14998 )]
14999 pub underlying_symbol: Option<String>,
15000
15001 #[serde(
15003 rename = "@issuer",
15004 default,
15005 deserialize_with = "deserialize_optional_string"
15006 )]
15007 pub issuer: Option<String>,
15008
15009 #[serde(
15011 rename = "@multiplier",
15012 default,
15013 deserialize_with = "deserialize_optional_decimal"
15014 )]
15015 pub multiplier: Option<Decimal>,
15016
15017 #[serde(
15019 rename = "@strike",
15020 default,
15021 deserialize_with = "deserialize_optional_decimal"
15022 )]
15023 pub strike: Option<Decimal>,
15024
15025 #[serde(
15027 rename = "@expiry",
15028 default,
15029 deserialize_with = "deserialize_optional_date"
15030 )]
15031 pub expiry: Option<NaiveDate>,
15032
15033 #[serde(rename = "@putCall", default)]
15035 pub put_call: Option<PutCall>,
15036
15037 #[serde(
15039 rename = "@principalAdjustFactor",
15040 default,
15041 deserialize_with = "deserialize_optional_decimal"
15042 )]
15043 pub principal_adjust_factor: Option<Decimal>,
15044
15045 #[serde(
15047 rename = "@tradeID",
15048 default,
15049 deserialize_with = "deserialize_optional_string"
15050 )]
15051 pub trade_id: Option<String>,
15052
15053 #[serde(
15055 rename = "@code",
15056 default,
15057 deserialize_with = "deserialize_optional_string"
15058 )]
15059 pub code: Option<String>,
15060
15061 #[serde(
15063 rename = "@transactionID",
15064 default,
15065 deserialize_with = "deserialize_optional_string"
15066 )]
15067 pub transaction_id: Option<String>,
15068
15069 #[serde(
15071 rename = "@reportDate",
15072 default,
15073 deserialize_with = "deserialize_optional_date"
15074 )]
15075 pub report_date: Option<NaiveDate>,
15076
15077 #[serde(
15079 rename = "@date",
15080 default,
15081 deserialize_with = "deserialize_optional_date"
15082 )]
15083 pub date: Option<NaiveDate>,
15084
15085 #[serde(
15087 rename = "@received",
15088 default,
15089 deserialize_with = "deserialize_optional_decimal"
15090 )]
15091 pub received: Option<Decimal>,
15092
15093 #[serde(
15095 rename = "@paid",
15096 default,
15097 deserialize_with = "deserialize_optional_decimal"
15098 )]
15099 pub paid: Option<Decimal>,
15100
15101 #[serde(
15103 rename = "@total",
15104 default,
15105 deserialize_with = "deserialize_optional_decimal"
15106 )]
15107 pub total: Option<Decimal>,
15108
15109 #[serde(
15111 rename = "@transactionId",
15112 default,
15113 deserialize_with = "deserialize_optional_string"
15114 )]
15115 pub transaction_id_lc: Option<String>,
15116
15117 #[serde(
15119 rename = "@activityDescription",
15120 default,
15121 deserialize_with = "deserialize_optional_string"
15122 )]
15123 pub activity_description: Option<String>,
15124
15125 #[serde(
15127 rename = "@clientReference",
15128 default,
15129 deserialize_with = "deserialize_optional_string"
15130 )]
15131 pub client_reference: Option<String>,
15132
15133 #[serde(
15135 rename = "@acctAlias",
15136 default,
15137 deserialize_with = "deserialize_optional_string"
15138 )]
15139 pub acct_alias: Option<String>,
15140
15141 #[serde(
15143 rename = "@model",
15144 default,
15145 deserialize_with = "deserialize_optional_string"
15146 )]
15147 pub model: Option<String>,
15148
15149 #[serde(
15151 rename = "@levelOfDetail",
15152 default,
15153 deserialize_with = "deserialize_optional_string"
15154 )]
15155 pub level_of_detail: Option<String>,
15156}
15157
15158#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
15163pub struct SLBOpenContract {
15164 #[serde(
15166 rename = "@accountId",
15167 default,
15168 deserialize_with = "deserialize_optional_string"
15169 )]
15170 pub account_id: Option<String>,
15171
15172 #[serde(
15174 rename = "@acctAlias",
15175 default,
15176 deserialize_with = "deserialize_optional_string"
15177 )]
15178 pub acct_alias: Option<String>,
15179
15180 #[serde(
15182 rename = "@model",
15183 default,
15184 deserialize_with = "deserialize_optional_string"
15185 )]
15186 pub model: Option<String>,
15187
15188 #[serde(
15190 rename = "@currency",
15191 default,
15192 deserialize_with = "deserialize_optional_string"
15193 )]
15194 pub currency: Option<String>,
15195
15196 #[serde(
15198 rename = "@fxRateToBase",
15199 default,
15200 deserialize_with = "deserialize_optional_decimal"
15201 )]
15202 pub fx_rate_to_base: Option<Decimal>,
15203
15204 #[serde(
15206 rename = "@description",
15207 default,
15208 deserialize_with = "deserialize_optional_string"
15209 )]
15210 pub description: Option<String>,
15211
15212 #[serde(
15214 rename = "@conid",
15215 default,
15216 deserialize_with = "deserialize_optional_string"
15217 )]
15218 pub conid: Option<String>,
15219
15220 #[serde(
15222 rename = "@securityID",
15223 default,
15224 deserialize_with = "deserialize_optional_string"
15225 )]
15226 pub security_id: Option<String>,
15227
15228 #[serde(
15230 rename = "@cusip",
15231 default,
15232 deserialize_with = "deserialize_optional_string"
15233 )]
15234 pub cusip: Option<String>,
15235
15236 #[serde(
15238 rename = "@isin",
15239 default,
15240 deserialize_with = "deserialize_optional_string"
15241 )]
15242 pub isin: Option<String>,
15243
15244 #[serde(
15246 rename = "@assetCategory",
15247 default,
15248 deserialize_with = "deserialize_optional_string"
15249 )]
15250 pub asset_category: Option<String>,
15251
15252 #[serde(
15254 rename = "@subCategory",
15255 default,
15256 deserialize_with = "deserialize_optional_string"
15257 )]
15258 pub sub_category: Option<String>,
15259
15260 #[serde(
15262 rename = "@symbol",
15263 default,
15264 deserialize_with = "deserialize_optional_string"
15265 )]
15266 pub symbol: Option<String>,
15267
15268 #[serde(
15270 rename = "@securityIDType",
15271 default,
15272 deserialize_with = "deserialize_optional_string"
15273 )]
15274 pub security_id_type: Option<String>,
15275
15276 #[serde(
15278 rename = "@figi",
15279 default,
15280 deserialize_with = "deserialize_optional_string"
15281 )]
15282 pub figi: Option<String>,
15283
15284 #[serde(
15286 rename = "@listingExchange",
15287 default,
15288 deserialize_with = "deserialize_optional_string"
15289 )]
15290 pub listing_exchange: Option<String>,
15291
15292 #[serde(
15294 rename = "@underlyingConid",
15295 default,
15296 deserialize_with = "deserialize_optional_string"
15297 )]
15298 pub underlying_conid: Option<String>,
15299
15300 #[serde(
15302 rename = "@underlyingSymbol",
15303 default,
15304 deserialize_with = "deserialize_optional_string"
15305 )]
15306 pub underlying_symbol: Option<String>,
15307
15308 #[serde(
15310 rename = "@underlyingSecurityID",
15311 default,
15312 deserialize_with = "deserialize_optional_string"
15313 )]
15314 pub underlying_security_id: Option<String>,
15315
15316 #[serde(
15318 rename = "@underlyingListingExchange",
15319 default,
15320 deserialize_with = "deserialize_optional_string"
15321 )]
15322 pub underlying_listing_exchange: Option<String>,
15323
15324 #[serde(
15326 rename = "@issuer",
15327 default,
15328 deserialize_with = "deserialize_optional_string"
15329 )]
15330 pub issuer: Option<String>,
15331
15332 #[serde(
15334 rename = "@issuerCountryCode",
15335 default,
15336 deserialize_with = "deserialize_optional_string"
15337 )]
15338 pub issuer_country_code: Option<String>,
15339
15340 #[serde(
15342 rename = "@multiplier",
15343 default,
15344 deserialize_with = "deserialize_optional_decimal"
15345 )]
15346 pub multiplier: Option<Decimal>,
15347
15348 #[serde(
15350 rename = "@strike",
15351 default,
15352 deserialize_with = "deserialize_optional_decimal"
15353 )]
15354 pub strike: Option<Decimal>,
15355
15356 #[serde(
15358 rename = "@expiry",
15359 default,
15360 deserialize_with = "deserialize_optional_date"
15361 )]
15362 pub expiry: Option<NaiveDate>,
15363
15364 #[serde(rename = "@putCall", default)]
15366 pub put_call: Option<PutCall>,
15367
15368 #[serde(
15370 rename = "@principalAdjustFactor",
15371 default,
15372 deserialize_with = "deserialize_optional_decimal"
15373 )]
15374 pub principal_adjust_factor: Option<Decimal>,
15375
15376 #[serde(
15378 rename = "@date",
15379 default,
15380 deserialize_with = "deserialize_optional_date"
15381 )]
15382 pub date: Option<NaiveDate>,
15383
15384 #[serde(
15386 rename = "@type",
15387 default,
15388 deserialize_with = "deserialize_optional_string"
15389 )]
15390 pub r#type: Option<String>,
15391
15392 #[serde(
15394 rename = "@slbTransactionId",
15395 default,
15396 deserialize_with = "deserialize_optional_string"
15397 )]
15398 pub slb_transaction_id: Option<String>,
15399
15400 #[serde(
15402 rename = "@exchange",
15403 default,
15404 deserialize_with = "deserialize_optional_string"
15405 )]
15406 pub exchange: Option<String>,
15407
15408 #[serde(
15410 rename = "@quantity",
15411 default,
15412 deserialize_with = "deserialize_optional_decimal"
15413 )]
15414 pub quantity: Option<Decimal>,
15415
15416 #[serde(
15418 rename = "@excessQuantity",
15419 default,
15420 deserialize_with = "deserialize_optional_decimal"
15421 )]
15422 pub excess_quantity: Option<Decimal>,
15423
15424 #[serde(
15426 rename = "@feeRate",
15427 default,
15428 deserialize_with = "deserialize_optional_decimal"
15429 )]
15430 pub fee_rate: Option<Decimal>,
15431
15432 #[serde(
15434 rename = "@collateralAmount",
15435 default,
15436 deserialize_with = "deserialize_optional_decimal"
15437 )]
15438 pub collateral_amount: Option<Decimal>,
15439
15440 #[serde(
15442 rename = "@levelOfDetail",
15443 default,
15444 deserialize_with = "deserialize_optional_string"
15445 )]
15446 pub level_of_detail: Option<String>,
15447
15448 #[serde(
15450 rename = "@serialNumber",
15451 default,
15452 deserialize_with = "deserialize_optional_decimal"
15453 )]
15454 pub serial_number: Option<Decimal>,
15455
15456 #[serde(
15458 rename = "@deliveryType",
15459 default,
15460 deserialize_with = "deserialize_optional_decimal"
15461 )]
15462 pub delivery_type: Option<Decimal>,
15463
15464 #[serde(
15466 rename = "@commodityType",
15467 default,
15468 deserialize_with = "deserialize_optional_string"
15469 )]
15470 pub commodity_type: Option<String>,
15471
15472 #[serde(
15474 rename = "@fineness",
15475 default,
15476 deserialize_with = "deserialize_optional_decimal"
15477 )]
15478 pub fineness: Option<Decimal>,
15479
15480 #[serde(
15482 rename = "@weight",
15483 default,
15484 deserialize_with = "deserialize_optional_decimal"
15485 )]
15486 pub weight: Option<Decimal>,
15487}
15488
15489#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
15494pub struct StockGrantActivity {
15495 #[serde(
15497 rename = "@accountId",
15498 default,
15499 deserialize_with = "deserialize_optional_string"
15500 )]
15501 pub account_id: Option<String>,
15502
15503 #[serde(
15505 rename = "@acctAlias",
15506 default,
15507 deserialize_with = "deserialize_optional_string"
15508 )]
15509 pub acct_alias: Option<String>,
15510
15511 #[serde(
15513 rename = "@model",
15514 default,
15515 deserialize_with = "deserialize_optional_string"
15516 )]
15517 pub model: Option<String>,
15518
15519 #[serde(
15521 rename = "@currency",
15522 default,
15523 deserialize_with = "deserialize_optional_string"
15524 )]
15525 pub currency: Option<String>,
15526
15527 #[serde(
15529 rename = "@fxRateToBase",
15530 default,
15531 deserialize_with = "deserialize_optional_decimal"
15532 )]
15533 pub fx_rate_to_base: Option<Decimal>,
15534
15535 #[serde(rename = "@assetCategory", default)]
15537 pub asset_category: Option<AssetCategory>,
15538
15539 #[serde(
15541 rename = "@subCategory",
15542 default,
15543 deserialize_with = "deserialize_optional_string"
15544 )]
15545 pub sub_category: Option<String>,
15546
15547 #[serde(
15549 rename = "@symbol",
15550 default,
15551 deserialize_with = "deserialize_optional_string"
15552 )]
15553 pub symbol: Option<String>,
15554
15555 #[serde(
15557 rename = "@description",
15558 default,
15559 deserialize_with = "deserialize_optional_string"
15560 )]
15561 pub description: Option<String>,
15562
15563 #[serde(
15565 rename = "@conid",
15566 default,
15567 deserialize_with = "deserialize_optional_string"
15568 )]
15569 pub conid: Option<String>,
15570
15571 #[serde(
15573 rename = "@securityID",
15574 default,
15575 deserialize_with = "deserialize_optional_string"
15576 )]
15577 pub security_id: Option<String>,
15578
15579 #[serde(
15581 rename = "@securityIDType",
15582 default,
15583 deserialize_with = "deserialize_optional_string"
15584 )]
15585 pub security_id_type: Option<String>,
15586
15587 #[serde(
15589 rename = "@cusip",
15590 default,
15591 deserialize_with = "deserialize_optional_string"
15592 )]
15593 pub cusip: Option<String>,
15594
15595 #[serde(
15597 rename = "@isin",
15598 default,
15599 deserialize_with = "deserialize_optional_string"
15600 )]
15601 pub isin: Option<String>,
15602
15603 #[serde(
15605 rename = "@figi",
15606 default,
15607 deserialize_with = "deserialize_optional_string"
15608 )]
15609 pub figi: Option<String>,
15610
15611 #[serde(
15613 rename = "@listingExchange",
15614 default,
15615 deserialize_with = "deserialize_optional_string"
15616 )]
15617 pub listing_exchange: Option<String>,
15618
15619 #[serde(
15621 rename = "@underlyingConid",
15622 default,
15623 deserialize_with = "deserialize_optional_string"
15624 )]
15625 pub underlying_conid: Option<String>,
15626
15627 #[serde(
15629 rename = "@underlyingSymbol",
15630 default,
15631 deserialize_with = "deserialize_optional_string"
15632 )]
15633 pub underlying_symbol: Option<String>,
15634
15635 #[serde(
15637 rename = "@underlyingSecurityID",
15638 default,
15639 deserialize_with = "deserialize_optional_string"
15640 )]
15641 pub underlying_security_id: Option<String>,
15642
15643 #[serde(
15645 rename = "@underlyingListingExchange",
15646 default,
15647 deserialize_with = "deserialize_optional_string"
15648 )]
15649 pub underlying_listing_exchange: Option<String>,
15650
15651 #[serde(
15653 rename = "@issuer",
15654 default,
15655 deserialize_with = "deserialize_optional_string"
15656 )]
15657 pub issuer: Option<String>,
15658
15659 #[serde(
15661 rename = "@issuerCountryCode",
15662 default,
15663 deserialize_with = "deserialize_optional_string"
15664 )]
15665 pub issuer_country_code: Option<String>,
15666
15667 #[serde(
15669 rename = "@multiplier",
15670 default,
15671 deserialize_with = "deserialize_optional_decimal"
15672 )]
15673 pub multiplier: Option<Decimal>,
15674
15675 #[serde(
15677 rename = "@strike",
15678 default,
15679 deserialize_with = "deserialize_optional_decimal"
15680 )]
15681 pub strike: Option<Decimal>,
15682
15683 #[serde(
15685 rename = "@expiry",
15686 default,
15687 deserialize_with = "deserialize_optional_date"
15688 )]
15689 pub expiry: Option<NaiveDate>,
15690
15691 #[serde(rename = "@putCall", default)]
15693 pub put_call: Option<PutCall>,
15694
15695 #[serde(
15697 rename = "@principalAdjustFactor",
15698 default,
15699 deserialize_with = "deserialize_optional_decimal"
15700 )]
15701 pub principal_adjust_factor: Option<Decimal>,
15702
15703 #[serde(
15705 rename = "@reportDate",
15706 default,
15707 deserialize_with = "deserialize_optional_date"
15708 )]
15709 pub report_date: Option<NaiveDate>,
15710
15711 #[serde(
15713 rename = "@activityDescription",
15714 default,
15715 deserialize_with = "deserialize_optional_string"
15716 )]
15717 pub activity_description: Option<String>,
15718
15719 #[serde(
15721 rename = "@awardDate",
15722 default,
15723 deserialize_with = "deserialize_optional_date"
15724 )]
15725 pub award_date: Option<NaiveDate>,
15726
15727 #[serde(
15729 rename = "@vestingDate",
15730 default,
15731 deserialize_with = "deserialize_optional_date"
15732 )]
15733 pub vesting_date: Option<NaiveDate>,
15734
15735 #[serde(
15737 rename = "@quantity",
15738 default,
15739 deserialize_with = "deserialize_optional_decimal"
15740 )]
15741 pub quantity: Option<Decimal>,
15742
15743 #[serde(
15745 rename = "@price",
15746 default,
15747 deserialize_with = "deserialize_optional_decimal"
15748 )]
15749 pub price: Option<Decimal>,
15750
15751 #[serde(
15753 rename = "@value",
15754 default,
15755 deserialize_with = "deserialize_optional_decimal"
15756 )]
15757 pub value: Option<Decimal>,
15758
15759 #[serde(
15761 rename = "@serialNumber",
15762 default,
15763 deserialize_with = "deserialize_optional_string"
15764 )]
15765 pub serial_number: Option<String>,
15766
15767 #[serde(
15769 rename = "@deliveryType",
15770 default,
15771 deserialize_with = "deserialize_optional_string"
15772 )]
15773 pub delivery_type: Option<String>,
15774
15775 #[serde(
15777 rename = "@commodityType",
15778 default,
15779 deserialize_with = "deserialize_optional_string"
15780 )]
15781 pub commodity_type: Option<String>,
15782
15783 #[serde(
15785 rename = "@fineness",
15786 default,
15787 deserialize_with = "deserialize_optional_decimal"
15788 )]
15789 pub fineness: Option<Decimal>,
15790
15791 #[serde(
15793 rename = "@weight",
15794 default,
15795 deserialize_with = "deserialize_optional_decimal"
15796 )]
15797 pub weight: Option<Decimal>,
15798}
15799
15800#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
15805pub struct TransactionTaxDetail {
15806 #[serde(
15808 rename = "@accountId",
15809 default,
15810 deserialize_with = "deserialize_optional_string"
15811 )]
15812 pub account_id: Option<String>,
15813
15814 #[serde(
15816 rename = "@acctAlias",
15817 default,
15818 deserialize_with = "deserialize_optional_string"
15819 )]
15820 pub acct_alias: Option<String>,
15821
15822 #[serde(
15824 rename = "@model",
15825 default,
15826 deserialize_with = "deserialize_optional_string"
15827 )]
15828 pub model: Option<String>,
15829
15830 #[serde(
15832 rename = "@currency",
15833 default,
15834 deserialize_with = "deserialize_optional_string"
15835 )]
15836 pub currency: Option<String>,
15837
15838 #[serde(
15840 rename = "@fxRateToBase",
15841 default,
15842 deserialize_with = "deserialize_optional_decimal"
15843 )]
15844 pub fx_rate_to_base: Option<Decimal>,
15845
15846 #[serde(rename = "@assetCategory", default)]
15848 pub asset_category: Option<AssetCategory>,
15849
15850 #[serde(
15852 rename = "@symbol",
15853 default,
15854 deserialize_with = "deserialize_optional_string"
15855 )]
15856 pub symbol: Option<String>,
15857
15858 #[serde(
15860 rename = "@description",
15861 default,
15862 deserialize_with = "deserialize_optional_string"
15863 )]
15864 pub description: Option<String>,
15865
15866 #[serde(
15868 rename = "@conid",
15869 default,
15870 deserialize_with = "deserialize_optional_string"
15871 )]
15872 pub conid: Option<String>,
15873
15874 #[serde(
15876 rename = "@securityID",
15877 default,
15878 deserialize_with = "deserialize_optional_string"
15879 )]
15880 pub security_id: Option<String>,
15881
15882 #[serde(
15884 rename = "@securityIDType",
15885 default,
15886 deserialize_with = "deserialize_optional_string"
15887 )]
15888 pub security_id_type: Option<String>,
15889
15890 #[serde(
15892 rename = "@cusip",
15893 default,
15894 deserialize_with = "deserialize_optional_string"
15895 )]
15896 pub cusip: Option<String>,
15897
15898 #[serde(
15900 rename = "@isin",
15901 default,
15902 deserialize_with = "deserialize_optional_string"
15903 )]
15904 pub isin: Option<String>,
15905
15906 #[serde(
15908 rename = "@listingExchange",
15909 default,
15910 deserialize_with = "deserialize_optional_string"
15911 )]
15912 pub listing_exchange: Option<String>,
15913
15914 #[serde(
15916 rename = "@underlyingConid",
15917 default,
15918 deserialize_with = "deserialize_optional_string"
15919 )]
15920 pub underlying_conid: Option<String>,
15921
15922 #[serde(
15924 rename = "@underlyingSecurityID",
15925 default,
15926 deserialize_with = "deserialize_optional_string"
15927 )]
15928 pub underlying_security_id: Option<String>,
15929
15930 #[serde(
15932 rename = "@underlyingSymbol",
15933 default,
15934 deserialize_with = "deserialize_optional_string"
15935 )]
15936 pub underlying_symbol: Option<String>,
15937
15938 #[serde(
15940 rename = "@underlyingListingExchange",
15941 default,
15942 deserialize_with = "deserialize_optional_string"
15943 )]
15944 pub underlying_listing_exchange: Option<String>,
15945
15946 #[serde(
15948 rename = "@issuer",
15949 default,
15950 deserialize_with = "deserialize_optional_string"
15951 )]
15952 pub issuer: Option<String>,
15953
15954 #[serde(
15956 rename = "@multiplier",
15957 default,
15958 deserialize_with = "deserialize_optional_decimal"
15959 )]
15960 pub multiplier: Option<Decimal>,
15961
15962 #[serde(
15964 rename = "@strike",
15965 default,
15966 deserialize_with = "deserialize_optional_decimal"
15967 )]
15968 pub strike: Option<Decimal>,
15969
15970 #[serde(
15972 rename = "@expiry",
15973 default,
15974 deserialize_with = "deserialize_optional_date"
15975 )]
15976 pub expiry: Option<NaiveDate>,
15977
15978 #[serde(rename = "@putCall", default)]
15980 pub put_call: Option<PutCall>,
15981
15982 #[serde(
15984 rename = "@principalAdjustFactor",
15985 default,
15986 deserialize_with = "deserialize_optional_decimal"
15987 )]
15988 pub principal_adjust_factor: Option<Decimal>,
15989
15990 #[serde(
15992 rename = "@date",
15993 default,
15994 deserialize_with = "deserialize_optional_string"
15995 )]
15996 pub date: Option<String>,
15997
15998 #[serde(
16000 rename = "@taxDescription",
16001 default,
16002 deserialize_with = "deserialize_optional_string"
16003 )]
16004 pub tax_description: Option<String>,
16005
16006 #[serde(
16008 rename = "@quantity",
16009 default,
16010 deserialize_with = "deserialize_optional_decimal"
16011 )]
16012 pub quantity: Option<Decimal>,
16013
16014 #[serde(
16016 rename = "@reportDate",
16017 default,
16018 deserialize_with = "deserialize_optional_date"
16019 )]
16020 pub report_date: Option<NaiveDate>,
16021
16022 #[serde(
16024 rename = "@taxAmount",
16025 default,
16026 deserialize_with = "deserialize_optional_decimal"
16027 )]
16028 pub tax_amount: Option<Decimal>,
16029
16030 #[serde(
16032 rename = "@tradeId",
16033 default,
16034 deserialize_with = "deserialize_optional_string"
16035 )]
16036 pub trade_id: Option<String>,
16037
16038 #[serde(
16040 rename = "@tradePrice",
16041 default,
16042 deserialize_with = "deserialize_optional_decimal"
16043 )]
16044 pub trade_price: Option<Decimal>,
16045
16046 #[serde(
16048 rename = "@source",
16049 default,
16050 deserialize_with = "deserialize_optional_string"
16051 )]
16052 pub source: Option<String>,
16053
16054 #[serde(
16056 rename = "@code",
16057 default,
16058 deserialize_with = "deserialize_optional_string"
16059 )]
16060 pub code: Option<String>,
16061
16062 #[serde(
16064 rename = "@levelOfDetail",
16065 default,
16066 deserialize_with = "deserialize_optional_string"
16067 )]
16068 pub level_of_detail: Option<String>,
16069}
16070
16071#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
16078pub struct TransferLot {
16079 #[serde(
16081 rename = "@accountId",
16082 default,
16083 deserialize_with = "deserialize_optional_string"
16084 )]
16085 pub account_id: Option<String>,
16086
16087 #[serde(
16089 rename = "@currency",
16090 default,
16091 deserialize_with = "deserialize_optional_string"
16092 )]
16093 pub currency: Option<String>,
16094
16095 #[serde(
16097 rename = "@fxRateToBase",
16098 default,
16099 deserialize_with = "deserialize_optional_decimal"
16100 )]
16101 pub fx_rate_to_base: Option<Decimal>,
16102
16103 #[serde(rename = "@assetCategory", default)]
16105 pub asset_category: Option<AssetCategory>,
16106
16107 #[serde(
16109 rename = "@symbol",
16110 default,
16111 deserialize_with = "deserialize_optional_string"
16112 )]
16113 pub symbol: Option<String>,
16114
16115 #[serde(
16117 rename = "@description",
16118 default,
16119 deserialize_with = "deserialize_optional_string"
16120 )]
16121 pub description: Option<String>,
16122
16123 #[serde(
16125 rename = "@conid",
16126 default,
16127 deserialize_with = "deserialize_optional_string"
16128 )]
16129 pub conid: Option<String>,
16130
16131 #[serde(
16133 rename = "@securityID",
16134 default,
16135 deserialize_with = "deserialize_optional_string"
16136 )]
16137 pub security_id: Option<String>,
16138
16139 #[serde(
16141 rename = "@securityIDType",
16142 default,
16143 deserialize_with = "deserialize_optional_string"
16144 )]
16145 pub security_id_type: Option<String>,
16146
16147 #[serde(
16149 rename = "@cusip",
16150 default,
16151 deserialize_with = "deserialize_optional_string"
16152 )]
16153 pub cusip: Option<String>,
16154
16155 #[serde(
16157 rename = "@isin",
16158 default,
16159 deserialize_with = "deserialize_optional_string"
16160 )]
16161 pub isin: Option<String>,
16162
16163 #[serde(
16165 rename = "@listingExchange",
16166 default,
16167 deserialize_with = "deserialize_optional_string"
16168 )]
16169 pub listing_exchange: Option<String>,
16170
16171 #[serde(
16173 rename = "@multiplier",
16174 default,
16175 deserialize_with = "deserialize_optional_decimal"
16176 )]
16177 pub multiplier: Option<Decimal>,
16178
16179 #[serde(
16181 rename = "@reportDate",
16182 default,
16183 deserialize_with = "deserialize_optional_date"
16184 )]
16185 pub report_date: Option<NaiveDate>,
16186
16187 #[serde(
16189 rename = "@date",
16190 default,
16191 deserialize_with = "deserialize_optional_date"
16192 )]
16193 pub date: Option<NaiveDate>,
16194
16195 #[serde(
16197 rename = "@dateTime",
16198 default,
16199 deserialize_with = "deserialize_optional_string"
16200 )]
16201 pub date_time: Option<String>,
16202
16203 #[serde(rename = "@type", default)]
16205 pub r#type: Option<TransferType>,
16206
16207 #[serde(rename = "@direction", default)]
16209 pub direction: Option<InOut>,
16210
16211 #[serde(
16213 rename = "@company",
16214 default,
16215 deserialize_with = "deserialize_optional_string"
16216 )]
16217 pub company: Option<String>,
16218
16219 #[serde(
16221 rename = "@account",
16222 default,
16223 deserialize_with = "deserialize_optional_string"
16224 )]
16225 pub account: Option<String>,
16226
16227 #[serde(
16229 rename = "@deliveringBroker",
16230 default,
16231 deserialize_with = "deserialize_optional_string"
16232 )]
16233 pub delivering_broker: Option<String>,
16234
16235 #[serde(
16237 rename = "@quantity",
16238 default,
16239 deserialize_with = "deserialize_optional_decimal"
16240 )]
16241 pub quantity: Option<Decimal>,
16242
16243 #[serde(
16245 rename = "@transferPrice",
16246 default,
16247 deserialize_with = "deserialize_optional_decimal"
16248 )]
16249 pub transfer_price: Option<Decimal>,
16250
16251 #[serde(
16253 rename = "@pnlAmount",
16254 default,
16255 deserialize_with = "deserialize_optional_decimal"
16256 )]
16257 pub pnl_amount: Option<Decimal>,
16258
16259 #[serde(
16261 rename = "@pnlAmountInBase",
16262 default,
16263 deserialize_with = "deserialize_optional_decimal"
16264 )]
16265 pub pnl_amount_in_base: Option<Decimal>,
16266
16267 #[serde(
16269 rename = "@code",
16270 default,
16271 deserialize_with = "deserialize_optional_string"
16272 )]
16273 pub code: Option<String>,
16274
16275 #[serde(
16277 rename = "@acctAlias",
16278 default,
16279 deserialize_with = "deserialize_optional_string"
16280 )]
16281 pub acct_alias: Option<String>,
16282
16283 #[serde(
16285 rename = "@model",
16286 default,
16287 deserialize_with = "deserialize_optional_string"
16288 )]
16289 pub model: Option<String>,
16290
16291 #[serde(
16293 rename = "@underlyingConid",
16294 default,
16295 deserialize_with = "deserialize_optional_string"
16296 )]
16297 pub underlying_conid: Option<String>,
16298
16299 #[serde(
16301 rename = "@underlyingSymbol",
16302 default,
16303 deserialize_with = "deserialize_optional_string"
16304 )]
16305 pub underlying_symbol: Option<String>,
16306
16307 #[serde(
16309 rename = "@underlyingSecurityID",
16310 default,
16311 deserialize_with = "deserialize_optional_string"
16312 )]
16313 pub underlying_security_id: Option<String>,
16314
16315 #[serde(
16317 rename = "@underlyingListingExchange",
16318 default,
16319 deserialize_with = "deserialize_optional_string"
16320 )]
16321 pub underlying_listing_exchange: Option<String>,
16322
16323 #[serde(
16325 rename = "@issuer",
16326 default,
16327 deserialize_with = "deserialize_optional_string"
16328 )]
16329 pub issuer: Option<String>,
16330
16331 #[serde(
16333 rename = "@strike",
16334 default,
16335 deserialize_with = "deserialize_optional_decimal"
16336 )]
16337 pub strike: Option<Decimal>,
16338
16339 #[serde(
16341 rename = "@expiry",
16342 default,
16343 deserialize_with = "deserialize_optional_date"
16344 )]
16345 pub expiry: Option<NaiveDate>,
16346
16347 #[serde(rename = "@putCall", default)]
16349 pub put_call: Option<PutCall>,
16350
16351 #[serde(
16353 rename = "@principalAdjustFactor",
16354 default,
16355 deserialize_with = "deserialize_optional_decimal"
16356 )]
16357 pub principal_adjust_factor: Option<Decimal>,
16358
16359 #[serde(
16361 rename = "@accountName",
16362 default,
16363 deserialize_with = "deserialize_optional_string"
16364 )]
16365 pub account_name: Option<String>,
16366
16367 #[serde(
16369 rename = "@positionAmount",
16370 default,
16371 deserialize_with = "deserialize_optional_decimal"
16372 )]
16373 pub position_amount: Option<Decimal>,
16374
16375 #[serde(
16377 rename = "@positionAmountInBase",
16378 default,
16379 deserialize_with = "deserialize_optional_decimal"
16380 )]
16381 pub position_amount_in_base: Option<Decimal>,
16382
16383 #[serde(
16385 rename = "@cashTransfer",
16386 default,
16387 deserialize_with = "deserialize_optional_decimal"
16388 )]
16389 pub cash_transfer: Option<Decimal>,
16390
16391 #[serde(
16393 rename = "@clientReference",
16394 default,
16395 deserialize_with = "deserialize_optional_string"
16396 )]
16397 pub client_reference: Option<String>,
16398
16399 #[serde(
16401 rename = "@transactionID",
16402 default,
16403 deserialize_with = "deserialize_optional_string"
16404 )]
16405 pub transaction_id: Option<String>,
16406
16407 #[serde(
16409 rename = "@serialNumber",
16410 default,
16411 deserialize_with = "deserialize_optional_string"
16412 )]
16413 pub serial_number: Option<String>,
16414
16415 #[serde(
16417 rename = "@deliveryType",
16418 default,
16419 deserialize_with = "deserialize_optional_string"
16420 )]
16421 pub delivery_type: Option<String>,
16422
16423 #[serde(
16425 rename = "@commodityType",
16426 default,
16427 deserialize_with = "deserialize_optional_string"
16428 )]
16429 pub commodity_type: Option<String>,
16430
16431 #[serde(
16433 rename = "@fineness",
16434 default,
16435 deserialize_with = "deserialize_optional_decimal"
16436 )]
16437 pub fineness: Option<Decimal>,
16438
16439 #[serde(
16441 rename = "@weight",
16442 default,
16443 deserialize_with = "deserialize_optional_string"
16444 )]
16445 pub weight: Option<String>,
16446}