using AI.Models;
namespace AI.ViewModels
{
///
/// 会话列表项的 ViewModel
///
public class ChatSessionItemViewModel : ViewModelBase
{
private readonly ChatSession _session;
private bool _isSelected;
public ChatSessionItemViewModel(ChatSession session)
{
_session = session ?? throw new ArgumentNullException(nameof(session));
}
///
/// 会话ID
///
public string Id => _session.Id;
///
/// 会话标题
///
public string Title
{
get => _session.Title;
set
{
if (_session.Title != value)
{
_session.Title = value;
OnPropertyChanged();
}
}
}
///
/// 创建时间
///
public DateTime CreatedAt => _session.CreatedAt;
///
/// 最后更新时间
///
public DateTime UpdatedAt => _session.UpdatedAt;
///
/// 消息数量
///
public int MessageCount => _session.MessageCount;
///
/// 是否被选中
///
public bool IsSelected
{
get => _isSelected;
set => SetProperty(ref _isSelected, value);
}
///
/// 获取底层会话对象
///
public ChatSession Session => _session;
///
/// 更新显示信息(当会话变化时调用)
///
public void Refresh()
{
OnPropertyChanged(nameof(Title));
OnPropertyChanged(nameof(UpdatedAt));
OnPropertyChanged(nameof(MessageCount));
}
}
}