Files
jinzhi/lib/features/market/data/market_models.dart
T
2026-06-18 15:02:28 +08:00

75 lines
1.5 KiB
Dart

import '../../../common/domain/metal_type.dart';
enum MarketPeriod {
h24('24h', '24时'),
d5('5d', '5日'),
m1('1m', '1月'),
m3('3m', '3月'),
y1('1y', '1年');
const MarketPeriod(this.id, this.label);
final String id;
final String label;
}
enum ExchangeChannelKind { spot, bar, retail, td, recycle }
class MetalQuote {
const MetalQuote({
required this.metal,
required this.spotPrice,
required this.changeAmount,
required this.changePercent,
required this.updatedAt,
required this.sourceLabel,
required this.basisLabel,
});
final MetalType metal;
final double spotPrice;
final double changeAmount;
final double changePercent;
final DateTime updatedAt;
final String sourceLabel;
final String basisLabel;
}
class MarketPoint {
const MarketPoint({
required this.time,
required this.open,
required this.high,
required this.low,
required this.close,
});
final DateTime time;
final double open;
final double high;
final double low;
final double close;
}
class ExchangeChannel {
const ExchangeChannel({
required this.id,
required this.metal,
required this.name,
required this.kind,
required this.pricePerGram,
required this.source,
required this.updatedAt,
required this.hint,
});
final String id;
final MetalType metal;
final String name;
final ExchangeChannelKind kind;
final double pricePerGram;
final String source;
final DateTime updatedAt;
final String hint;
}