package com.ga.external.push;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Firebase Cloud Messaging(FCM) HTTP v1 설정.
 * <p>
 * application.yml 의 <code>app.adapter.fcm.*</code> 로 주입.
 * <b>운영 전제</b>: Firebase 프로젝트 + 서비스계정. Access Token(OAuth2, scope
 * https://www.googleapis.com/auth/firebase.messaging)은 서비스계정으로 주기 발급하여 주입한다
 * (재발급은 운영 책임). 필수 값이 비어 있으면 어댑터가 fail-fast 한다.
 */
@Data
@ConfigurationProperties(prefix = "app.adapter.fcm")
public class FcmProperties {

    /** FCM HTTP v1 베이스 URL. */
    private String baseUrl = "https://fcm.googleapis.com";

    /** Firebase 프로젝트 ID. */
    private String projectId;

    /** OAuth2 Access Token (Bearer, firebase.messaging scope). 운영에서 주기 재발급해 주입. */
    private String accessToken;
}
