SDK_UnityMoney/Assets/ThinkingAnalytics/TDEvent.cs

131 lines
3.7 KiB
C#
Raw Permalink Normal View History

2025-08-30 09:38:53 +00:00
using System;
using System.Collections.Generic;
namespace ThinkingData.Analytics
{
/// <summary>
/// Special event class for internal use, do not use this class directly.
/// </summary>
public abstract class TDEventModel
{
public enum TDEventType
{
First,
Updatable,
Overwritable
}
public TDEventModel(string eventName)
{
EventName = eventName;
}
public TDEventType? EventType { get; set; }
public string EventName { get; }
public Dictionary<string, object> Properties { get; set; }
public string StrProperties { get; set; }
private DateTime EventTime { get; set; }
private TimeZoneInfo EventTimeZone { get; set; }
protected string ExtraId { get; set; }
/// <summary>
/// Set date time and timezone for the event
/// </summary>
/// <param name="time">date time</param>
/// <param name="timeZone">timezone</param>
public void SetTime(DateTime time, TimeZoneInfo timeZone)
{
EventTime = time;
EventTimeZone = timeZone;
}
/// <summary>
/// Get date time for the event
/// </summary>
/// <returns></returns>
public DateTime GetEventTime()
{
return EventTime;
}
/// <summary>
/// Get timezone for the event
/// </summary>
/// <returns></returns>
public TimeZoneInfo GetEventTimeZone()
{
return EventTimeZone;
}
/// <summary>
/// Get identify code for the event
/// </summary>
/// <returns></returns>
public string GetEventId()
{
return ExtraId;
}
}
/// <summary>
/// First Event Model
/// </summary>
public class TDFirstEventModel : TDEventModel
{
/// <summary>
/// Construct TDFirstEventModel instance
/// </summary>
/// <param name="eventName">name for the event</param>
public TDFirstEventModel(string eventName) : base(eventName)
{
EventType = TDEventType.First;
}
/// <summary>
/// Construct TDFirstEventModel instance
/// </summary>
/// <param name="eventName">name for the event</param>
/// <param name="firstCheckId">check ID for the first event</param>
public TDFirstEventModel(string eventName, string firstCheckId) : base(eventName)
{
EventType = TDEventType.First;
ExtraId = firstCheckId;
}
}
/// <summary>
/// Updatable Event Model
/// </summary>
public class TDUpdatableEventModel : TDEventModel
{
/// <summary>
/// Construct TDUpdatableEventModel instance
/// </summary>
/// <param name="eventName">name for the event</param>
/// <param name="eventId">ID for the event</param>
public TDUpdatableEventModel(string eventName, string eventId) : base(eventName)
{
EventType = TDEventType.Updatable;
ExtraId = eventId;
}
}
/// <summary>
/// Overwritable Event Model
/// </summary>
public class TDOverwritableEventModel : TDEventModel
{
/// <summary>
/// Construct TDOverwritableEventModel instance
/// </summary>
/// <param name="eventName">name for the event</param>
/// <param name="eventId">ID for the event</param>
public TDOverwritableEventModel(string eventName, string eventId) : base(eventName)
{
EventType = TDEventType.Overwritable;
ExtraId = eventId;
}
}
}