export const SCHEMA_TYPES = [ { value: "", title: "— Select schema type —" }, { value: "Article", title: "Article / Blog Post" }, { value: "Product", title: "Product" }, { value: "FAQPage", title: "FAQ Page" }, { value: "LocalBusiness", title: "Local Business" }, { value: "Event", title: "Event" }, { value: "Organization", title: "Organization" }, { value: "WebPage", title: "Web Page" }, { value: "VideoObject", title: "Video" }, { value: "Recipe", title: "Recipe" }, { value: "Person", title: "Person / Author" }, { value: "Course", title: "Course" }, { value: "JobPosting", title: "Job Posting" }, { value: "BreadcrumbList", title: "Breadcrumb" }, { value: "BlogPosting", title: "Blog Post" }, { value: "NewsArticle", title: "News Article" }, { value: "HowTo", title: "How-To Guide" }, { value: "Review", title: "Review" }, { value: "SoftwareApplication", title: "Software / App" }, { value: "Book", title: "Book" }, { value: "Movie", title: "Movie / Film" }, { value: "Service", title: "Service" }, { value: "ProfessionalService", title: "Professional Service" }, { value: "MedicalCondition", title: "Medical Condition" }, { value: "Dataset", title: "Dataset" }, { value: "Podcast", title: "Podcast" }, { value: "PodcastEpisode", title: "Podcast Episode" }, { value: "TouristAttraction", title: "Tourist Attraction" }, { value: "Accommodation", title: "Accommodation / Hotel" }, { value: "SportsTeam", title: "Sports Team" }, { value: "CollectionPage", title: "Collection Page" }, { value: "AboutPage", title: "About Page" }, ]; export const FIELDS_BY_TYPE: Record< string, { name: string; label: string; placeholder?: string; type?: "date" | "datetime" }[] > = { Article: [ { name: "name", label: "Article Title", placeholder: "How to Build a Website" }, { name: "image", label: "Image URL", placeholder: "https://example.com/image.jpg" }, { name: "author", label: "Author Name", placeholder: "Jane Smith" }, { name: "datePublished", label: "Date Published", type: "date" }, { name: "dateModified", label: "Date Modified", type: "date" }, { name: "description", label: "Article Description", placeholder: "2-3 sentence summary" }, ], Product: [ { name: "name", label: "Product Name" }, { name: "image", label: "Image URL (REQUIRED)" }, { name: "description", label: "Product Description" }, { name: "price", label: "Price", placeholder: "29.99" }, { name: "priceCurrency", label: "Currency (REQUIRED)", placeholder: "USD" }, { name: "availability", label: "Availability", placeholder: "InStock" }, { name: "ratingValue", label: "Rating (0–5)", placeholder: "4.8" }, { name: "ratingCount", label: "Review Count", placeholder: "124" }, ], LocalBusiness: [ { name: "name", label: "Business Name" }, { name: "image", label: "Logo/Image URL" }, { name: "description", label: "Description" }, { name: "location", label: "Full Address", placeholder: "123 Main St, City, State 12345" }, { name: "telephone", label: "Phone Number", placeholder: "+1 (555) 123-4567" }, { name: "url", label: "Website URL" }, ], Event: [ { name: "name", label: "Event Name (REQUIRED)" }, { name: "image", label: "Event Image URL" }, { name: "description", label: "Event Description" }, { name: "startDate", label: "Start Date (REQUIRED)", type: "datetime" }, { name: "endDate", label: "End Date", type: "datetime" }, { name: "location", label: "Location Name/Address", placeholder: "Venue name and full address", }, { name: "url", label: "Event URL" }, ], Organization: [ { name: "name", label: "Organization Name" }, { name: "image", label: "Logo URL" }, { name: "description", label: "Description" }, { name: "url", label: "Website URL" }, { name: "sameAs", label: "Social Profiles (comma-separated)", placeholder: "https://twitter.com/..., https://facebook.com/...", }, ], WebPage: [ { name: "name", label: "Page Name" }, { name: "description", label: "Page Description" }, { name: "url", label: "Page URL" }, ], VideoObject: [ { name: "name", label: "Video Title (REQUIRED)" }, { name: "description", label: "Video Description (REQUIRED)" }, { name: "thumbnailUrl", label: "Thumbnail URL (REQUIRED)" }, { name: "url", label: "Video URL" }, { name: "uploadDate", label: "Upload Date", type: "date" }, { name: "duration", label: "Duration", placeholder: "PT5M30S" }, ], Recipe: [ { name: "name", label: "Recipe Name (REQUIRED)" }, { name: "image", label: "Recipe Image URL (REQUIRED)" }, { name: "description", label: "Recipe Description" }, { name: "author", label: "Author/Chef Name" }, { name: "prepTime", label: "Prep Time", placeholder: "PT15M" }, { name: "cookTime", label: "Cook Time", placeholder: "PT30M" }, { name: "totalTime", label: "Total Time", placeholder: "PT45M" }, { name: "recipeYield", label: "Serves", placeholder: "4 people" }, { name: "datePublished", label: "Date Published", type: "date" }, { name: "ratingValue", label: "Rating (0–5)", placeholder: "4.5" }, { name: "ratingCount", label: "Review Count", placeholder: "50" }, ], Person: [ { name: "name", label: "Full Name" }, { name: "image", label: "Photo URL" }, { name: "description", label: "Bio / Description" }, { name: "url", label: "Profile URL" }, ], Course: [ { name: "name", label: "Course Name (REQUIRED)" }, { name: "image", label: "Course Image URL" }, { name: "description", label: "Course Description" }, { name: "provider", label: "Course Provider/Institution", placeholder: "Coursera, Udemy, etc.", }, { name: "author", label: "Instructor Name" }, { name: "url", label: "Course URL" }, ], JobPosting: [ { name: "name", label: "Job Title (REQUIRED)" }, { name: "description", label: "Job Description (REQUIRED)" }, { name: "hiringOrganization", label: "Hiring Company", placeholder: "Company name" }, { name: "location", label: "Job Location (REQUIRED)", placeholder: "City, State" }, { name: "employmentType", label: "Employment Type", placeholder: "Full-time, Part-time, etc." }, { name: "baseSalary", label: "Salary", placeholder: "50000-80000" }, { name: "datePosted", label: "Date Posted", type: "date" }, ], BreadcrumbList: [ { name: "name", label: "Page Name" }, { name: "url", label: "Page URL" }, ], FAQPage: [], BlogPosting: [ { name: "name", label: "Article Title (REQUIRED)", placeholder: "How to Build a Website" }, { name: "image", label: "Featured Image URL (REQUIRED)" }, { name: "author", label: "Author Name (REQUIRED)", placeholder: "Jane Smith" }, { name: "datePublished", label: "Date Published (REQUIRED)", type: "date" }, { name: "dateModified", label: "Date Modified", type: "date" }, { name: "description", label: "Meta Description (REQUIRED)", placeholder: "2-3 sentence summary", }, ], NewsArticle: [ { name: "name", label: "Headline (REQUIRED)", placeholder: "Breaking: Example Headline" }, { name: "image", label: "Featured Image URL (REQUIRED)" }, { name: "author", label: "Author Name (REQUIRED)", placeholder: "Jane Smith" }, { name: "datePublished", label: "Date Published (REQUIRED)", type: "date" }, { name: "dateModified", label: "Date Modified", type: "date" }, { name: "description", label: "Article Description (REQUIRED)" }, ], HowTo: [ { name: "name", label: "How-To Title (REQUIRED)" }, { name: "image", label: "Image URL" }, { name: "description", label: "Description" }, { name: "author", label: "Author Name" }, { name: "datePublished", label: "Date Published", type: "date" }, { name: "totalTime", label: "Total Time", placeholder: "PT1H" }, { name: "url", label: "Page URL" }, ], Review: [ { name: "name", label: "Item/Product Name (REQUIRED)" }, { name: "image", label: "Product Image URL" }, { name: "reviewBody", label: "Review Text (REQUIRED)" }, { name: "author", label: "Reviewer Name (REQUIRED)" }, { name: "ratingValue", label: "Rating (1–5) (REQUIRED)", placeholder: "4" }, { name: "datePublished", label: "Review Date", type: "date" }, ], SoftwareApplication: [ { name: "name", label: "App Name (REQUIRED)" }, { name: "image", label: "App Icon/Screenshot URL" }, { name: "description", label: "App Description" }, { name: "url", label: "App URL" }, { name: "operatingSystem", label: "Operating System", placeholder: "Windows, macOS, iOS, Android", }, { name: "applicationCategory", label: "Category", placeholder: "GameApplication, Productivity, etc.", }, { name: "ratingValue", label: "Rating (0–5)", placeholder: "4.8" }, { name: "ratingCount", label: "Review Count", placeholder: "1000" }, ], Book: [ { name: "name", label: "Book Title (REQUIRED)" }, { name: "image", label: "Book Cover Image (REQUIRED)" }, { name: "author", label: "Author Name (REQUIRED)" }, { name: "datePublished", label: "Publication Date", type: "date" }, { name: "description", label: "Description" }, { name: "isbn", label: "ISBN" }, { name: "publisher", label: "Publisher Name" }, { name: "url", label: "Book URL" }, ], Movie: [ { name: "name", label: "Movie Title (REQUIRED)" }, { name: "image", label: "Poster Image (REQUIRED)" }, { name: "description", label: "Description" }, { name: "datePublished", label: "Release Date", type: "date" }, { name: "director", label: "Director Name" }, { name: "actor", label: "Actor Names (comma-separated)" }, { name: "genre", label: "Genre", placeholder: "Action, Comedy, Drama, etc." }, { name: "url", label: "Movie URL" }, ], Service: [ { name: "name", label: "Service Name" }, { name: "image", label: "Service Image" }, { name: "description", label: "Service Description" }, { name: "url", label: "Service URL" }, { name: "areaServed", label: "Area Served", placeholder: "United States, New York, etc." }, ], ProfessionalService: [ { name: "name", label: "Business Name" }, { name: "image", label: "Business Logo/Image" }, { name: "description", label: "Description" }, { name: "telephone", label: "Phone Number" }, { name: "url", label: "Website URL" }, { name: "location", label: "Full Address", placeholder: "123 Main St, City, State 12345" }, ], MedicalCondition: [ { name: "name", label: "Condition Name" }, { name: "description", label: "Description" }, { name: "url", label: "Page URL" }, ], Dataset: [ { name: "name", label: "Dataset Name" }, { name: "description", label: "Description" }, { name: "url", label: "Dataset URL" }, { name: "license", label: "License URL" }, ], Podcast: [ { name: "name", label: "Podcast Name (REQUIRED)" }, { name: "image", label: "Cover Art URL" }, { name: "description", label: "Description" }, { name: "url", label: "Podcast URL" }, { name: "author", label: "Host / Creator" }, ], PodcastEpisode: [ { name: "name", label: "Episode Title (REQUIRED)" }, { name: "description", label: "Episode Description (REQUIRED)" }, { name: "datePublished", label: "Publish Date", type: "date" }, { name: "url", label: "Episode URL" }, { name: "episodeNumber", label: "Episode Number" }, { name: "duration", label: "Duration", placeholder: "PT1H30M" }, ], TouristAttraction: [ { name: "name", label: "Attraction Name (REQUIRED)" }, { name: "image", label: "Attraction Image" }, { name: "description", label: "Description" }, { name: "location", label: "Full Address", placeholder: "123 Main St, City, State 12345" }, { name: "url", label: "Website URL" }, ], Accommodation: [ { name: "name", label: "Property Name (REQUIRED)" }, { name: "image", label: "Property Image" }, { name: "description", label: "Description" }, { name: "location", label: "Full Address", placeholder: "123 Main St, City, State 12345" }, { name: "url", label: "Website URL" }, { name: "numberOfRooms", label: "Number of Rooms" }, { name: "starRating", label: "Star Rating (1-5)", placeholder: "4" }, ], SportsTeam: [ { name: "name", label: "Team Name" }, { name: "image", label: "Team Logo/Image" }, { name: "description", label: "Description" }, { name: "url", label: "Team URL" }, { name: "location", label: "Home City / Venue" }, ], CollectionPage: [ { name: "name", label: "Collection Name" }, { name: "description", label: "Description" }, { name: "url", label: "Page URL" }, ], AboutPage: [ { name: "name", label: "Page Name" }, { name: "description", label: "Description" }, { name: "url", label: "Page URL" }, ], };