export const typeDefs = `#graphql type ProductPromotion { category: String! text: String! } type Product { id: ID! name: String! description: String price: Float! originalPrice: Float currency: String! imageUrl: String category: String inStock: Boolean! promotion: ProductPromotion } type PageSeo { title: String! description: String! metaRobotsIndex: String metaRobotsFollow: String } type contentLayout { mobile: String! tablet: String desktop: String spaceBottom: Float } type HTMLContent { type: String! name: String! html: String! layout: contentLayout! } type MarkdownContent { type: String! name: String! content: String! layout: contentLayout! alignment: String! } type IframeContent { type: String! name: String! content: String! iframe: String! overlayImageUrl: String layout: contentLayout! } type ImageGalleryContent { type: String! name: String! images: [ImageGalleryImage!]! description: String layout: contentLayout! } type ImageGalleryImage { url: String! title: String description: String } type ImageContent { type: String! name: String! imageUrl: String! caption: String! maxWidth: Float aspectRatio: Float layout: contentLayout! } type QuoteContent { type: String! quote: String! author: String! variant: String! layout: contentLayout! } type YoutubeVideoContent { type: String! id: String! youtubeId: String! params: String title: String description: String layout: contentLayout! } type HeadlineContent { type: String! internal: String! text: String! tag: String! align: String layout: contentLayout! } union ContentItem = HTMLContent | MarkdownContent | IframeContent | ImageGalleryContent | ImageContent | QuoteContent | YoutubeVideoContent | HeadlineContent type ContentRow { justifyContent: String! alignItems: String! content: [ContentItem!]! } type Page { slug: String! name: String! linkName: String! headline: String! subheadline: String! seoTitle: String! seoMetaRobots: String! seoDescription: String! topFullwidthBanner: FullwidthBanner row1: ContentRow row2: ContentRow row3: ContentRow } type FullwidthBanner { name: String! variant: String! headline: String! subheadline: String! text: String! imageUrl: String } type NavigationLink { slug: String name: String! linkName: String! url: String icon: String newTab: Boolean } type Navigation { name: String! internal: String! links: [NavigationLink!]! } enum UserRole { ADMIN CUSTOMER GUEST } type User { id: ID! email: String! name: String! role: UserRole! createdAt: String! } type AuthResponse { user: User! token: String! } type Translation { key: String! value: String! namespace: String } type Translations { locale: String! translations: [Translation!]! } type Query { products(limit: Int): [Product!]! product(id: ID!): Product pageSeo(locale: String): PageSeo! page(slug: String!, locale: String): Page pages(locale: String): [Page!]! homepage(locale: String): Page navigation(locale: String): Navigation! me: User translations(locale: String!, namespace: String): Translations! } type Mutation { register(email: String!, password: String!, name: String!): AuthResponse! login(email: String!, password: String!): AuthResponse! } type __Type { kind: __TypeKind! } enum __TypeKind { SCALAR OBJECT INTERFACE UNION ENUM INPUT_OBJECT LIST NON_NULL } `;