forked from xiongyuxing/tiku-backend.net
47 lines
1.1 KiB
C#
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();
|
|
}
|
|
}
|