import * as React from "react";

export type ProjectType = "website" | "web-app" | "ecommerce";

export interface FormState {
  projectType: ProjectType;
  // Company
  companyName: string;
  employeeCount: string;
  // Existing Presence
  existingWebsite: string;
  socialMedia: string[];
  socialMediaUrls: Record<string, string>;
  existingDomain: string;
  wishedDomain: string;
  // Project
  websiteTopic: string;
  selectedPages: string[];
  otherPages: string[];
  otherPagesCount: number;
  features: string[];
  otherFeatures: string[];
  otherFeaturesCount: number;
  functions: string[];
  otherFunctions: string[];
  otherFunctionsCount: number;
  apiSystems: string[];
  otherTech: string[];
  otherTechCount: number;
  assets: string[];
  otherAssets: string[];
  otherAssetsCount: number;
  newDatasets: number;
  cmsSetup: boolean;
  storageExpansion: number;
  name: string;
  email: string;
  role: string;
  message: string;
  sitemapFile: File | null;
  contactFiles: File[];
  // Design
  designVibe: string;
  colorScheme: string[];
  references: string[];
  designWishes: string;
  // Maintenance
  expectedAdjustments: string;
  languagesList: string[];
  // Timeline
  deadline: string;
  // Web App specific
  targetAudience: string;
  userRoles: string[];
  dataSensitivity: string;
  platformType: string;
  // Meta
  dontKnows: string[];
  visualStaging: string;
  complexInteractions: string;
}

export interface Totals {
  totalPrice: number;
  monthlyPrice: number;
  totalPagesCount: number;
  totalFeatures: number;
  totalFunctions: number;
  totalApis: number;
  languagesCount: number;
}

export interface Step {
  id: string;
  title: string;
  description: string;
  illustration: React.ReactNode;
  chapter?: string;
}

export interface Chapter {
  id: string;
  title: string;
  steps: string[];
}
