// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

part of '../../../application_management.dart';

/// Query result for the Backlog board surface.
class BacklogBoardQueryResult {
  /// Creates a Backlog board result from summary, columns, and project options.
  BacklogBoardQueryResult({
    required this.ownerId,
    required this.localDate,
    required this.summary,
    required List<BacklogBoardColumnReadModel> columns,
    required List<ProjectOptionReadModel> projectOptions,
  })  : columns = List<BacklogBoardColumnReadModel>.unmodifiable(columns),
        projectOptions = List<ProjectOptionReadModel>.unmodifiable(
          projectOptions,
        );

  /// Authorization-neutral owner scope used for the read.
  final String ownerId;

  /// Owner-local planning date used for suggested slot previews.
  final CivilDate localDate;

  /// Summary counts and planning copy derived from the same filtered item set.
  final BacklogBoardSummaryReadModel summary;

  /// Stable ordered board columns.
  final List<BacklogBoardColumnReadModel> columns;

  /// Project choices available to board and drawer controls.
  final List<ProjectOptionReadModel> projectOptions;
}
