#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Validation rules for the FHIR to PAD converter.
"""

from typing import Any, Dict, List, Tuple


from datetime import datetime
from typing import Any, Dict, List
from utils import collect_effective_dates

def validate_temporal_consistency(grouped_resources: List[Dict[str, Any]]) -> List[str]:
    """Checks for temporal consistency within a group of resources."""
    warnings = []
    now = datetime.now()
    for resource in grouped_resources:
        dates = collect_effective_dates(resource)
        for d in dates:
            if d.timestamp() > now.timestamp():
                warnings.append(f"Resource {resource.get('id')} has an effective date in the future: {d.isoformat()}")
    return warnings

def validate_codes(grouped_resources: List[Dict[str, Any]]) -> List[str]:
    """Checks for the validity of codes (e.g., ICD-10, GOÄ)."""
    warnings = []
    # Placeholder for code validation logic
    return warnings

def run_validation(grouped_resources: List[Dict[str, Any]]) -> List[str]:
    """Runs all validation checks on a group of resources."""
    all_warnings = []
    all_warnings.extend(validate_temporal_consistency(grouped_resources))
    all_warnings.extend(validate_codes(grouped_resources))
    return all_warnings
