package com.flightticket.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class KeycloakConfig {
    
    @Value("${keycloak.auth-server-url}")
    private String authServerUrl;
    
    @Value("${keycloak.realm}")
    private String realm;
    
    @Value("${keycloak.resource}")
    private String clientId;
    
    @Value("${keycloak.credentials.secret}")
    private String clientSecret;
    
    @Bean
    public RestTemplate keycloakRestTemplate() {
        return new RestTemplate();
    }
    
    public String getAuthServerUrl() {
        return authServerUrl;
    }
    
    public String getRealm() {
        return realm;
    }
    
    public String getClientId() {
        return clientId;
    }
    
    public String getClientSecret() {
        return clientSecret;
    }
    
    public String getTokenEndpoint() {
        return String.format("%s/realms/%s/protocol/openid-connect/token", authServerUrl, realm);
    }
    
    public String getLogoutEndpoint() {
        return String.format("%s/realms/%s/protocol/openid-connect/logout", authServerUrl, realm);
    }
    
    public String getUserInfoEndpoint() {
        return String.format("%s/realms/%s/protocol/openid-connect/userinfo", authServerUrl, realm);
    }
}
