"""MemoryField — definicion de un campo dentro de un tipo de memoria."""

from dataclasses import dataclass, field

from field_type import FieldType
from merge_op import MergeOp


@dataclass
class MemoryField:
    """Definicion de un campo dentro de un tipo de memoria.

    Attributes:
        name:        nombre del campo.
        field_type:  tipo de dato del campo.
        description: descripcion para el LLM sobre el proposito del campo.
        merge_op:    estrategia de merge cuando se actualiza un valor existente.
    """

    name: str
    field_type: FieldType
    description: str = ""
    merge_op: MergeOp = MergeOp.PATCH
