contract GenieKRW is BurnableToken {
     string public name ;
     string public symbol ;
     uint8 public decimals =  18;
     
   
     /**
     *@dev users sending ether to this contract will be reverted. Any ether sent to the contract will be sent back to the caller
     */
     function ()public payable {
         revert();
     }
     
     /**
     * @dev Constructor function to initialize the initial supply of token to the creator of the contract
     */
     //constructor(address wallet) public 
     constructor() public 
     {
         owner = msg.sender;
         ownerWallet = owner;
         totalSupply = 10000000000;
         totalSupply = totalSupply.mul(10 ** uint256(decimals)); //Update total supply with the decimal amount
         name = "GenieKRW";
         symbol = "GKRW";
         balances[owner] = totalSupply;
         startTime = now;
         
         //Emitting transfer event since assigning all tokens to the creator also corresponds to the transfer of tokens to the creator
         emit Transfer(address(0), msg.sender, totalSupply);
     }
     
     /**
     *@dev helper method to get token details, name, symbol and totalSupply in one go
     */
    function getTokenDetail() public view returns (string, string, uint256) {
	    return (name, symbol, totalSupply);
    }
    
    

    function lockTokensForTeam(address team, uint256 daysafter, uint256 amount) public onlyOwner
    {
        lockup = Lockup({
                          lockupTime:daysafter * 1 days,
                          lockupAmount:amount * 10 ** uint256(decimals), 
                          lockType:LockupType.TEAM
                          });
        lockupParticipants[team] = lockup;
    }

  

    function registerPartner(address partner) public onlyOwner
    {
        lockup = Lockup({
                          lockupTime:0 days,
                          lockupAmount:0 * 10 ** uint256(decimals), 
                          lockType:LockupType.PARTNER
                          });
        lockupParticipants[partner] = lockup;
    }

    function lockTokensUpdate(address addr, uint daysafter, uint256 amount, uint256 l_type) public onlyOwner
    {
        
        lockup = Lockup({
                          lockupTime:daysafter *  1 days,
                          lockupAmount:amount * 10 ** uint256(decimals), 
                          lockType: BasicToken.LockupType(l_type)
                          });
        lockupParticipants[addr] = lockup;
    }
 }
/**
 * @title GENIEkrw Token
 * @dev Token representing GENIE.
 */
function ()public payable {
    revert();
}

/**
 *@dev users sending ether to this contract will be reverted. Any ether sent to the contract will be sent back to the caller
 */