
    i                         U d Z ddlmZmZ 	 ddlmZ ddlmZmZm	Z	 dZ
ddd	d
ddddddd	dddddddd
dddZeeeeef   f   ed<   ddedefdZdefdZy# e$ r dZ
Y Fw xY w)ux   
AIVA RLM Nexus — Qdrant Collection Setup
Story 1.04 — Track A
Creates and validates all Qdrant vector collections.
    )DictAny)QdrantClient)DistanceVectorParamsPayloadSchemaTypeTFi   Cosineuuiddatetimekeyword)conversation_id
started_atemotional_signalparticipants)vector_sizedistancepayload_fieldsinteger)directive_idprioritystatus)	scar_typeoccurred_at)aiva_conversationskinan_directives
aiva_scarsCOLLECTIONSrecreatereturnc                 ,   t         st        d      i }t        j                         D ]  \  }}	 | j	                         j
                  D cg c]  }|j                   }}||v rN|rF| j                  |       | j                  |t        |d   t        j                               d||<   n:d||<   n4| j                  |t        |d   t        j                               d||<    |S c c}w # t        $ r}dt        |       ||<   Y d	}~d	}~ww xY w)
a  
    Create all collections. Returns {collection_name: "created"|"exists"|"error"}.

    Args:
        client: QdrantClient instance
        recreate: If True, drop and recreate existing collections

    Returns:
        Dict mapping collection name to status string
    qdrant_client not installedr   )sizer   )collection_namevectors_config	recreatedexistscreatedzerror: N)QDRANT_AVAILABLEImportErrorr   itemsget_collectionscollectionsnamedelete_collectioncreate_collectionr   r   COSINE	Exceptionstr)clientr   resultsr-   configcexistinges           2/mnt/e/genesis-system/core/schema/qdrant_schema.pysetup_collectionsr:   0   s%    788G#))+ /f	/(.(>(>(@(L(LM1MHMx,,T2,,(,'3!'!6%-__( -  %0GDM$,GDM(($(#/#M2!)$ )  !*3/: N7 N0  	/%c!fX.GDM	/s*   C/C*BC/*C//	D8DDc                    t         st        d      	 | j                         j                  D ch c]  }|j                   }}t        t        j                               }|j                  |      S c c}w # t        $ r Y yw xY w)zM
    Returns True if all required collections exist with correct config.
    r!   F)
r(   r)   r+   r,   r-   setr   keysissubsetr1   )r3   r6   r7   requireds       r9   verify_collectionsr@   _   s|     788$*$:$:$<$H$HIqAFFII{'')*  ** J  s"   A7 A2/A7 2A7 7	BBN)F)__doc__typingr   r   qdrant_clientr   qdrant_client.modelsr   r   r   r(   r)   r   r2   __annotations__booldictr:   r@        r9   <module>rJ      s   
 *NN %$ )%	
	 "!
 "%
)*T#tCH~%& >, , ,^$ c  s   A A&%A&