namespace DiunaBI.Application.DTOModels;

public class LayerDto
{
    public Guid Id { get; set; }
    public int Number { get; set; }
    public string? Name { get; set; }
    public LayerType Type { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime ModifiedAt { get; set; }
    public Guid CreatedById { get; set; }
    public Guid ModifiedById { get; set; }
    public bool IsDeleted { get; set; }
    public bool IsCancelled { get; set; }
    public Guid? ParentId { get; set; }
    
    // Navigation properties
    public List<RecordDto>? Records { get; set; }
    public UserDto? CreatedBy { get; set; }
    public UserDto? ModifiedBy { get; set; }
}

public enum LayerType
{
    Import,
    Processed,
    Administration,
    Dictionary
}

public class LayerFilterRequest
{
    public string? Search { get; set; }
    public LayerType? Type { get; set; }
    public int Page { get; set; } = 1;
    public int PageSize { get; set; } = 50;
}