File size: 1,106 Bytes
ef78361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""๋ฆฌํฌํŠธ Feature ์š”์•ฝ ์นด๋“œ."""
import streamlit as st

from core.supabase_client import get_campaign_date_range, get_report_history_count


def render_summary(base_ctx: dict):
    """๋ฆฌํฌํŠธ ์š”์•ฝ ์นด๋“œ."""
    campaign_id = base_ctx["campaign_id"]
    date_range = get_campaign_date_range(campaign_id)
    report_count = get_report_history_count(campaign_id)

    col1, col2, col3 = st.columns(3)
    with col1:
        if date_range:
            days = _calc_days(date_range[0], date_range[1])
            st.metric("๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ธฐ๊ฐ„", f"{days}์ผ", help=f"{date_range[0]} ~ {date_range[1]}")
        else:
            st.metric("๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ธฐ๊ฐ„", "N/A")
    with col2:
        st.metric("์ƒ์„ฑ๋œ ๋ฆฌํฌํŠธ", f"{report_count}๊ฑด")
    with col3:
        st.metric("๋ถ„์„ ํ•ญ๋ชฉ", "๊ฐ€์‹œ์„ฑ / ์ธ์šฉ / ๊ฐ์ • / ์ฝ˜ํ…์ธ ")


def _calc_days(start: str, end: str) -> int:
    """๋‘ ๋‚ ์งœ ๋ฌธ์ž์—ด ๊ฐ„ ์ผ์ˆ˜ ๊ณ„์‚ฐ."""
    from datetime import datetime
    d1 = datetime.strptime(start, "%Y-%m-%d")
    d2 = datetime.strptime(end, "%Y-%m-%d")
    return (d2 - d1).days + 1