
    j	                    *   S r SSKJr  SSKrSSKrSSKrSSKJr  \" \5      R                  5       R                  r\" \R                  R                  S5      =(       d    \S-  5      r/ SQrSS jrSS	 jr\S
:X  a  \R&                  " \" 5       5        gg)u  
ERGON Sprint 4.1 - Migration marca operadora en obras.

Agrega 4 columnas a `obras` para configurar branding de informes:
    marca_operador_nombre   — ej. "ERGON Platform" (default)
    marca_operador_slogan   — ej. "Fiscalizacion y gerencia de obra"
    marca_operador_logo_path — path relativo al blob (db/marca/{obra_id}/logo.png)
    marca_palette_accent    — hex de acento (default #D4B370 = bronce ERGON)

Decision arquitectonica: marca vive por obra porque distintas obras pueden
tener distintos operadores (un fiscalizador para una obra, otro para otra).

Idempotente: chequea si cada columna existe antes de agregarla.

Uso:
    python db/migrate_f_marca.py
    )annotationsN)PathDATABASE_PATHzergon.db))marca_operador_nombrez&TEXT NOT NULL DEFAULT 'ERGON Platform')marca_operador_sloganTEXT)marca_operador_logo_pathr   )marca_palette_accentzTEXT NOT NULL DEFAULT '#D4B370'c                |    U R                  SU S35      R                  5       nU Vs1 s H  o3S   iM	     sn$ s  snf )NzPRAGMA table_info()   )executefetchall)conntablarowsrs       /app/db/migrate_f_marca.pycolumnas_existentesr   $   s=    <<,UG156??AD$QaD$s   9c            	        [         R                  5       (       d   [        S[          3[        R                  S9  g[
        R                  " [        [         5      5      n  [        U S5      n/ n[         HR  u  p4X1;   a  [        SU S35        M  U R                  SU SU 35        UR                  U5        [        S	U S
35        MT     U R                  5         [        S[        U5       S[        [        5      [        U5      -
   S35         U R                  5         g! [
        R                   a5  n[        SU 3[        R                  S9   S nAU R                  5         gS nAff = f! U R                  5         f = f)Nz[ERROR] DB no existe: )filer   obrasz  [skip] columna 'z' ya existezALTER TABLE obras ADD COLUMN  z  [add]  columna 'z
' agregadaz  [migrate_f_marca] OK. z columna(s) nuevas, z ya existian.r   z[ERROR] migration fallo: )DB_PATHexistsprintsysstderrsqlite3connectstrr   COLUMNAS_NUEVASr   appendcommitlencloseError)r   
existentes	agregadasnombre
definiciones         r   mainr-   )   sC   >>&wi0szzB??3w<(D(w7
	"1F#*6(+>?LL8*NOV$&vhj9: #2 	(Y(88L_%I67}F 	G
 	

	 == )!-CJJ?

	 	

s+   B.D E'2E"E* "E''E* *E<__main__)r   zsqlite3.Connectionr   r!   returnzset[str])r/   int)__doc__
__future__r   osr   r   pathlibr   __file__resolveparentHEREenvirongetr   r"   r   r-   __name__exit     r   <module>r?      s   " # 	  
 H~&&
rzz~~o.E4*3D
F 
4 zHHTV r>   