Files
nexus/backend/Models/TaskBoard.cs
T
AzuTear f5552218bc
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s
feat: ship agent-first mission control v0.2.57
2026-07-31 22:39:47 +02:00

42 lines
1.3 KiB
C#

namespace Nexus.Api.Models;
/// <summary>
/// Compact task representation used by the paged mission-control board.
/// Child tasks are represented by their own cards and linked through
/// <see cref="ParentTaskId"/> so the client can build the hierarchy in O(n).
/// </summary>
public sealed record TaskBoardCardDto(
Guid Id,
string Title,
string? Detail,
string Source,
string State,
string Priority,
string? AssignedTo,
Guid? ParentTaskId,
Guid? ProjectId,
DateTimeOffset? DueDate,
DateTimeOffset CreatedAt,
DateTimeOffset UpdatedAt,
bool IsAgentTask,
string? ExpectedFrom,
string? LastActivityMessage,
DateTimeOffset? LastActivityAt,
int ChildTaskCount,
int OpenChildTaskCount,
bool HasVisibleDelegation);
/// <summary>
/// Initial task-board page. Active columns are complete; the Done column is
/// keyset-paginated by <c>(UpdatedAt DESC, Id DESC)</c>.
/// </summary>
public sealed record TaskBoardPageDto(
string Revision,
IReadOnlyList<TaskBoardCardDto> Offen,
IReadOnlyList<TaskBoardCardDto> InProgress,
IReadOnlyList<TaskBoardCardDto> Review,
IReadOnlyList<TaskBoardCardDto> Blocked,
IReadOnlyList<TaskBoardCardDto> Done,
string? NextDoneCursor,
bool HasMoreDone);