// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

import {Script, console} from "forge-std/Script.sol";
import {CCIPSender} from "../contracts/ccip/CCIPSender.sol";

/**
 * @title DeployCCIPSender
 * @notice Deploy CCIPSender contract for cross-chain messaging
 */
contract DeployCCIPSender is Script {
    function run() external {
        uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
        address deployer = vm.addr(deployerPrivateKey);
        
        // Load environment variables
        address ccipRouter = vm.envAddress("CCIP_ROUTER_ADDRESS");
        address oracleAggregator = vm.envAddress("ORACLE_AGGREGATOR_ADDRESS");
        address feeToken = vm.envOr("LINK_TOKEN_ADDRESS", address(0)); // Use LINK if available, else native ETH
        
        console.log("Deploying CCIPSender with deployer:", vm.toString(deployer));
        console.log("CCIP Router:", vm.toString(ccipRouter));
        console.log("Oracle Aggregator:", vm.toString(oracleAggregator));
        console.log("Fee Token:", vm.toString(feeToken));
        
        vm.startBroadcast(deployerPrivateKey);
        
        CCIPSender sender = new CCIPSender(ccipRouter, oracleAggregator, feeToken);
        console.log("CCIPSender deployed at:", vm.toString(address(sender)));
        
        vm.stopBroadcast();
        
        console.log("\n=== Deployment Summary ===");
        console.log("CCIPSender:", vm.toString(address(sender)));
        console.log("CCIP Router:", vm.toString(ccipRouter));
    }
}

