# Trimble FDS Data Generator - Configuration Template
# This file will be used in Phase 2 for customizable data generation
# Copy to config.yaml and modify as needed

generation:
  # Number of records to generate
  partners:
    count: 10
    types:
      - CARRIER
      - SHIPPER
      - CONSIGNEE
      - BROKER
      - THREE_PL
      - FREIGHT_PAYER
      - FREIGHT_PURCHASER
      - SUPPLIER
    # Valid FDS field values:
    # Status: ACTIVE (only confirmed valid value)
    # Contact Type: LOGISTICS (from template)
    # Location Status: Active
    # Geographic focus (empty = all locations)
    states: []  # Example: ["TX", "CA", "IL"]
    major_partner_percentage: 40  # % of partners that handle most orders
    
  drivers:
    count: 10
    min_age: 25
    max_age: 65
    # Hire date range (years from today)
    hire_date_range: [-5, 0]  # Last 5 years to today
    # Driver type distribution (%)
    types:
      COMPANY_DRIVER: 50
      OWNER_OPERATOR: 30
      TRAINER: 10
      LEASE_DRIVER: 10
    # Special certifications (%)
    certifications:
      hazmat: 30
      tanker: 20
      doubles_triples: 15
      training: 10
      none: 25
    team_driver_percentage: 20
    
  orders:
    count: 10
    # Date range for orders (days from today)
    date_range_days: [0, 14]  # Today through next 2 weeks
    # Delivery timing (days after pickup)
    delivery_delay_days: [1, 3]
    # Freight characteristics (%)
    hazmat_percentage: 15
    # Order distribution
    major_partner_weight: 60  # % of orders to major partners
    # Weight range (pounds)
    weight_range: [10000, 45000]
    # Multi-stop orders
    allow_multi_stop: false  # Future: orders with 3+ stops

validation:
  # Field requirements (Phase 2)
  required_fields:
    partner:
      - Partner Name
      - Partner ID
      - Partner Type
      - Status
      - Location Type
      - Location Name
      - City
      - State
      - Country
    driver:
      - User Name
      - First Name
      - Last Name
      - Date of Birth
      - Is Active
      - License Number
      - License State/Province
    order:
      - Stop Sequence_1
      - Stop State Abbr_1
      - Stop Sequence_2
      - Stop State Abbr_2
      - Freight Description
  
  # Business rules
  rules:
    driver_min_age: 21
    license_valid_years: [3, 5]
    certification_valid_years: [1, 2]
    order_delivery_after_pickup: true
    order_pickup_delivery_different: true
    license_matches_home_state: true

locations:
  # Add custom locations or restrict to specific hubs
  use_all_hubs: true
  # Custom locations (future enhancement)
  custom:
    enabled: false
    locations: []
    # Example:
    # - city: "Seattle"
    #   state: "WA"
    #   postal_codes: ["98101", "98102"]
    #   area_code: "206"

output:
  # Output folder for generated files
  folder: "output"
  # Output file naming
  prefix: "generated"  # generated_partners.csv
  # Output formats (Phase 2)
  formats:
    - csv
    # Future: excel, json
  # CSV settings
  csv:
    encoding: "utf-8"
    delimiter: ","
    include_bom: false

# Future: Power Units configuration
power_units:
  enabled: false
  count: 0
  # Details TBD when template is provided

# Future: API/Upload settings (Branch B)
upload:
  enabled: false
  fds_url: ""
  # Authentication will be handled securely
  validate_before_upload: true
  batch_size: 10

