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

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

contract DeployCCIPRouter is Script {
    function run() external {
        uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
        address deployer = vm.addr(deployerPrivateKey);
        
        // Load from environment or use defaults
        address feeToken = vm.envOr("CCIP_FEE_TOKEN", address(0));
        uint256 baseFee = vm.envOr("CCIP_BASE_FEE", uint256(0));
        uint256 dataFeePerByte = vm.envOr("CCIP_DATA_FEE_PER_BYTE", uint256(0));
        
        console.log("Deploying CCIPRouter with deployer:", vm.toString(deployer));
        console.log("Fee Token:", vm.toString(feeToken));
        console.log("Base Fee:", baseFee);
        console.log("Data Fee Per Byte:", dataFeePerByte);
        
        vm.startBroadcast(deployerPrivateKey);
        
        CCIPRouter router = new CCIPRouter(feeToken, baseFee, dataFeePerByte);
        
        console.log("CCIP Router deployed at:", vm.toString(address(router)));
        
        vm.stopBroadcast();
        
        console.log("\n=== Deployment Summary ===");
        console.log("CCIP Router:", vm.toString(address(router)));
        console.log("Fee Token:", vm.toString(feeToken));
        console.log("Base Fee:", baseFee);
        console.log("Data Fee Per Byte:", dataFeePerByte);
    }
}
