using System; using System.Collections.Generic; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; namespace Kurs.Platform.Entities; public class CustomEntity : FullAuditedEntity, IMultiTenant { public virtual Guid? TenantId { get; protected set; } public string Name { get; set; } = string.Empty; public string DisplayName { get; set; } = string.Empty; public string TableName { get; set; } = string.Empty; public string? Description { get; set; } public bool IsActive { get; set; } = true; public bool HasAuditFields { get; set; } = true; public bool HasSoftDelete { get; set; } = true; public string MigrationStatus { get; set; } = "pending"; public Guid? MigrationId { get; set; } public string EndpointStatus { get; set; } = "pending"; // "pending" | "applied" | "failed" public virtual ICollection Fields { get; set; } = []; public CustomEntity() { Id = Guid.NewGuid(); // Burada erişim mümkün çünkü sınıfın içi } } public class CustomEntityField : FullAuditedEntity { public Guid EntityId { get; set; } = Guid.NewGuid(); public string Name { get; set; } = string.Empty; public string Type { get; set; } = string.Empty; public bool IsRequired { get; set; } public int? MaxLength { get; set; } public bool IsUnique { get; set; } public string? DefaultValue { get; set; } public string? Description { get; set; } public int DisplayOrder { get; set; } = 0; public virtual CustomEntity Entity { get; set; } = null!; public CustomEntityField() { Id = Guid.NewGuid(); // Burada erişim mümkün çünkü sınıfın içi } }