from fw import rds

class Message:
    def __init__(self,record):
        self.id=record['id']
        self.m_id=record['m_id']
        self.user_id=record['user_id']
        self.channel_id=record['channel_id']
        self.org_text=record['org_text']
        self.mod_text=record['mod_text']
        self.status=record['status']
        return

class Messages:
    def __init__(self):
        return

    def get(self,m_id):
        sql="SELECT * FROM messages WHERE m_id=%s and status=0;"
        params=(str(m_id),)
        records=rds.executeSQL(sql,params)
        
        if len(records)==0:
            return None
        
        dataset=[]
        for record in records:
            data=Message(record)
            dataset.append(data)
        
        return dataset

    def first(self,m_id):
        sql="SELECT * FROM messages WHERE m_id=%s and status=0;"
        params=(str(m_id),)
        records=rds.executeSQL(sql,params)
        
        if len(records)==0:
            return None
        
        record=records[0]
        data=Message(record)
        
        return data

    def new(self,m_id,user_id,channel_id,text):
        sql="INSERT INTO messages (m_id,user_id,channel_id,org_text,mod_text) VALUES(%s,%s,%s,%s,'');"
        params=(str(m_id),str(user_id),str(channel_id),str(text))
        result=rds.executeSQL(sql,params,True)
        
        return result

    def mod(self,id,text):
        sql="UPDATE messages SET mod_text=%s where id=%s;"
        params=(str(text),str(id))
        result=rds.executeSQL(sql,params,True)
        
        return result
    
    def delete(self,id):
        sql="UPDATE messages SET status=1 where id=%s;"
        params=(str(id),)
        result=rds.executeSQL(sql,params,True)
        
        return result
