-- ============================================================================= -- CMS SiteTemplate/PageTemplate seed data — the two v1 starter kits (Site/Page platform -- Phase 14): Business (multi-page) and Landing Page (single page). Both reference only -- already-seeded block types (RICH_TEXT, HEADING, FAQ) and container types (BANNER, SINGLE) — -- see 20260905_CMS_Block_Foundation_SqlServer.sql, 20260906_CMS_Faq_Block_Seed_SqlServer.sql, -- 20260610_CMS_ContentBlockContainer.sql. -- -- CONTAINERTREEJSON is a ContentContainerFullDTO[]-shaped JSON blob -- (CMSDAL.DTO.ContentBlock.ContentContainerFullDTO) — SiteBLL.CreateFromTemplate deserializes it -- directly and only reads ContainerTypeCode/PositionNo/ContainerLabel per container and -- BlockCode/ZoneName/PositionNo/PropsJson per block; every other field in the shape (ids, -- TenantId) is a fresh-insert placeholder here and ignored at materialization time. -- -- Idempotent: guarded by IF NOT EXISTS per row. -- ============================================================================= IF NOT EXISTS (SELECT 1 FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'LANDING_PAGE' AND TENANTID = -1) BEGIN INSERT INTO DBO.MCMSSITETEMPLATE (SITETEMPLATECODE, SITETEMPLATENAME, SITETEMPLATEDESCRIPTION, STATUS, TENANTID, CREATEDBYID, MODIFIEDBYID) VALUES ('LANDING_PAGE', 'Landing Page', 'A single-page starter kit for a product or campaign launch: hero, value proposition, and FAQ.', 1, -1, -1, -1); END GO IF NOT EXISTS (SELECT 1 FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'BUSINESS' AND TENANTID = -1) BEGIN INSERT INTO DBO.MCMSSITETEMPLATE (SITETEMPLATECODE, SITETEMPLATENAME, SITETEMPLATEDESCRIPTION, STATUS, TENANTID, CREATEDBYID, MODIFIEDBYID) VALUES ('BUSINESS', 'Business', 'A multi-page starter kit for a small/medium business: Home, About, and Contact.', 1, -1, -1, -1); END GO -- ── Landing Page — one page (Home) ─────────────────────────────────────────── IF EXISTS (SELECT 1 FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'LANDING_PAGE' AND TENANTID = -1) AND NOT EXISTS ( SELECT 1 FROM DBO.MCMSPAGETEMPLATE pt JOIN DBO.MCMSSITETEMPLATE st ON st.SITETEMPLATEID = pt.SITETEMPLATEID WHERE st.SITETEMPLATECODE = 'LANDING_PAGE' AND pt.PAGETEMPLATECODE = 'HOME') BEGIN DECLARE @LandingSiteTemplateId INT = (SELECT SITETEMPLATEID FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'LANDING_PAGE' AND TENANTID = -1); INSERT INTO DBO.MCMSPAGETEMPLATE (SITETEMPLATEID, PAGETEMPLATECODE, PAGETEMPLATENAME, URLPATHPATTERN, ISHOMEPAGE, CONTAINERTREEJSON, SORTORDER, STATUS, TENANTID, CREATEDBYID, MODIFIEDBYID) VALUES ( @LandingSiteTemplateId, 'HOME', 'Home', '/', 1, N'[ {"ContainerTypeCode":"BANNER","ContainerLabel":"Hero","PositionNo":1,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"full","PositionNo":1,"PropsJson":"{\"text\":\"Grow Your Business Faster\",\"level\":\"h1\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"full","PositionNo":2,"PropsJson":"{\"html\":\"

Launch your next campaign with a page built to convert.

\"}"} ]}, {"ContainerTypeCode":"SINGLE","ContainerLabel":"Value Proposition","PositionNo":2,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"main","PositionNo":1,"PropsJson":"{\"text\":\"Why Choose Us\",\"level\":\"h2\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"main","PositionNo":2,"PropsJson":"{\"html\":\"

Fast setup, responsive design, and built-in SEO from day one.

\"}"} ]}, {"ContainerTypeCode":"SINGLE","ContainerLabel":"FAQ","PositionNo":3,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"main","PositionNo":1,"PropsJson":"{\"text\":\"Frequently Asked Questions\",\"level\":\"h2\"}"}, {"BlockCode":"FAQ","ZoneName":"main","PositionNo":2,"PropsJson":"{\"entries\":[{\"question\":\"How long does setup take?\",\"answer\":\"Most sites go live within a day.\"},{\"question\":\"Can I change the theme later?\",\"answer\":\"Yes, themes can be swapped without touching content.\"}]}"} ]} ]', 1, 1, -1, -1, -1); END GO -- ── Business — three pages (Home, About, Contact) ──────────────────────────── IF EXISTS (SELECT 1 FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'BUSINESS' AND TENANTID = -1) AND NOT EXISTS ( SELECT 1 FROM DBO.MCMSPAGETEMPLATE pt JOIN DBO.MCMSSITETEMPLATE st ON st.SITETEMPLATEID = pt.SITETEMPLATEID WHERE st.SITETEMPLATECODE = 'BUSINESS' AND pt.PAGETEMPLATECODE = 'HOME') BEGIN DECLARE @BusinessSiteTemplateId INT = (SELECT SITETEMPLATEID FROM DBO.MCMSSITETEMPLATE WHERE SITETEMPLATECODE = 'BUSINESS' AND TENANTID = -1); INSERT INTO DBO.MCMSPAGETEMPLATE (SITETEMPLATEID, PAGETEMPLATECODE, PAGETEMPLATENAME, URLPATHPATTERN, ISHOMEPAGE, CONTAINERTREEJSON, SORTORDER, STATUS, TENANTID, CREATEDBYID, MODIFIEDBYID) VALUES ( @BusinessSiteTemplateId, 'HOME', 'Home', '/', 1, N'[ {"ContainerTypeCode":"BANNER","ContainerLabel":"Hero","PositionNo":1,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"full","PositionNo":1,"PropsJson":"{\"text\":\"Welcome to Our Business\",\"level\":\"h1\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"full","PositionNo":2,"PropsJson":"{\"html\":\"

Serving our community with quality products and service.

\"}"} ]}, {"ContainerTypeCode":"SINGLE","ContainerLabel":"Services","PositionNo":2,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"main","PositionNo":1,"PropsJson":"{\"text\":\"Our Services\",\"level\":\"h2\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"main","PositionNo":2,"PropsJson":"{\"html\":\"

Consulting, support, and delivery tailored to your needs.

\"}"} ]} ]', 1, 1, -1, -1, -1), ( @BusinessSiteTemplateId, 'ABOUT', 'About', '/about', 0, N'[ {"ContainerTypeCode":"SINGLE","ContainerLabel":"About","PositionNo":1,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"main","PositionNo":1,"PropsJson":"{\"text\":\"About Us\",\"level\":\"h1\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"main","PositionNo":2,"PropsJson":"{\"html\":\"

Founded to help local businesses grow, our team brings years of hands-on experience.

\"}"} ]} ]', 2, 1, -1, -1, -1), ( @BusinessSiteTemplateId, 'CONTACT', 'Contact', '/contact', 0, N'[ {"ContainerTypeCode":"SINGLE","ContainerLabel":"Contact","PositionNo":1,"Blocks":[ {"BlockCode":"HEADING","ZoneName":"main","PositionNo":1,"PropsJson":"{\"text\":\"Contact Us\",\"level\":\"h1\"}"}, {"BlockCode":"RICH_TEXT","ZoneName":"main","PositionNo":2,"PropsJson":"{\"html\":\"

Reach out any time — we typically reply within one business day.

\"}"} ]} ]', 3, 1, -1, -1, -1); END GO