namespace UVC.UI.Toolbar.Model
{
    /// <summary>
    /// 툴바 내에서 항목들(예: 버튼 그룹)을 시각적으로 구분하는 구분선을 나타냅니다.
    /// IToolbarItem 인터페이스를 구현하여 툴바 시스템(ToolbarModel)에 추가될 수 있습니다.
    /// </summary>
    /// <remarks>
    /// ToolbarSeparator는 일반적으로 특별한 동작이나 속성을 가지지 않으며,
    /// View 레이어(예: ToolbarView)에서 이 항목을 만나면 시각적인 구분선 UI (예: 선, 공백 등)를 렌더링합니다.
    /// 프리팹 기반으로 UI가 생성될 경우, 구분선에 해당하는 프리팹이 사용됩니다.
    /// </remarks>
    /// <example>
    /// <code>
    /// // Toolbar 또는 ToolbarModel 등에서 ToolbarSeparator 사용 예시
    /// 
    /// // ToolbarModel 인스턴스가 있다고 가정
    /// // ToolbarModel toolbarModel = new ToolbarModel();
    /// 
    /// // 1. 표준 버튼 추가
    /// // toolbarModel.AddStandardButton("버튼1", null, new ActionCommand(() => {}));
    /// 
    /// // 2. 구분선 추가
    /// ToolbarSeparator separator = new ToolbarSeparator();
    /// toolbarModel.AddItem(separator); 
    /// // 또는 ToolbarModel에 AddSeparator() 헬퍼 메서드가 있다면 그것을 사용
    /// // toolbarModel.AddSeparator();
    /// 
    /// // 3. 또 다른 버튼 추가
    /// // toolbarModel.AddStandardButton("버튼2", null, new ActionCommand(() => {}));
    /// 
    /// // 위와 같이 추가하면, ToolbarView는 "버튼1"과 "버튼2" 사이에 구분선을 렌더링하게 됩니다.
    /// </code>
    /// </example>
    public class ToolbarSeparator : IToolbarItem
    {
        // ToolbarSeparator는 일반적으로 데이터를 가지지 않으므로 내용이 비어있습니다.
        // 만약 구분선의 특정 스타일(예: 두께, 색상, 여백 등)을 모델 수준에서 제어해야 한다면,
        // 여기에 관련 속성을 추가할 수 있습니다. 하지만 보통 이러한 시각적 요소는 View에서 처리합니다.
        // 
        // 예시: 구분선 유형을 나타내는 속성 (필요한 경우)
        // public enum SeparatorType { Line, Spacer }
        // public SeparatorType Type { get; set; } = SeparatorType.Line;
    }
}