#!/usr/bin/env python
# coding: utf-8

# In[1]:


import pandas as pd
import datetime
import numpy as np
import uuid 


# In[2]:


class DealManager():
    
    def __init__(self):
        self.commission=0.04
        self.columns=['uuid','figi','amount','startPrice','profit']
        self.deals = pd.DataFrame(columns=self.columns)
        self.deals = self.deals.set_index('uuid')
        
    def findDealByPriceAndFig(self,price,figi):
        ans=None
        for i in range(self.deals.shape[0]):
            if self.deals.iloc[i].startPrice == price and self.deals.iloc[i].figi == figi:
                ans = self.deals.iloc[i].name
                break
        return ans

    def openDeal(self,figi,startPrice,amount=1):
        desiredDeal=self.findDealByPriceAndFig(startPrice,figi)
        if desiredDeal == None:
            newDealDict={
                'uuid':[str(uuid.uuid4())],
                'figi':[figi],
                'startPrice':[startPrice],
                'amount':[amount]
            }

            #newDealDict['profit']=[startPrice*pow(1+self.commission,2)]



            newDeal=pd.DataFrame.from_dict(newDealDict).set_index('uuid')
            self.deals=pd.concat([self.deals, newDeal])
        else:
            self.deals.at[desiredDeal,'amount'] += amount

    def closeDeal(self,uuid,amount):
        
        desiredDeal=self.deals.loc[uuid]
        if desiredDeal.amount - amount == 0:
            self.deals = self.deals.drop(labels = [uuid],axis = 0)
        else:
            self.deals.at[uuid,'amount'] -= amount
            #self.deals.loc[uuid].amount = desiredDeal.amount - amount
        


# In[3]:


t=DealManager()
t.__dict__


# In[ ]:





# In[4]:


t.deals.shape[0]


# In[5]:


t.openDeal('huigi',100,1)
t.openDeal('huigi',100,3)
t.openDeal('huigi1',100,3)
t.openDeal('huigi1',200,3)


# In[6]:


t.deals


# In[7]:


t.deals[t.deals.figi == 'huigi1']


# In[ ]:





# In[8]:


for i in range(t.deals.shape[0]):
    print(t.deals.iloc[i])


# In[9]:


t.findDealByPriceAndFig


# In[10]:


t.closeDeal('78228979-3daf-470a-9c2a-8db180c8c3b0',1)
t.deals


# In[11]:


t.deals.iloc[0].name


# In[12]:


a=2
a==None


# In[ ]:




