using Core.Blueprint.SQLServer.Entities; using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace Core.Blueprint.SQLServer { /// /// Defines the interface for SQL Server entities, providing common properties for auditing and state management. /// public interface IBaseSQLAdapter { /// /// Gets or sets the identifier for the entity. /// [Key] [JsonPropertyName("id")] int Id { get; } /// /// Gets or sets the GUID for the entity. /// [JsonPropertyName("guid")] string Guid { get; } /// /// Gets or sets the timestamp when the entity was created. /// [JsonPropertyName("createdAt")] DateTime? CreatedAt { get; } /// /// Gets or sets the identifier of the user or system that created the entity. /// [JsonPropertyName("createdBy")] string? CreatedBy { get; set; } /// /// Gets or sets the timestamp when the entity was last updated. /// [JsonPropertyName("updatedAt")] DateTime? UpdatedAt { get; set; } /// /// Gets or sets the identifier of the user or system that last updated the entity. /// [JsonPropertyName("updatedBy")] string? UpdatedBy { get; set; } /// /// Gets or sets the status of the entity, indicating whether it is active, inactive, or in another state. /// [JsonPropertyName("status")] [JsonConverter(typeof(JsonStringEnumConverter))] StatusEnum Status { get; set; } } }