| @@ -7,8 +7,10 @@ | ||
| 7 | 7 | patternTypes: z.array(z.string()), |
| 8 | 8 | contentGenerated: z.boolean().optional(), |
| 9 | 9 | navSlug: z.string().optional(), |
| 10 | 10 | navLabel: z.string().optional(), |
| 11 | + blogImages: z.array(z.string()).optional(), | |
| 12 | + images: z.array(z.string()).optional(), | |
| 11 | 13 | }); |
| 12 | 14 | export const homeTemplateShape = z.looseObject({ |
| 13 | 15 | id: z.string(), |
| 14 | 16 | slug: z.string(), |
| @@ -20,10 +22,14 @@ | ||
| 20 | 22 | home: homeTemplateShape, |
| 21 | 23 | }); |
| 22 | 24 | |
| 23 | 25 | // get-images |
| 26 | +const libraryImageShape = z.looseObject({ url: z.string() }); | |
| 24 | 27 | export const getImagesShape = z.looseObject({ |
| 25 | - siteImages: z.array(z.string()), | |
| 28 | + siteImages: z.object({ | |
| 29 | + hero: z.array(libraryImageShape).default([]), | |
| 30 | + general: z.array(libraryImageShape).default([]), | |
| 31 | + }), | |
| 26 | 32 | }); |
| 27 | 33 | |
| 28 | 34 | // get-logo |
| 29 | 35 | export const getLogoShape = z.looseObject({ |
| @@ -51,8 +57,14 @@ | ||
| 51 | 57 | sitePlugins: z.array(pluginShape), |
| 52 | 58 | }); |
| 53 | 59 | |
| 54 | 60 | // get-profile |
| 61 | +export const socialProfilesShape = z.looseObject({ | |
| 62 | + facebook: z.string().nullish(), | |
| 63 | + instagram: z.string().nullish(), | |
| 64 | + x: z.string().nullish(), | |
| 65 | + tiktok: z.string().nullish(), | |
| 66 | +}); | |
| 55 | 67 | export const getProfileShape = z.looseObject({ |
| 56 | 68 | type: z.string(), |
| 57 | 69 | title: z.string(), |
| 58 | 70 | description: z.string(), |
| @@ -73,8 +85,10 @@ | ||
| 73 | 85 | blog: z.boolean(), |
| 74 | 86 | landingPage: z.boolean(), |
| 75 | 87 | landingPageCTALink: z.union([z.literal(false), z.string()]), |
| 76 | 88 | phoneNumber: z.union([z.boolean(), z.string()]).optional(), |
| 89 | + email: z.string().nullish(), | |
| 90 | + socialProfiles: socialProfilesShape.nullish(), | |
| 77 | 91 | }); |
| 78 | 92 | |
| 79 | 93 | // get-launch-decisions |
| 80 | 94 | export const getLaunchDecisionsShape = z.looseObject({ |
| @@ -110,13 +124,20 @@ | ||
| 110 | 124 | name: z.string(), |
| 111 | 125 | description: z.string().optional(), |
| 112 | 126 | }), |
| 113 | 127 | ), |
| 114 | - patternId: z.string(), | |
| 115 | - headerCode: z.string(), | |
| 116 | 128 | siteStyle: styleShape.omit({ variation: true }), |
| 117 | 129 | selectedPlugins: z.array(pluginShape), |
| 118 | - html: z.string(), | |
| 119 | - patternCode: z.string(), | |
| 120 | 130 | logoUrl: z.url().nullish(), |
| 131 | + templateParts: z.looseObject({ | |
| 132 | + header: z.string().nullish(), | |
| 133 | + footer: z.string().nullish(), | |
| 134 | + }), | |
| 135 | + builtPages: z.array( | |
| 136 | + z.object({ | |
| 137 | + slug: z.string(), | |
| 138 | + fullPage: z.boolean(), | |
| 139 | + patterns: z.array(patternShape), | |
| 140 | + }), | |
| 141 | + ), | |
| 121 | 142 | }); |
| 122 | 143 | export const getDesignBuildShape = designBuildShape; |