/* =============================================================================
 * timesync.h - SNTP 시간 동기 + RTC (RPi OS NTP 대응)
 *
 * TLS 인증서 유효기간 검증과 보고 본문의 timestamp 필드에 정확한 Unix 시간이
 * 필요하다. SNTP 는 UDP 라 TLS 가 필요 없으므로 TLS 연결보다 먼저 수행한다.
 * 구현(timesync.c): LwIP apps/sntp 로 시간 획득 후 RTC 에 반영.
 * ===========================================================================*/
#ifndef TIMESYNC_H
#define TIMESYNC_H

#include <stdint.h>

/* SNTP 클라이언트 시작 (네트워크 업 이후 호출). */
void timesync_init(void);

/* 최초 시간 동기 완료까지 대기. 0 성공, 음수 타임아웃. */
int timesync_wait(uint32_t timeout_ms);

/* 시간이 한 번이라도 동기화되었으면 1. */
int timesync_is_set(void);

/* 현재 Unix epoch(초). 미동기 시 0. */
uint32_t timesync_now(void);

/* SNTP 수신 콜백(내부용): lwipopts.h 의 SNTP_SET_SYSTEM_TIME 에서 호출되어
 * 획득한 Unix 시간을 RTC 에 반영하고 "동기됨" 플래그를 세운다. */
void timesync_apply_epoch(uint32_t unix_seconds);

#endif /* TIMESYNC_H */
