import '../../marianumconnect/queries/get_ticker/get_ticker_response.dart';
import '../../marianumconnect/queries/get_ticker_nav/get_ticker_nav_response.dart';
import '../../marianumconnect/queries/get_ticker_page/get_ticker_page_response.dart';

/// Demo fixtures for the ticker module — a small, self-contained example doc so
/// the "Aktuelles" surface and the page tree are populated without any network.
class DemoTicker {
  const DemoTicker._();

  static Map<String, dynamic> _welcomeDoc() => {
    'type': 'doc',
    'content': [
      {
        'type': 'heading',
        'attrs': {'level': 1},
        'content': [
          {'type': 'text', 'text': 'Willkommen beim Ticker'},
        ],
      },
      {
        'type': 'paragraph',
        'content': [
          {'type': 'text', 'text': 'Hier erscheinen aktuelle Informationen '},
          {
            'type': 'text',
            'text': 'der Schule',
            'marks': [
              {'type': 'bold'},
            ],
          },
          {'type': 'text', 'text': '.'},
        ],
      },
      {
        'type': 'callout',
        'attrs': {'variant': 'info'},
        'content': [
          {
            'type': 'paragraph',
            'content': [
              {'type': 'text', 'text': 'Dies ist eine Beispiel-Meldung.'},
            ],
          },
        ],
      },
    ],
  };

  static Map<String, dynamic> _pageDoc() => {
    'type': 'doc',
    'content': [
      {
        'type': 'heading',
        'attrs': {'level': 2},
        'content': [
          {'type': 'text', 'text': 'Über diese Seite'},
        ],
      },
      {
        'type': 'paragraph',
        'content': [
          {
            'type': 'text',
            'text': 'Eine Beispielseite mit nativ gerendertem Inhalt.',
          },
        ],
      },
    ],
  };

  static TickerResponse ticker() => TickerResponse(
    schemaVersion: 1,
    available: true,
    hash: 'demo-ticker',
    publishedAt: DateTime.now().toIso8601String(),
    webUrl: '/ticker',
    content: _welcomeDoc(),
  );

  static TickerNavResponse nav() => TickerNavResponse(
    schemaVersion: 1,
    navHash: 'demo-nav',
    sections: [
      TickerNavSection(
        title: 'Informationen',
        pages: [
          TickerNavPage(
            title: 'Über die App',
            slug: 'ueber-die-app',
            kind: TickerPageKind.content,
            hash: 'demo-page',
          ),
          TickerNavPage(
            title: 'Schulwebseite',
            slug: 'schulwebseite',
            kind: TickerPageKind.redirect,
            externalUrl: 'https://marianum-fulda.de',
          ),
        ],
      ),
    ],
  );

  static TickerPageResponse page(String slug) => TickerPageResponse(
    schemaVersion: 1,
    slug: slug,
    title: 'Über die App',
    kind: TickerPageKind.content,
    content: _pageDoc(),
    webUrl: '/ticker/p/$slug',
  );
}
