import type {
    CapabilityClusterContent,
    CtaLink,
    HeroContent,
    IntegrationEntry,
    OutcomeSectionContent,
    PageSeo,
    ProgressTeaserContent,
    TrustSignalGroupContent,
} from '@/types/site';

export const homeSeo: PageSeo = {
    title: 'TenantAtlas | Governance of record for Microsoft tenant operations',
    description:
        'TenantAtlas helps teams understand Microsoft tenant change history, restore posture, trust boundaries, and the next evaluation step without a bloated public sitemap.',
    path: '/',
};

export const homeHero: HeroContent = {
    eyebrow: 'Microsoft tenant governance',
    title: 'TenantAtlas gives Microsoft tenant teams one operating record for change history, drift review, and restore planning.',
    description:
        'Security, endpoint, and platform teams use TenantAtlas to see what changed, preview restores, and move reviews forward without stitching governance across exports and memory.',
    primaryCta: {
        href: '/contact',
        label: 'Request a working session',
    },
    secondaryCta: {
        href: '/product',
        label: 'See the product model',
        variant: 'secondary',
    },
    productVisual: {
        src: '/images/hero-product-visual.svg',
        alt: 'TenantAtlas screen showing change history, restore preview, and a review queue for Microsoft tenant policies',
    },
    trustSubclaims: [
        'Tenant-scoped boundaries',
        'Reviewable change history',
        'Preview before restore',
    ],
};

export const homeOutcome: OutcomeSectionContent = {
    title: 'Calmer operations start with visible governance.',
    description:
        'TenantAtlas replaces fragmented spreadsheets and manual audit trails with one connected record of tenant change, restore safety, and review context.',
    audienceBias: 'MSP and enterprise operations teams',
    outcomes: [
        {
            title: 'Understand what changed and why it matters.',
            description:
                'Immutable version history gives every tenant configuration a traceable timeline, so drift and unexpected changes surface before they become incidents.',
        },
        {
            title: 'Restore with confidence, not guesswork.',
            description:
                'Preview-first restore flows validate scope and impact before execution, turning risky rollbacks into reviewable operations.',
        },
        {
            title: 'Reduce the operational risk of governance gaps.',
            description:
                'Connected findings, evidence, and review workflows keep audit context in one place instead of scattered across tools and memory.',
        },
    ],
};

export const homeCapabilities: CapabilityClusterContent[] = [
    {
        title: 'Backup & Version History',
        description: 'Immutable snapshots of tenant configuration state with full version lineage.',
        capabilities: ['Automated backup', 'Immutable snapshots', 'Version comparison', 'Change timeline'],
        href: '/product',
        meta: 'Core safety net',
    },
    {
        title: 'Restore & Recovery',
        description: 'Preview-first restore with selective scope and explicit confirmation.',
        capabilities: ['Dry-run preview', 'Selective restore', 'Rollback safety', 'Conflict detection'],
        href: '/product',
        meta: 'Safer change operations',
    },
    {
        title: 'Inventory & Drift Visibility',
        description: 'Connected view of what exists, what drifted, and what needs attention.',
        capabilities: ['Policy inventory', 'Drift detection', 'Assignment visibility', 'Cross-tenant comparison'],
        href: '/product',
        meta: 'Operational clarity',
    },
    {
        title: 'Governance & Evidence',
        description: 'Audit-ready evidence, findings, and review workflows for tenant operations.',
        capabilities: ['Audit trails', 'Evidence linkage', 'Exception tracking', 'Review workflows'],
        href: '/product',
        meta: 'Accountability and review',
    },
];

export const homeTrustSignals: TrustSignalGroupContent = {
    title: 'Trust is a first-read concern, not a footnote.',
    description:
        'Tenant isolation, access boundaries, and operating discipline are product rules, not marketing language. Every public claim routes back to one bounded trust surface.',
    supportRoute: '/trust',
    signals: [
        {
            title: 'Tenant isolation is a product boundary.',
            description:
                'Tenant-scoped data, access, and workflow boundaries are enforced as deliberate product rules.',
        },
        {
            title: 'Access stays bounded and purpose-specific.',
            description:
                'Microsoft tenant-facing access follows least-privilege scoping tied to the governance operations that require it.',
        },
        {
            title: 'Restore operations require preview and confirmation.',
            description:
                'High-risk changes go through validation, selective scope, and explicit confirmation instead of one-click execution.',
        },
    ],
};

export const homeProgressTeaser: ProgressTeaserContent = {
    title: 'Product movement you can verify.',
    description:
        'Real progress shows up as dated changelog entries, not vague promises. Check the changelog for the latest updates.',
    entries: [],
    cta: {
        href: '/changelog',
        label: 'Read the full changelog',
    },
};

export const homeCtaSection = {
    eyebrow: 'Next step',
    title: 'Move from first read into a working session.',
    description:
        'Once you understand the product model, the trust posture, and the progress record, the next step is a conversation about your governance reality.',
    primary: {
        href: '/contact',
        label: 'Request a working session',
    } as CtaLink,
    secondary: {
        href: '/product',
        label: 'See the product model',
        variant: 'secondary',
    } as CtaLink,
};

export const homeEcosystem: IntegrationEntry[] = [
    {
        category: 'Microsoft',
        name: 'Microsoft Graph',
        summary: 'Graph-backed inventory and restore without implying the public website depends on live tenant access.',
    },
    {
        category: 'Identity',
        name: 'Entra ID',
        summary: 'Identity context where change control, tenant access, and review posture intersect.',
    },
    {
        category: 'Endpoint',
        name: 'Intune',
        summary: 'Configuration state, backup, restore posture, and drift visibility stay central to the product story.',
    },
    {
        category: 'Governance',
        name: 'Review workflows',
        summary: 'Exceptions, evidence, and reviews stay connected to operational reality.',
    },
];
