import os

from dotenv import load_dotenv
from google_auth_oauthlib.flow import InstalledAppFlow

load_dotenv()

# This script MINTS a refresh token, so it only needs the OAuth client pair.
client_id = os.environ["GOOGLE_ADS_CLIENT_ID"]
client_secret = os.environ["GOOGLE_ADS_CLIENT_SECRET"]

def get_refresh_token():
    flow = InstalledAppFlow.from_client_config({
        "installed": {
            "client_id": client_id,
            "client_secret": client_secret,
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://oauth2.googleapis.com/token",
            "redirect_uris": ["http://localhost:8080/"]
        }
    }, scopes=["https://www.googleapis.com/auth/adwords"])

    creds = flow.run_local_server(port=8080)
    print("\n✅ Your refresh token:")
    print(creds.refresh_token)

if __name__ == "__main__":
    get_refresh_token()