refactor: remove tbank-sync operations import cycle (WealthLedger/backend#116)
This commit is contained in:
@@ -56,6 +56,7 @@ export default defineConfig(
|
|||||||
'after',
|
'after',
|
||||||
{ overrides: { '?': 'before', ':': 'before' } },
|
{ overrides: { '?': 'before', ':': 'before' } },
|
||||||
],
|
],
|
||||||
|
'import-x/no-cycle': 'error',
|
||||||
'import-x/no-duplicates': ['error', { 'prefer-inline': true }],
|
'import-x/no-duplicates': ['error', { 'prefer-inline': true }],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
export const operationCategories = [
|
||||||
|
'trade',
|
||||||
|
'income',
|
||||||
|
'tax',
|
||||||
|
'fee',
|
||||||
|
'transfer',
|
||||||
|
'other',
|
||||||
|
] as const;
|
||||||
|
|
||||||
|
export type OperationCategory = (typeof operationCategories)[number];
|
||||||
@@ -3,10 +3,8 @@ import { MILLISECONDS_PER_SECOND } from '../../../../common/time';
|
|||||||
import { decimal } from '../../../../integrations/tbank/decimal';
|
import { decimal } from '../../../../integrations/tbank/decimal';
|
||||||
import { TbankOperationType } from '../../../../integrations/tbank/tbank-protocol';
|
import { TbankOperationType } from '../../../../integrations/tbank/tbank-protocol';
|
||||||
import { TbankMoney, TbankOperationItem } from '../../../../integrations/tbank/tbank.api';
|
import { TbankMoney, TbankOperationItem } from '../../../../integrations/tbank/tbank.api';
|
||||||
import {
|
import { type OperationCategory } from '../../operation-category';
|
||||||
BrokerageOperationDto,
|
import { BrokerageOperationDto } from '../presentation/brokerage-operation.dto';
|
||||||
OperationCategory,
|
|
||||||
} from '../presentation/brokerage-operation.dto';
|
|
||||||
|
|
||||||
const MISSING_TIMESTAMP_COMPONENT = 0;
|
const MISSING_TIMESTAMP_COMPONENT = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -5,4 +5,3 @@ export type { OperationInterval } from './domain/operations-sync-plan';
|
|||||||
|
|
||||||
// Public cross-module surface. Nest providers are exported by the matching module.
|
// Public cross-module surface. Nest providers are exported by the matching module.
|
||||||
export { BrokerageOperationDto } from './presentation/brokerage-operation.dto';
|
export { BrokerageOperationDto } from './presentation/brokerage-operation.dto';
|
||||||
export { operationCategories } from './presentation/brokerage-operation.dto';
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import {
|
|||||||
import { MoneyDto } from '../../../../common/money.dto';
|
import { MoneyDto } from '../../../../common/money.dto';
|
||||||
import { AccountReferenceDto } from '../../account-reference.dto';
|
import { AccountReferenceDto } from '../../account-reference.dto';
|
||||||
import { InvestmentResourceMetaDto } from '../../investment-resource.dto';
|
import { InvestmentResourceMetaDto } from '../../investment-resource.dto';
|
||||||
|
import { operationCategories, type OperationCategory } from '../../operation-category';
|
||||||
|
|
||||||
const MIN_OPERATIONS_PAGE_SIZE = 1;
|
const MIN_OPERATIONS_PAGE_SIZE = 1;
|
||||||
|
|
||||||
@@ -23,16 +24,6 @@ const MAX_CURSOR_LENGTH = 4096;
|
|||||||
const MAX_OPERATIONS_PAGE_SIZE = 1000;
|
const MAX_OPERATIONS_PAGE_SIZE = 1000;
|
||||||
export const DEFAULT_OPERATIONS_PAGE_SIZE = 100;
|
export const DEFAULT_OPERATIONS_PAGE_SIZE = 100;
|
||||||
|
|
||||||
export const operationCategories = [
|
|
||||||
'trade',
|
|
||||||
'income',
|
|
||||||
'tax',
|
|
||||||
'fee',
|
|
||||||
'transfer',
|
|
||||||
'other',
|
|
||||||
] as const;
|
|
||||||
export type OperationCategory = (typeof operationCategories)[number];
|
|
||||||
|
|
||||||
export class BrokerageOperationsQueryDto {
|
export class BrokerageOperationsQueryDto {
|
||||||
@ApiPropertyOptional({
|
@ApiPropertyOptional({
|
||||||
format: 'uuid',
|
format: 'uuid',
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import {
|
|||||||
|
|
||||||
import { MAX_INSTRUMENT_QUERY_LENGTH, MIN_INSTRUMENT_QUERY_LENGTH } from '../instrument-query';
|
import { MAX_INSTRUMENT_QUERY_LENGTH, MIN_INSTRUMENT_QUERY_LENGTH } from '../instrument-query';
|
||||||
import { InvestmentAttemptProblemDto } from '../investment-resource.dto';
|
import { InvestmentAttemptProblemDto } from '../investment-resource.dto';
|
||||||
import { operationCategories } from '../operations/operations.api';
|
import { operationCategories } from '../operation-category';
|
||||||
|
|
||||||
const MIN_ACCOUNT_ID_LENGTH = 1;
|
const MIN_ACCOUNT_ID_LENGTH = 1;
|
||||||
const MIN_SYNC_PAGE_SIZE = 1;
|
const MIN_SYNC_PAGE_SIZE = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user