'''
CDES Python SDK - Cannabis Data Exchange Standard

A Python implementation of the Cannabis Data Exchange Standard (CDES)
for standardized cannabis data representation.

Version: 1.5.0

Changelog:
- v1.5.0: Added terpene ratio analysis (TerpeneRatioMetrics, CLR coordinates, archetypes)
- v1.3.0: Added color reference support (get_terpene_color, get_cannabinoid_color, ColorRef)
- v1.2.1: Added genetics parsing utilities (parse_strain_name, parse_genetics_line, create_strain_with_genetics)
- v1.2.0: Added comprehensive genetics domain (GeneticsProfile, LineageNode, etc.)
- v1.1.0: Initial public release with core models
'''

__version__ = "1.5.0"

# Core Enums
from .models import (
    StrainType,
    ConcentrationUnit,
    ProductCategory,
    StockLevel,
    TestStatus,
    TestMethod,
)

# Genetics Enums (CDES v1.2)
from .models import (
    BreedingTechnique,
    GeneticsStability,
    GeneticsConfidence,
    LineageRelationship,
)

# Validation
from .models import (
    ValidationError,
    ValidationResult,
)

# Concentration
from .models import Concentration

# Terpene Models
from .models import (
    TerpeneEntry,
    TerpeneProfile,
    FIXED_TERPENE_FIELDS,
)

# Cannabinoid Models
from .models import (
    CannabinoidEntry,
    CannabinoidProfile,
)

# Genetics Models (CDES v1.2)
from .models import (
    GeneticsSource,
    LineageNode,
    PhenotypeVariant,
    GeneticsProfile,
)

# Core Entity Models
from .models import (
    Strain,
    Batch,
    Product,
)

# COA / Lab Result Models (CDES v1.0)
from .models import (
    LabInfo,
    SampleInfo,
    SafetyTestResult,
    SafetyTestCategory,
    SafetyTests,
    PotencyResults,
    COA,
)

# Legacy/Library
from .models import (
    Effect,
    BoilingPoint,
    Terpene,
    TerpeneLibrary,
)

# Genetics Utilities (CDES v1.2.1)
from .models import (
    parse_strain_name,
    parse_genetics_line,
    create_strain_with_genetics,
    bulk_parse_genetics,
)

# Color Reference (CDES v1.3.0)
from .reference import (
    ColorRef,
    get_terpene_color,
    get_terpene_colors,
    get_cannabinoid_color,
    get_cannabinoid_colors,
    get_terpene_library,
    get_cannabinoid_library,
    clear_cache,
)

# Ratio Analysis (CDES v1.5.0)
from .ratio_analysis import (
    TerpeneArchetype,
    DominanceLevel,
    RankedTerpene,
    RatioSignature,
    ArchetypeClassification,
    TerpeneRatioMetrics,
    compute_ratio_metrics,
    compute_clr_coordinates,
    classify_archetype,
    get_archetype_description,
    TERPENE_CODES,
    TERPENE_NAMES,
    FIXED_TERPENE_ORDER,
)

__all__ = [
    # Version
    "__version__",

    # Core Enums
    "StrainType",
    "ConcentrationUnit",
    "ProductCategory",
    "StockLevel",

    # Genetics Enums
    "BreedingTechnique",
    "GeneticsStability",
    "GeneticsConfidence",
    "LineageRelationship",

    # Validation
    "ValidationError",
    "ValidationResult",

    # Concentration
    "Concentration",

    # Terpene Models
    "TerpeneEntry",
    "TerpeneProfile",
    "FIXED_TERPENE_FIELDS",

    # Cannabinoid Models
    "CannabinoidEntry",
    "CannabinoidProfile",

    # Genetics Models
    "GeneticsSource",
    "LineageNode",
    "PhenotypeVariant",
    "GeneticsProfile",

    # Core Entities
    "Strain",
    "Batch",
    "Product",

    # COA / Lab Results
    "LabInfo",
    "SampleInfo",
    "SafetyTestResult",
    "SafetyTestCategory",
    "SafetyTests",
    "PotencyResults",
    "COA",

    # Legacy/Library
    "Effect",
    "BoilingPoint",
    "Terpene",
    "TerpeneLibrary",

    # Genetics Utilities
    "parse_strain_name",
    "parse_genetics_line",
    "create_strain_with_genetics",
    "bulk_parse_genetics",
    
    # Color Reference (v1.3.0)
    "ColorRef",
    "get_terpene_color",
    "get_terpene_colors",
    "get_cannabinoid_color",
    "get_cannabinoid_colors",
    "get_terpene_library",
    "get_cannabinoid_library",
    "clear_cache",
    
    # Ratio Analysis (v1.5.0)
    "TerpeneArchetype",
    "DominanceLevel",
    "RankedTerpene",
    "RatioSignature",
    "ArchetypeClassification",
    "TerpeneRatioMetrics",
    "compute_ratio_metrics",
    "compute_clr_coordinates",
    "classify_archetype",
    "get_archetype_description",
    "TERPENE_CODES",
    "TERPENE_NAMES",
    "FIXED_TERPENE_ORDER",
]
