25 lines
901 B
C#
25 lines
901 B
C#
using System.Text.RegularExpressions;
|
|
|
|
namespace Jiaowu.Api.Infrastructure.Analytics;
|
|
|
|
public sealed partial class ClickHouseAnalyticsOptions
|
|
{
|
|
public const string SectionName = "ClickHouseAnalytics";
|
|
|
|
public bool Enabled { get; set; }
|
|
public string Endpoint { get; set; } = "http://localhost:8123";
|
|
public string Database { get; set; } = "jiaowu_analytics";
|
|
public string UserName { get; set; } = "jiaowu_analytics";
|
|
public string Password { get; set; } = "";
|
|
public bool CreateSchemaOnStartup { get; set; } = true;
|
|
public int SyncIntervalSeconds { get; set; } = 60;
|
|
public int SourceLookbackDays { get; set; } = 90;
|
|
public int BatchSize { get; set; } = 1000;
|
|
|
|
[GeneratedRegex("^[a-zA-Z_][a-zA-Z0-9_]{0,62}$")]
|
|
private static partial Regex IdentifierPattern();
|
|
|
|
public bool HasValidIdentifiers() =>
|
|
IdentifierPattern().IsMatch(Database);
|
|
}
|