using BoardMetaResponse = Application.Features.Api.Forum.BoardMeta.Get.Response;

namespace Application.Features.Api.Forum.Board.Get;

public sealed record Response(
    int ID,
    int BoardGroupID,
    string Code,
    string Name,
    bool IsSearch,
    bool IsActive,
    int Posts,
    BoardGroupDto BoardGroup,
    List<BoardPrefixDto> BoardPrefix,
    List<BoardManagerDto> BoardManager,
    BoardMetaResponse? BoardMeta
);

public sealed record BoardGroupDto(
    int ID,
    string Code,
    string Name
);

public sealed record BoardPrefixDto(
    int ID,
    int BoardID,
    string Name,
    string? Color,
    int Posts
);

public sealed record BoardManagerDto(
    int ID,
    int BoardID,
    BoardManagerUserDto User,
    bool CanEdit,
    bool CanDelete,
    DateTime? UpdatedAt,
    DateTime CreatedAt
);

public sealed record BoardManagerUserDto(
    int ID,
    string Email
);
