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

part of '../task_selection_modal.dart';

/// Private implementation type for `_HeaderMetadata` in this library.
/// It keeps supporting state and behavior scoped to the owning file so the public API stays focused on the scheduler concepts that callers use directly.
class _HeaderMetadata extends StatelessWidget {
  /// Creates a `_HeaderMetadata` instance with the values required by its invariants.
  /// Callers should pass already-normalized scheduler data because validation and defaulting belong at the model or service boundary, not in arbitrary UI code.
  const _HeaderMetadata({required this.card});

  /// Stores the `card` value for this object.
  /// This field is part of the explicit state that downstream scheduling, persistence, or UI code reads when composing behavior.
  final TimelineCardModel card;

  /// Builds the widget subtree for this component.
  /// The method translates the current widget configuration and state into Flutter UI without mutating scheduler domain data.
  @override
  Widget build(BuildContext context) {
    const metadataStyle = TextStyle(
      color: FocusFlowTokens.textMuted,
      fontSize: 17,
    );
    if (!card.isCompleted) {
      return Text('${card.typeLabel} - ${card.timeText}', style: metadataStyle);
    }
    final completedTime = card.completedTimeText;
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text(
          completedTime == null || completedTime.isEmpty
              ? 'Completed'
              : 'Completed - $completedTime',
          style: metadataStyle,
        ),
        const SizedBox(height: 3),
        Text(
          'Planned: ${card.timeText}',
          style: metadataStyle.copyWith(fontSize: 15),
        ),
      ],
    );
  }
}
