feat(core): add shared DTOs, MqttTopics constants, DatabaseBootstrapper, and ManagedMqttClient extensions

This commit is contained in:
2026-08-24 21:35:24 +02:00
parent 6ab84fe1de
commit 44b161d509
39 changed files with 2545 additions and 709 deletions
@@ -1,17 +1,18 @@
using System;
using System.Globalization;
using System.Text.Json.Serialization;
namespace FinlyticCore.Dtos.TradeRepublic;
public record TradeRepublicPriceTick(
[property: JsonPropertyName("time")] long Time,
[property: JsonPropertyName("price")] string Price,
[property: JsonPropertyName("size")] decimal Size
[property: JsonPropertyName("time")] long? Time = null,
[property: JsonPropertyName("price"), JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] decimal Price = 0m,
[property: JsonPropertyName("size")] decimal? Size = null
)
{
public decimal PriceValue => decimal.TryParse(Price, NumberStyles.Any, CultureInfo.InvariantCulture, out var v) ? v : 0m;
public DateTime DateTimeUtc => DateTimeOffset.FromUnixTimeMilliseconds(Time).UtcDateTime;
public decimal PriceValue => Price;
public DateTime DateTimeUtc => Time.HasValue && Time.Value > 0
? DateTimeOffset.FromUnixTimeMilliseconds(Time.Value).UtcDateTime
: DateTime.UtcNow;
}
public record TradeRepublicTickerResponse(