export type ProjectType = 'website' | 'web-app';

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: any;
    contactFiles: any[];
    // 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;
    gridDontKnows?: Record<string, string>;
    briefingSummary?: string;
    companyAddress?: string;
    companyPhone?: string;
    personName?: string;
    taxId?: string;
    designVision?: string;
    positionDescriptions?: Record<string, string>;
    sitemap?: {
        category: string;
        pages: { title: string; desc: string }[];
    }[];
}

export interface Position {
    pos: number;
    title: string;
    desc: string;
    qty: number;
    price: number;
    isRecurring?: boolean;
}
export interface Totals {
    totalPrice: number;
    monthlyPrice: number;
    totalPagesCount: number;
    totalFeatures: number;
    totalFunctions: number;
    totalApis: number;
    languagesCount: number;
}
