mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-14 15:07:33 +08:00
add asset trends in statistics & analysis (#314)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { type PartialRecord, itemAndIndex } from '@/core/base.ts';
|
||||
import type { Year1BasedMonth, TextualYearMonthDay, StartEndTime, WeekDay } from '@/core/datetime.ts';
|
||||
import type { TextualYearMonthDay, Year1BasedMonth, YearMonthDay, StartEndTime, WeekDay } from '@/core/datetime.ts';
|
||||
import { type Coordinate, getNormalizedCoordinate } from '@/core/coordinate.ts';
|
||||
import { TransactionType } from '@/core/transaction.ts';
|
||||
|
||||
@@ -581,6 +581,11 @@ export interface TransactionStatisticTrendsRequest extends YearMonthRangeRequest
|
||||
readonly useTransactionTimezone: boolean;
|
||||
}
|
||||
|
||||
export interface TransactionStatisticAssetTrendsRequest {
|
||||
readonly startTime: number;
|
||||
readonly endTime: number;
|
||||
}
|
||||
|
||||
export const ALL_TRANSACTION_AMOUNTS_REQUEST_TYPE = [
|
||||
'today',
|
||||
'thisWeek',
|
||||
@@ -710,12 +715,31 @@ export interface TransactionStatisticTrendsResponseItem {
|
||||
readonly items: TransactionStatisticResponseItem[];
|
||||
}
|
||||
|
||||
export interface TransactionStatisticAssetTrendsResponseItem extends YearMonthDay {
|
||||
readonly year: number;
|
||||
readonly month: number; // 1-based (1 = January, 12 = December)
|
||||
readonly day: number;
|
||||
readonly items: TransactionStatisticAssetTrendsResponseDataItem[];
|
||||
}
|
||||
|
||||
export interface TransactionStatisticAssetTrendsResponseDataItem {
|
||||
readonly accountId: string;
|
||||
readonly accountOpeningBalance: number;
|
||||
readonly accountClosingBalance: number;
|
||||
}
|
||||
|
||||
export interface YearMonthDataItem extends Year1BasedMonth, Record<string, unknown> {}
|
||||
|
||||
export interface YearMonthDayDataItem extends YearMonthDay, Record<string, unknown> {}
|
||||
|
||||
export interface YearMonthItems<T extends Year1BasedMonth> extends Record<string, unknown> {
|
||||
readonly items: T[];
|
||||
}
|
||||
|
||||
export interface YearMonthDayItems<T extends YearMonthDay> extends Record<string, unknown> {
|
||||
readonly items: T[];
|
||||
}
|
||||
|
||||
export interface SortableTransactionStatisticDataItem {
|
||||
readonly name: string;
|
||||
readonly displayOrders: number[];
|
||||
@@ -749,6 +773,13 @@ export interface TransactionStatisticTrendsResponseItemWithInfo {
|
||||
readonly items: TransactionStatisticResponseItemWithInfo[];
|
||||
}
|
||||
|
||||
export interface TransactionStatisticAssetTrendsResponseItemWithInfo {
|
||||
readonly year: number;
|
||||
readonly month: number; // 1-based (1 = January, 12 = December)
|
||||
readonly day: number;
|
||||
readonly items: TransactionStatisticResponseItemWithInfo[];
|
||||
}
|
||||
|
||||
export type TransactionStatisticDataItemType = 'category' | 'account' | 'total';
|
||||
|
||||
export interface TransactionStatisticDataItemBase extends SortableTransactionStatisticDataItem {
|
||||
@@ -820,6 +851,21 @@ export interface TransactionTrendsAnalysisDataAmount extends Record<string, unkn
|
||||
readonly totalAmount: number;
|
||||
}
|
||||
|
||||
export interface TransactionAssetTrendsAnalysisData {
|
||||
readonly items: TransactionAssetTrendsAnalysisDataItem[];
|
||||
}
|
||||
|
||||
export interface TransactionAssetTrendsAnalysisDataItem extends Record<string, unknown>, TransactionStatisticDataItemBase {
|
||||
readonly items: TransactionAssetTrendsAnalysisDataAmount[];
|
||||
}
|
||||
|
||||
export interface TransactionAssetTrendsAnalysisDataAmount extends Record<string, unknown>, YearMonthDay {
|
||||
readonly year: number;
|
||||
readonly month: number;
|
||||
readonly day: number;
|
||||
readonly totalAmount: number;
|
||||
}
|
||||
|
||||
export type TransactionAmountsResponse = PartialRecord<TransactionAmountsRequestType, TransactionAmountsResponseItem>;
|
||||
|
||||
export interface TransactionAmountsResponseItem {
|
||||
|
||||
Reference in New Issue
Block a user