Files
tiku-backend.net/Tiku.Domain/Common/Entity.cs
2026-07-26 04:52:56 +08:00

47 lines
1.1 KiB
C#

using System.Text.Json;
namespace Tiku.Domain.Common;
public abstract class Entity
{
public Guid Id { get; set; } = Guid.NewGuid();
}
public interface IHasTimestamps
{
DateTimeOffset CreatedAt { get; set; }
DateTimeOffset UpdatedAt { get; set; }
}
public abstract class AuditableEntity : Entity, IHasTimestamps
{
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
}
public abstract class TenantEntity : Entity
{
public Guid TenantId { get; set; }
}
public abstract class AuditableTenantEntity : TenantEntity, IHasTimestamps
{
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
}
public static class JsonDefaults
{
public static JsonElement Object()
{
using var document = JsonDocument.Parse("{}");
return document.RootElement.Clone();
}
public static JsonElement Array()
{
using var document = JsonDocument.Parse("[]");
return document.RootElement.Clone();
}
}