
    ]jN                        d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZ  ee      j                         j                  d	z  d
z  ZddZddZddZdddZy)zKCenter configuration versions (append-only; exactly one active per center).    )annotationsN)Path)HTTPException)
Connection   )Jsonbfetchonedatazdefault-config.jsonc                 P    t        j                  t        j                               S N)jsonloadsDEFAULT_CONFIG_PATH	read_text     (/var/www/avy-guidance/api/app/configs.pydefault_configr      s    ::)33566r   c                >    t        | d|f      }|st        dd      |S )NzySELECT id, version, status, config, rationale, approved_at FROM center_configs WHERE center_id = %s AND status = 'active'i  z,This center has no active configuration yet.r	   r   )conn	center_idrows      r   active_configr      s2    
 	D	C
 C!OPPJr   c                >    t        | d|f      }|st        dd      |S )Nz*SELECT * FROM center_configs WHERE id = %si  zConfig not foundr   )r   	config_idr   s      r   config_by_idr      s)    
4E	|
TCC!344Jr   c           	     |    t        | d|f      }|r|d   S t        | d|t        t                     d||f      }|d   S )zJCreate config version 1 (active) from the shipped default, if none exists.zKSELECT id FROM center_configs WHERE center_id = %s ORDER BY version LIMIT 1idzINSERT INTO center_configs (center_id, version, status, config, rationale, created_by, approved_by, approved_at)
           VALUES (%s, 1, 'active', %s, %s, %s, %s, now()) RETURNING idz_Default configuration seeded from the USDA FS Forecast Guidance and CMAH (Statham et al. 2018).)r	   r   r   )r   r   user_idexistingr   s        r   seed_defaultr"   &   s_    knwmyzH~
	K ."#m	
	C t9r   )returndict)r   r   r   intr#   r$   )r   r   r   r%   r#   r$   r   )r   r   r   r%   r    z
int | Noner#   r%   )__doc__
__future__r   r   pathlibr   fastapir   psycopgr   dbr   r	   __file__resolveparentr   r   r   r   r"   r   r   r   <module>r/      sR    Q "   !  8n,,.55>AVV 7r   