/**
 * Type definitions for composite submissions
 * Used when creating multiple related entities in a single submission
 */

import type { TempCompanyData } from './company';

/**
 * Composite submission structure for park creation with related entities
 */
export interface ParkCompositeSubmission {
  park: {
    name: string;
    slug: string;
    description?: string;
    park_type: string;
    status: string;
    opening_date?: string;
    closing_date?: string;
    location_id?: string;
    website_url?: string;
    phone?: string;
    email?: string;
    operator_id?: string | null;
    property_owner_id?: string | null;
    [key: string]: unknown;
  };
  new_operator?: TempCompanyData;
  new_property_owner?: TempCompanyData;
}

/**
 * Generic composite submission content type
 * Supports any entity type with optional related entities
 */
export interface CompositeSubmissionContent {
  [entityKey: string]: {
    [key: string]: unknown;
  } | TempCompanyData | undefined;
}
