/* eslint-disable @typescript-eslint/no-unused-vars */
import {merge} from 'lodash';
import {ObjectTreesApplicationInterface} from '../../application.interface';
import {ExtensionProvider} from '../../integration/extension.provider';
import {CALENDAR_PAGE_TYPE} from '../calendar/calendar.const';
import {CalendarProvider} from '../calendar/calendar.provider';
import {ContentImageTemplateProvider} from '../content-image-template/content-image-template.provider';
import {WELCOME_PAGE_TYPE} from '../web-site/web-site.const';
import {WebSiteProvider} from '../web-site/web-site.provider';
import {
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_CALENDAR_PAGE_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_EVENT_ROOT_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_IMAGE_GALLERIES_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST1_ROOT_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST2_ROOT_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST3_ROOT_SUBTYPE,
  ARTIST_WEB_SITE_ARTIST_WEB_SITE_WELCOME_PAGE_SUBTYPE,
  ARTIST_WEB_SITE_CALENDAR_PAGE_ARTIST_WEB_SITE_CALENDAR_SUBTYPE,
  ARTIST_WEB_SITE_CALENDAR_PAGE_TYPE,
  ARTIST_WEB_SITE_CALENDAR_TYPE,
  ARTIST_WEB_SITE_EVENT_ARTIST_WEB_SITE_EVENT_SUBTYPE,
  ARTIST_WEB_SITE_EVENT_ROOT_TYPE,
  ARTIST_WEB_SITE_EVENT_TYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERIES_ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_SUBTYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERIES_ARTIST_WEB_SITE_IMAGE_GALLERY_SUBTYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERIES_TYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_TYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERY_REFERRER_TYPE,
  ARTIST_WEB_SITE_IMAGE_GALLERY_TYPE,
  ARTIST_WEB_SITE_PARAGRAPH_TYPE,
  ARTIST_WEB_SITE_POST1_ARTIST_WEB_SITE_POST1_SUBTYPE,
  ARTIST_WEB_SITE_POST1_ROOT_TYPE,
  ARTIST_WEB_SITE_POST1_TYPE,
  ARTIST_WEB_SITE_POST2_ARTIST_WEB_SITE_POST2_SUBTYPE,
  ARTIST_WEB_SITE_POST2_ROOT_TYPE,
  ARTIST_WEB_SITE_POST2_TYPE,
  ARTIST_WEB_SITE_POST3_ARTIST_WEB_SITE_POST3_SUBTYPE,
  ARTIST_WEB_SITE_POST3_ROOT_TYPE,
  ARTIST_WEB_SITE_POST3_TYPE,
  ARTIST_WEB_SITE_POST_GALLERY_TEXT_PARAGRAPH_SUBTYPE,
  ARTIST_WEB_SITE_POST_ROOT_TYPE,
  ARTIST_WEB_SITE_POST_TYPE,
  ARTIST_WEB_SITE_PROVIDER,
  ARTIST_WEB_SITE_TEMPLATE_TYPE,
  ARTIST_WEB_SITE_TYPE,
  ARTIST_WEB_SITE_WELCOME_MENU_TEXT_PARAGRAPH_SUBTYPE,
  ARTIST_WEB_SITE_WELCOME_PAGE_ARTIST_WEB_SITE_PARAGRAPH_SUBTYPE,
  ARTIST_WEB_SITE_WELCOME_PAGE_ARTIST_WEB_SITE_WELCOME_MENU_SUBTYPE,
  ARTIST_WEB_SITE_WELCOME_PAGE_TYPE,
  ARTIST_WEB_SITE_WELCOME_PARAGRAPH_TYPE,
  CATEGORY_ARTIST_WEB_SITE_TEMPLATE_SUBTYPE,
  FOLDER_ARTIST_WEB_SITE_SUBTYPE,
} from './artist-web-site.const';
export class ArtistWebSiteProvider extends ExtensionProvider {
  constructor(protected app: ObjectTreesApplicationInterface) {
    super(ARTIST_WEB_SITE_PROVIDER, app);
    this.requiredProviders.push(
      WebSiteProvider,
      ContentImageTemplateProvider,
      CalendarProvider,
    );
    this.objectTypes.push(
      ARTIST_WEB_SITE_TYPE,
      ARTIST_WEB_SITE_POST_TYPE,
      ARTIST_WEB_SITE_POST1_TYPE,
      ARTIST_WEB_SITE_POST2_TYPE,
      ARTIST_WEB_SITE_POST3_TYPE,
      ARTIST_WEB_SITE_EVENT_TYPE,
      ARTIST_WEB_SITE_TEMPLATE_TYPE,
      ARTIST_WEB_SITE_POST_ROOT_TYPE,
      ARTIST_WEB_SITE_POST1_ROOT_TYPE,
      ARTIST_WEB_SITE_POST2_ROOT_TYPE,
      ARTIST_WEB_SITE_POST3_ROOT_TYPE,
      ARTIST_WEB_SITE_EVENT_ROOT_TYPE,
      ARTIST_WEB_SITE_WELCOME_PAGE_TYPE,
      ARTIST_WEB_SITE_WELCOME_PARAGRAPH_TYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERIES_TYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERY_TYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERY_REFERRER_TYPE,
      ARTIST_WEB_SITE_CALENDAR_PAGE_TYPE,
      ARTIST_WEB_SITE_CALENDAR_TYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_TYPE,
      ARTIST_WEB_SITE_PARAGRAPH_TYPE,
    );

    this.objectSubTypes.push(
      FOLDER_ARTIST_WEB_SITE_SUBTYPE,
      ARTIST_WEB_SITE_POST_GALLERY_TEXT_PARAGRAPH_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST1_ROOT_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST2_ROOT_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_POST3_ROOT_SUBTYPE,
      ARTIST_WEB_SITE_POST1_ARTIST_WEB_SITE_POST1_SUBTYPE,
      ARTIST_WEB_SITE_POST2_ARTIST_WEB_SITE_POST2_SUBTYPE,
      ARTIST_WEB_SITE_POST3_ARTIST_WEB_SITE_POST3_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_EVENT_ROOT_SUBTYPE,
      ARTIST_WEB_SITE_EVENT_ARTIST_WEB_SITE_EVENT_SUBTYPE,
      CATEGORY_ARTIST_WEB_SITE_TEMPLATE_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_IMAGE_GALLERIES_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_WELCOME_PAGE_SUBTYPE,
      ARTIST_WEB_SITE_WELCOME_PAGE_ARTIST_WEB_SITE_WELCOME_MENU_SUBTYPE,
      ARTIST_WEB_SITE_WELCOME_PAGE_ARTIST_WEB_SITE_PARAGRAPH_SUBTYPE,
      ARTIST_WEB_SITE_WELCOME_MENU_TEXT_PARAGRAPH_SUBTYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERIES_ARTIST_WEB_SITE_IMAGE_GALLERY_SUBTYPE,
      ARTIST_WEB_SITE_ARTIST_WEB_SITE_CALENDAR_PAGE_SUBTYPE,
      ARTIST_WEB_SITE_CALENDAR_PAGE_ARTIST_WEB_SITE_CALENDAR_SUBTYPE,
      ARTIST_WEB_SITE_IMAGE_GALLERIES_ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_SUBTYPE,
    );

    this.objectTrees.artistWebSite = {
      reset: false,
      parentNode: () => this.appCtx.publicTemplatesNode.value,
      treeNodeName: 'artistWebSite',
      treeNodeTypeId: ARTIST_WEB_SITE_TEMPLATE_TYPE.name,
      tree: {
        treeNode: merge(
          {},
          app.getExtention<WebSiteProvider>(WebSiteProvider).objectTrees
            .defaultWebSite.tree.treeNode,
          {
            menuEntries: [
              {
                entryKey: 'home',
                entryName: 'Home',
                menuEntryLabelKey: 'name',
                entryTypes: [WELCOME_PAGE_TYPE.name],
              },
              {
                entryKey: 'content1',
                entryName: 'First content type',
                menuEntryLabelKey: 'menuTitle',
                entryTypes: [ARTIST_WEB_SITE_POST1_TYPE.name],
              },
              {
                entryKey: 'content2',
                entryName: 'Second content type',
                menuEntryLabelKey: 'menuTitle',
                entryTypes: [ARTIST_WEB_SITE_POST2_TYPE.name],
              },
              {
                entryKey: 'content3',
                entryName: 'Third content type',
                menuEntryLabelKey: 'menuTitle',
                entryTypes: [ARTIST_WEB_SITE_POST3_TYPE.name],
              },
              {
                entryKey: 'events',
                entryName: 'Events',
                menuEntryLabelKey: 'menuTitle',
                entryTypes: [ARTIST_WEB_SITE_EVENT_TYPE.name],
              },
              {
                entryKey: 'calendar',
                entryName: 'Calendar',
                menuEntryLabelKey: 'name',
                entryTypes: [CALENDAR_PAGE_TYPE.name],
              },
              {
                entryKey: 'galleries',
                entryName: 'Galleries',
                menuEntryLabelKey: 'menuTitle',
                entryTypes: [
                  ARTIST_WEB_SITE_IMAGE_GALLERY_TYPE.name,
                  ARTIST_WEB_SITE_IMAGE_GALLERIES_TYPE.name,
                ],
              },
              {
                entryKey: 'admin',
                entryName: 'Administration',
                menuEntryLabelKey: 'adminTitle',
                adminEntry: true,
                entryTypes: [ARTIST_WEB_SITE_TYPE.name],
              },
            ],
            paragraphTemplateChoices: [
              {
                paragraphTypeKey: 'thumbAfter',
                paragraphTypeName: 'Display images in thumb',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/textAndThumbAfter',
                paragraphTypes: [
                  ARTIST_WEB_SITE_POST1_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST1_TYPE.name,
                  ARTIST_WEB_SITE_POST2_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST2_TYPE.name,
                  ARTIST_WEB_SITE_POST3_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST3_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_TYPE.name,
                  ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_TYPE.name,
                  ARTIST_WEB_SITE_PARAGRAPH_TYPE.name,
                ],
              },
              {
                paragraphTypeKey: 'imageFullPageAfter',
                paragraphTypeName: 'Display full page images',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/textAndImagesAfter',
                paragraphTypes: [
                  ARTIST_WEB_SITE_POST1_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST1_TYPE.name,
                  ARTIST_WEB_SITE_POST2_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST2_TYPE.name,
                  ARTIST_WEB_SITE_POST3_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST3_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_TYPE.name,
                  ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_TYPE.name,
                  ARTIST_WEB_SITE_PARAGRAPH_TYPE.name,
                ],
              },
              {
                paragraphTypeKey: 'carouselRight',
                paragraphTypeName: 'Display images with Carousel',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/textAndCarousselRight',
                paragraphTypes: [
                  ARTIST_WEB_SITE_POST1_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST1_TYPE.name,
                  ARTIST_WEB_SITE_POST2_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST2_TYPE.name,
                  ARTIST_WEB_SITE_POST3_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_POST3_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_ROOT_TYPE.name,
                  ARTIST_WEB_SITE_EVENT_TYPE.name,
                  ARTIST_WEB_SITE_IMAGE_GALLERY_CONCATENATION_TYPE.name,
                  ARTIST_WEB_SITE_PARAGRAPH_TYPE.name,
                ],
              },
              {
                paragraphTypeKey: 'welcomeMenuThumb4',
                paragraphTypeName: 'Card 1/4 screen',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/text25pctWithCaroussel',
                paragraphTypes: ['ArtistWebSiteWelcomeMenuEntry'],
              },
              {
                paragraphTypeKey: 'welcomeMenuThumb3',
                paragraphTypeName: 'Card 1/3 screen',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/text33pctWithCaroussel',
                paragraphTypes: ['ArtistWebSiteWelcomeMenuEntry'],
              },
              {
                paragraphTypeKey: 'welcomeMenuThumb2',
                paragraphTypeName: 'Card 1/2 screen',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplate/cardTextAndImages',
                paragraphTemplateConfigurationObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/text50pctWithCaroussel',
                paragraphTypes: ['ArtistWebSiteWelcomeMenuEntry'],
              },
              {
                paragraphTypeKey: 'calendar',
                paragraphTypeName: 'Calendar',
                paragraphTemplateObjectTreeId:
                  'tree/Repository/public/RepositoryCategory/templates/CalendarTemplate/calendar',
                paragraphTypes: ['ArtistWebSiteCalendar'],
              },
            ],
            paragraphTemplateConfigurationObjectTreeId:
              'tree/Repository/public/RepositoryCategory/templates/ParagraphTemplateConfiguration/textAndImagesAfter',
          },
        ),
        children: {},
      },
    };

    /*
    this.objectTrees.artistWebSiteExample = {
      reset: false,
      parentNode: () => this.appCtx.demonstrationExamplesNode.value,
      treeNodeName: 'ArtistWebSiteExample',
      treeNodeTypeId: ARTIST_WEB_SITE_TYPE.name,
      tree: {
        treeNode: {
          webSiteObjectTreeId:
            'tree/Repository/public/RepositoryCategory/templates/ArtistWebSiteTemplate/artistWebSite',
          menuTitle: 'Example',
          adminTitle: 'Admin',
          menuEntries: {
            home: 'Accueil',
            story: 'Récit',
            calendar: 'Calendrier',
            calendarDates: 'Visites',
            places: 'Point Of Interest',
            map: 'Carte',
            galleries: 'Galleries',
            admin: 'Admin',
          },
        },
        children: {
          [ARTIST_WEB_SITE_IMAGE_GALLERIES_TYPE.name]: {
            [IMAGE_GALLERIES_TYPE.name]: [
              {
                treeNode: {menuTitle: 'All galleries'},
                children: {
                  [ARTIST_WEB_SITE_IMAGE_GALLERY_TYPE.name]: {
                    ['Ipsum3']: [
                      {
                        treeNode: {menuTitle: 'Ispum3'},
                        children: {
                          [IMAGE_TYPE.name]: {
                            ['EliotPeper']: [
                              {
                                treeNode: {
                                  contentImage: {
                                    base64: image(__dirname, 'eliot'),
                                    name:
                                      'eliot-peper-9KVEC-R8gFM-unsplash.jpg',
                                    size: '1607898086455',
                                    type: 'image/jpeg',
                                  },
                                },
                                children: {},
                              },
                            ],
                            ['LauraChouette']: [
                              {
                                treeNode: {
                                  contentImage: {
                                    base64: image(__dirname, 'laura'),
                                    name:
                                      'laura-chouette-iF3nn-mXkU8-unsplash.jpg',
                                    size: '1607898094166',
                                    type: 'image/jpeg',
                                  },
                                },
                                children: {},
                              },
                            ],
                            ['KseniaMakagonov']: [
                              {
                                treeNode: {
                                  contentImage: {
                                    base64: image(__dirname, 'ksenia'),
                                    name:
                                      'ksenia-makagonova-oqL8TOLARs8-unsplash.jpg',
                                    size: '1607898103955',
                                    type: 'image/jpeg',
                                  },
                                },
                                children: {},
                              },
                            ],
                            ['BrianQuid']: [
                              {
                                treeNode: {
                                  contentImage: {
                                    base64: image(__dirname, 'brian'),
                                    name: 'brian-quid-6O9dPC51s7M-unsplash.jpg',
                                    size: '1607898091074',
                                    type: 'image/jpeg',
                                  },
                                },
                                children: {},
                              },
                            ],
                          },
                        },
                      },
                    ],
                  },
                },
              },
            ],
          },
          [ARTIST_WEB_SITE_POST_ROOT_TYPE.name]: {
            ['Stories']: [
              {
                treeNode: {
                  menuTitle: 'Stories',
                  pageTitle: 'Stories',
                  imageGalleryObjectTreeId:
                    'tree/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ImageGallery/Ipsum3',
                },
                children: {
                  [ARTIST_WEB_SITE_POST_TYPE.name]: {
                    ['Post1']: [
                      {
                        treeNode: {
                          menuTitle: 'Lorem ipsum 1',
                          pageTitle: 'Lorem ipsum dolor 1',
                          paragraphTitle: 'Content ipsum dolor 1',
                          contentText:
                            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                        },
                        children: {},
                      },
                    ],
                    ['Post2']: [
                      {
                        treeNode: {
                          menuTitle: 'Lorem ipsum 2',
                          pageTitle: 'Lorem ipsum dolor 2',
                          paragraphTitle: 'Lorem ipsum dolor 2',
                          contentText:
                            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                        },
                        children: {
                          [ARTIST_WEB_SITE_POST_TYPE.name]: {
                            ['Post2.1']: [
                              {
                                treeNode: {
                                  menuTitle: 'Lorem ipsum 2.1',
                                  paragraphTitle: 'Lorem ipsum dolor 2.1',
                                  contentText:
                                    'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                                },
                                children: {},
                              },
                            ],
                            ['Post2.2']: [
                              {
                                treeNode: {
                                  paragraphTitle: 'Content ipsum dolor 2.2',
                                  contentText:
                                    'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                                },
                                children: {},
                              },
                            ],
                            ['Post2.3']: [
                              {
                                treeNode: {
                                  menuTitle: 'Lorem ipsum 2.3',
                                  paragraphTitle: 'Lorem ipsum dolor 2.3',
                                  contentText:
                                    'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                                },
                                children: {},
                              },
                            ],
                          },
                        },
                      },
                    ],
                    ['Post3']: [
                      {
                        treeNode: {
                          paragraphTemplateChoice: 'carouselRight',
                          imageGalleryObjectTreeId:
                            'tree/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ImageGallery/Ipsum3',
                          menuTitle: 'Lorem ipsum 3',
                          pageTitle: 'Lorem ipsum dolor 3',
                          paragraphTitle: 'Lorem ipsum dolor 3',
                          selectedImages: ['BrianQuid', 'LauraChouette'],
                          contentText:
                            'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum semper ligula eu mattis sollicitudin. Donec a commodo sem. Nulla faucibus, dolor at ornare congue, quam nibh porta nisi, eu faucibus tellus nunc et tellus. Sed fermentum finibus orci, at sagittis nisl ultrices tincidunt. Nullam consectetur et eros vel ultrices. Mauris vel laoreet metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam iaculis lectus in velit iaculis accumsan. Proin pharetra felis sed dolor efficitur, a placerat leo faucibus. Aenean commodo tellus elit, faucibus auctor nulla elementum ac. Vestibulum sagittis, urna a facilisis tristique, neque nisi elementum dolor, non lobortis neque enim et risus. Aliquam accumsan tincidunt nulla. Donec sit amet nisi a nibh hendrerit dapibus ac vitae dui. Donec diam orci, egestas ut sagittis vel, lobortis id metus. Vivamus pulvinar vestibulum lacinia.↵↵Vivamus quis ex eu est pretium interdum. Integer elementum pellentesque pulvinar. Etiam posuere orci ut placerat mollis. Cras ut molestie risus, non luctus diam. Phasellus lacinia sit amet ligula cursus condimentum. Ut ac nulla est. Integer mi magna, sodales ultricies semper ac, bibendum eget risus. Morbi hendrerit ultricies pretium. Donec viverra orci laoreet, molestie dui quis, luctus eros. Suspendisse potenti. Aliquam dignissim vestibulum magna, ac fringilla velit auctor ac. Duis sit amet leo id est vehicula convallis ut id magna. Nullam semper euismod maximus. Proin lobortis facilisis felis ac vestibulum. Sed imperdiet tellus mattis, eleifend tortor ac, lobortis elit. Maecenas vehicula luctus nibh.',
                        },
                        children: {},
                      },
                    ],
                  },
                },
              },
            ],
          },
          [ARTIST_WEB_SITE_WELCOME_PAGE_TYPE.name]: {
            [WELCOME_PAGE_TYPE.name as string]: [
              {
                treeNode: {
                  pageTitle: "Ma page d'accueil",
                  contentText:
                    'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel tristique velit. Curabitur porttitor nisl nec leo hendrerit blandit. Integer pharetra convallis efficitur. Aliquam non consectetur dolor, vitae eleifend risus. Quisque elementum nisl a urna dignissim, ut euismod enim convallis. Nam facilisis, neque nec ultricies sollicitudin, metus lorem convallis ex, a bibendum sem ex vitae velit. Aenean mattis orci neque, quis laoreet leo suscipit quis. Etiam vitae turpis ac augue consectetur bibendum. Cras varius odio semper ultrices bibendum. Suspendisse dignissim sem at lobortis imperdiet. Donec nec imperdiet turpis. Aenean mattis dui nec turpis euismod dapibus.↵↵Proin tempus, orci sit amet fermentum fringilla, risus metus aliquet enim, sed malesuada ipsum turpis vitae mi. Phasellus molestie justo sed malesuada congue. Nam malesuada massa sit amet diam accumsan consequat. Donec non tempor tellus, vitae posuere enim. Vivamus posuere scelerisque varius. Nunc a mollis risus, quis porta mi. Curabitur venenatis porta ullamcorper. Donec libero turpis, mattis eget elit sit amet, lobortis bibendum ligula. Praesent imperdiet dui odio, sed ultricies turpis congue vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Aliquam magna quam, varius at libero at, feugiat varius lacus. Vestibulum rutrum auctor libero a bibendum. In sit amet odio nibh. Duis lobortis, quam et scelerisque pellentesque, mauris metus mattis justo, eu convallis nunc sem in ante. Aliquam sit amet consequat ex.',
                },
                children: {
                  [ARTIST_WEB_SITE_WELCOME_PARAGRAPH_TYPE.name]: {
                    ['WelcomeStories']: [
                      {
                        treeNode: {
                          linkedPageObjectTreeId:
                            'node/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ArtistWebSite/ArtistWebSiteExample/Page/Stories',
                          imageGalleryObjectTreeId:
                            'tree/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ImageGallery/Ipsum3',
                          selectedImages: ['EliotPeper'],
                          contentText: 'Retrouvez notre récit quotidien',
                          paragraphTitle: 'Notre  périple',
                          paragraphTemplateChoice: 'welcomeMenuThumb2',
                        },
                        children: {},
                      },
                    ],
                    ['WelcomeImages']: [
                      {
                        treeNode: {
                          linkedPageObjectTreeId:
                            '/node/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ArtistWebSite/ArtistWebSiteExample/Page/ImageGalleries',
                          imageGalleryObjectTreeId:
                            'tree/Tenant/Demonstration/ArtistWebSite/ArtistWebSiteExample/ImageGallery/Ipsum3',
                          selectedImages: ['BrianQuid'],
                          contentText: 'Parcourir les photos',
                          paragraphTitle: 'Nos photos',
                          paragraphTemplateChoice: 'welcomeMenuThumb2',
                        },
                        children: {},
                      },
                    ],
                  },
                },
              },
            ],
          },
        },
      },
    };
    */
  }
}
