<?php

    return [
        "type"           => "blocks",
        "model"          => App\Models\Block::class,
        "label"          => "Blocks",
        "label_singular" => "Block",
        "group"          => "content",
        "order"          => true,

        "search" => [
            "fields" => [
                "block_title",
                "small_title",
                "sub_title"
            ],
            "include" => [
                "type" => [
                    "blockImageText",
                    "blockCenteredImageText",
                    "blockListBox",
                ]
            ],
            "relations" => [
                "blockListBoxItems",
                "blockTabsContainer",
                "blockFaq",
            ],
            "parentRelationships" => [
                "pageTab",
                "entry",
            ]
        ],
        
        "fields"         => [
            [
                "name"          => "title",
                "label"         => "Title",
                "type"          => "textBox",
                "maxLength"     => 150,
                "multiLanguage" => true,
                "preValidation" => "strip_tags|xss_clean|trim",
                "validation"    => "required|max:150",
                "inList"        => true,
                "search"        => true,
                "sort"          => true
            ],
            [
                "name"          => "small_title",
                "label"         => "Small title",
                "type"          => "textBox",
                "maxLength"     => 60,
                "multiLanguage" => true,
                "preValidation" => "strip_tags|xss_clean|trim",
                "validation"    => "max:60",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                        "blockHeroHighlight",
                        "blockImageText",
                        "blockEventsList",
                        "blockCenteredImageText",
                        "blockCommunityList",
                    ]
                ],
            ],
            [
                "name"          => "block_title",
                "label"         => "frontend title",
                "type"          => "textBox",
                "maxLength"     => 100,
                "multiLanguage" => true,
                "preValidation" => "xss_clean|trim",
                "validation"    => "required_if:type,blockHero,blockHeroHighlight,blockHighlightExternal,blockSliderQuote,blockNewsletter,blockHighlightsCommunity,blockHighlightsEvent,blockImageText,blockCenteredImageText,blockHighlightsProduct,blockVersionsList,blockProductsList,blockCommunityList,blockEventsList,blockListBox,blockDisclaimer,blockPageTabs,blockPublicationsList,blockSchematicsList,blockFirmwaresList,blockApisList,blockThreeDModelsList,blockFaq,blockContactForm,blockTitleSubtitleText,blockMediaList,blockResellersList,blockHighlightsTutorial|max:150",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                        "blockHeroHighlight",
                        "blockHighlightExternal",
                        "blockSliderQuote",
                        "blockNewsletter",
                        "blockHighlightsCommunity",
                        "blockHighlightsEvent",
                        "blockImageText",
                        "blockCenteredImageText",
                        "blockHighlightsProduct",
                        "blockVersionsList",
                        "blockProductsList",
                        "blockCommunityList",
                        "blockEventsList",
                        "blockListBox",
                        "blockDisclaimer",
                        "blockPageTabs",
                        "blockPublicationsList",
                        "blockSchematicsList",
                        "blockFirmwaresList",
                        "blockApisList",
                        "blockThreeDModelsList",
                        "blockFaq",
                        "blockContactForm",
                        "blockTitleSubtitleText",
                        "blockMediaList",
                        "blockResellersList",
                        "blockHighlightsAddons",
                        "blockHighlightsTutorial",
                        "blockHighlightsCard",
                    ]
                ],
            ],
            [
                "name"          => "dark_mode",
                "label"         => "Dark mode",
                "type"          => "checkBox",
                "multiLanguage" => false,
                "placement"     => "sidebar",
                "validation"    => "required_if:type,blockHero",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                    ]
                ]
            ],
            [
                "name"          => "sub_title",
                "label"         => "sub title",
                "type"          => "textArea",
                "maxLength"     => 500,
                "multiLanguage" => true,
                "preValidation" => "strip_tags|xss_clean|trim",
                "validation"    => "required_if:type,blockHeroHighlight,blockNewsletter|htmlMax:500",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                        "blockHeroHighlight",
                        "blockNewsletter",
                        "blockImageText",
                        "blockEventsList",
                        "blockCenteredImageText",
                        "blockCommunityList",
                        "blockContactForm",
                        "blockTitleSubtitleText"
                    ]
                ],
            ],
            [
                "name"          => "text",
                "label"         => "Text",
                "type"          => "textArea",
                "maxLength"     => 1000,
                "multiLanguage" => true,
                "preValidation" => "strip_tags|xss_clean|trim",
                "validation"    => "required_if:type,blockDisclaimer|htmlMax:1000",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockDisclaimer",
                        "blockTitleSubtitleText"
                    ]
                ],
            ],
            [
                "name"          => "block_data",
                "label"         => "Link",
                "type"          => "link",
                "maxLabel"      => 30,
                "multiLanguage" => true,
                "objectTypes"   => [
                    "page", "product"
                ],
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightExternal",
                        "blockCenteredImageText",
                        "blockHeroHighlight",
                    ]
                ],
            ],
            [
                "name"          => "type",
                "label"         => "Block Type",
                "type"          => "selectBox",
                "list"          => [
                    "blockHero"                   => "Block Hero",
                    "blockHeroHighlight"          => "Block Hero Highlight",
                    "blockHighlightExternal"      => "Block Highlight External",
                    "blockSliderQuote"            => "Block Slider Quote",
                    "blockNewsletter"             => "Block Newsletter",
                    "blockCenteredImageText"      => "Block Centered Image Text",
                    "blockImageText"              => "Block Image Text",
                    "blockListBox"                => "Block List Box",
                    "blockDisclaimer"             => "Block Disclaimer",
                    "blockPageTabs"               => "Block Page Tabs",
                    "blockVersionsList"           => "Block Versions list",
                    "blockFaq"                    => "Block FAQ",
                    "blockContactForm"            => "Block Contact Form",
                    "blockTitleSubtitleText"      => "Block Title Subtitle",
                    "blockHighlightsTutorial"     => "Block Highlights Tutorial",
                    "blockHighlightsAddons"       => "Block Highlights Addons",
                    "blockHighlightsCommunity"    => "Block Highlights Projects",
                    "blockHighlightsEvent"        => "Block Highlights Event",
                    "blockHighlightsCard"         => "Block Highlights Product",
                    "blockTutorialsList"          => "Block Tutorials List",
                    "blockProductsList"           => "Block Products List",
                    "blockCommunityList"          => "Block Projects List",
                    "blockPublicationsList"       => "Block Publications List",
                    "blockMediaList"              => "Block Media List",
                    "blockSchematicsList"         => "Block Schematics List",
                    "blockFirmwaresList"          => "Block Firmwares List",
                    "blockApisList"               => "Block Apis List",
                    "blockThreeDModelsList"       => "Block 3DModels List",
                    "blockEventsList"             => "Block Events List",
                    "blockResellersList"          => "Block Resellers List",
                    "blockDocumentationsList"     => "Block Documentations List",
                ],
                "preValidation" => "trim",
                "validation"    => "required|in:blockHero,blockHeroHighlight,blockSliderQuote,blockNewsletter,blockHighlightExternal,blockImageText,blockCenteredImageText,blockHighlightsProduct,blockVersionsList,blockHighlightsCommunity,blockProductsList,blockCommunityList,blockListBox,blockDisclaimer,blockPublicationsList,blockVoucher,blockPageTabs,blockPublicationsList,blockMediaList,blockSchematicsList,blockFirmwaresList,blockApisList,blockThreeDModelsList,blockHighlightsEvent,blockFaq,blockContactForm,blockEventsList,blockTitleSubtitleText,blockResellersList,blockHighlightsAddons,blockHighlightsTutorial,blockTutorialsList,blockHighlightsCard,blockDocumentationsList",
                "placement"     => "sidebar",
                "inList"        => true,
                "search"        => true,
                "sort"          => true
            ],
            [
                "name"          => "blockImage",
                "label"         => "Image",
                "type"          => "mediaPicker",
                "multiple"      => false,
                "mediaType"     => "image",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockImageText",
                        "blockCenteredImageText",
                        "blockHero",
                        "blockHeroHighlight",
                    ]
                ],
            ],
            [
                "name"          => "has_stamp",
                "label"         => "Has Stamp",
                "type"          => "selectBox",
                "multiLanguage" => false,
                "list"          => [
                                "3" => "Yes",
                                "2" => "No",
                ],
                "defaultValue" => 3,
                // "validation"    => "required|in:2,3",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero"
                    ]
                ],
            ],
            [
                "name"          => "stampSvg",
                "label"         => "Stamp SVG",
                "type"          => "mediaPicker",
                "multiple"      => false,
                "mediaType"     => "document",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero"
                    ]
                ],
                "allowed"       => "svg",
            ],
            [
                "name"          => "stamp_link",
                "label"         => "Stamp Link",
                "type"          => "textBox",
                "multiLanguage" => false,
                "maxLength"     => 150,
                "placement"     => "sidebar",
                "preValidation" => "strip_tags|xss_clean|trim",
                "validation"    => "max:150|url",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero"
                    ]
                ],
            ],
            [
                "name"          => "alignment",
                "label"         => "Alignment",
                "type"          => "selectBox",
                "list"          => [
                    "left"      => "Left",
                    "right"     => "Right",
                ],
                "preValidation" => "trim",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockImageText",
                    ]
                ],
            ],
            [
                "name"          => "variation",
                "label"         => "Variation",
                "type"          => "selectBox",
                "list"          => [
                    "small"     => "Small",
                    "big"       => "Big",
                ],
                "preValidation" => "trim",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockImageText",
                    ]
                ],
            ],
            [
                "name"          => "text_size",
                "label"         => "Text size",
                "type"          => "selectBox",
                "list"          => [
                    "small"     => "Small",
                    "big"       => "Big",
                ],
                "preValidation" => "trim",
                "placement"     => "sidebar",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockImageText",
                    ]
                ],
            ],
            [
                "name"          => "side_info_title",
                "label"         => "Side title",
                "type"          => "textBox",
                "maxLength"     => 60,
                "multiLanguage" => true,
                "preValidation" => "xss_clean|trim",
                "validation"    => "max:60",
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                    ]
                ],
            ],
            [
                "name"          => "blockHeroSideWebLinks",
                "label"         => "Side Links",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["simpleLinks"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                    ]
                ],
                "maxSize"       => 4,
                "minSize"       => 0,
            ],
            [
                "name"          => "blockSliderQuote",
                "label"         => "Slider Quotes",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["quote"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockSliderQuote",
                    ]
                ],
            ],
            [
                "name"          => "blockHeroWebLinks",
                "label"         => "hero links",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["simpleLinks"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero",
                    ]
                ],
                "maxSize"       => 3,
                "minSize"       => 0,
            ],
            [
                "name"          => "blockProducts",
                "label"         => "Products",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["product"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsProduct",
                    ]
                ],
            ],
            [
                "name"          => "blockProjects",
                "label"         => "Projects",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["project"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsCommunity"
                    ]
                ],
            ],
            [
                "name"          => "textLoop",
                "label"         => "Text to loop",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["textLoop"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHero"
                    ]
                ],
            ],
            [
                "name"          => "blockCategories",
                "label"         => "Categories",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["categories"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockProductsList",
                        "blockCommunityList",
                        "blockCategories"
                    ]
                ],
            ],
            [
                "name"          => "blockTags",
                "label"         => "Tags",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["tags"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockProductsList",
                        "blockCommunityList",
                    ]
                ],
            ],
            [
                "name"          => "blockListBoxItems",
                "label"         => "Box Items",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["listBoxItems"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockListBox"
                    ]
                ],
            ],
            [
                "name"          => "blockTabsContainer",
                "label"         => "Tabs Container",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["tab"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockVersionsList"
                    ]
                ],
            ],
            [
                "name"          => "blockPageTabs",
                "label"         => "Page Tabs",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["pageTab"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockPageTabs"
                    ]
                ],
            ],
            [
                "name"          => "blockEvents",
                "label"         => "Events",
                "type"          => "multiplePicker",
                "longList"      => true,
                "allowInsert"   => true,
                "objectTypes"   => ["event"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsEvent"
                    ]
                ],
            ],
            [
                "name"          => "blockFaq",
                "label"         => "Items",
                "type"          => "multiplePicker",
                "longList"      => false,
                "allowInsert"   => true,
                "objectTypes"   => ["accordionItem"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockFaq"
                    ]
                ],
            ],
            [
                "name"          => "blockAddons",
                "label"         => "Addons",
                "type"          => "multiplePicker",
                "longList"      => false,
                "allowInsert"   => true,
                "objectTypes"   => ["addon"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsAddons"
                    ]
                ],
            ],
            [
                "name"          => "blockGeneralCards",
                "label"         => "Cards",
                "type"          => "multiplePicker",
                "longList"      => false,
                "allowInsert"   => true,
                "objectTypes"   => ["generalCard"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsCard"
                    ]
                ],
            ],
            [
                "name"          => "blockTutorialCards",
                "label"         => "Tutorial Cards",
                "type"          => "multiplePicker",
                "longList"      => false,
                "allowInsert"   => true,
                "objectTypes"   => ["card"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockHighlightsTutorial"
                    ]
                ],
            ],
            [
                "name"          => "blockTutorialsList",
                "label"         => "Tabs",
                "type"          => "multiplePicker",
                "longList"      => false,
                "allowInsert"   => true,
                "objectTypes"   => ["normalTab"],
                "order"         => true,
                "parent"        => [
                    "name"      => "type",
                    "values"    => [
                        "blockTutorialsList"
                    ]
                ],
                "minSize"       => 1,
                "maxSize"       => 5,
            ],
        ],
        "actions"   => [
            "edit", "order", "insert", "delete"
        ]
    ];
