using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GB5Shared.DTO.PubSub { public class PublishDTO { private Guid eventId = Guid.NewGuid(); // Unique ID for the event, e.g., "7f4cbb6d-28e9-4c80-a05c-bcc3a6a9a4ff" private int eventTypeId = -1; // Type of event, e.g., 1 for "Entity.Updated" private string eventtext = string.Empty; // Text description of the event, e.g., "User updated profile" private int entityTypeId = -1; // Type of the entity, e.g., 1001 for "User" private int entityId = -1; // ID of the entity instance, e.g., 55 private string server = string.Empty; // Origin server name, e.g., "AppServer01" private string dbName = string.Empty; // Database name, e.g., "MainDB" private string operation = string.Empty; // Operation type, e.g., "Update,Save,Delete" private string source = string.Empty; // Source of event, e.g., "UserService" private DateTime timestamp = DateTime.UtcNow; // Time of the event in UTC private int userId = -1; private int roleid = -1; private object payload = default!; // Actual data/content of the event private Dictionary? context; // Optional key-value metadata, e.g., { "RequestId": "abc123" } private string? pubsubtopicname; // Topic name in pub/sub, e.g., "user.updated" private string? pubSubName; // Name of pub/sub component, e.g., "pubsub" private int fileId = -1; // Optional file ID, e.g., 102 private string? blobUrl; // URL to the file/blob, e.g., "https://blobserver.com/file.pdf" private string? correlationId; // Trace or correlation ID, e.g., "trace-2025061001" private int deliveryAttempt = 0; // Number of retry attempts private bool isTest = false; // Indicates if the event is a test private DateTime? expirationTime; // When the event should expire private string link = string.Empty; private string tags = string.Empty; private string eventvalue = string.Empty; private string geo = string.Empty; private string machineip = string.Empty; private int sourceid = -1; private int eventclassid = -1; private int logbookid = -1; private int dataid = -1; //object id private int eventchannelid = -1; private int ouid = -1; private int modeofworking = -1; private int logineventlogid = -1; private int eventlogid = -1; private object? data = null; private object? request = null; private object? login = null; private string pushnotificationtoken = ""; public string PushNotificationToken { get { return pushnotificationtoken; } set { pushnotificationtoken = value; } } public Guid EventId { get { return eventId; } set { eventId = value; } } public int EventTypeId { get { return eventTypeId; } set { eventTypeId = value; } } public string EventText { get { return eventtext; } set { eventtext = value; } } public int EntityTypeId { get { return entityTypeId; } set { entityTypeId = value; } } public int EntityId { get { return entityId; } set { entityId = value; } } public string Server { get { return server; } set { server = value; } } public string DBName { get { return dbName; } set { dbName = value; } } public string Operation { get { return operation; } set { operation = value; } } public string Source { get { return source; } set { source = value; } } public DateTime Timestamp { get { return timestamp; } set { timestamp = value; } } public int UserId { get { return userId; } set { userId = value; } } public int RoleId { get { return roleid; } set { roleid = value; } } public object Payload { get { return payload; } set { payload = value; } } public Dictionary? Context { get { return context; } set { context = value; } } public string? PubSubTopicName { get { return pubsubtopicname; } set { pubsubtopicname = value; } } public string? PubSubName { get { return pubSubName; } set { pubSubName = value; } } public int FileId { get { return fileId; } set { fileId = value; } } public string? BlobUrl { get { return blobUrl; } set { blobUrl = value; } } public string? CorrelationId { get { return correlationId; } set { correlationId = value; } } public int DeliveryAttempt { get { return deliveryAttempt; } set { deliveryAttempt = value; } } public bool IsTest { get { return isTest; } set { isTest = value; } } public DateTime? ExpirationTime { get { return expirationTime; } set { expirationTime = value; } } public string Link { get { return link; } set { link = value; } } public string Tags { get { return tags; } set { tags = value; } } public string EventValue { get { return eventvalue; } set { eventvalue = value; } } public string Geo { get { return geo; } set { geo = value; } } public string MachineIP { get { return machineip; } set { machineip = value; } } public int SourceId { get { return sourceid; } set { sourceid = value; } } public int EventClassId { get { return eventclassid; } set { eventclassid = value; } } public int LogBookId { get { return logbookid; } set { logbookid = value; } } public int DataId { get { return dataid; } set { dataid = value; } } public int EventChannelId { get { return eventchannelid; } set { eventchannelid = value; } } public int OUId { get { return ouid; } set { ouid = value; } } public int ModeOfWorking { get { return modeofworking; } set { modeofworking = value; } } public int LoginEventLogId { get { return logineventlogid; } set { logineventlogid = value; } } public int EventLogId { get { return eventlogid; } set { eventlogid = value; } } public object? Data { get { return data; } set { data = value; } } public object? Request { get { return request; } set { request = value; } } public object? Login { get { return login; } set { login = value; } } } public class ActorInfo { private int userId = -1; private int roleid = -1; public int UserId { get { return userId; } set { userId = value; } } public int RoleId { get { return roleid; } set { roleid = value; } } } }