from fw import rds

class User:
    def __init__(self,record):
        self.id=record['id']
        self.u_id=record['u_id']
        self.u_name=record['u_name']
        self.status=record['status']
        return

class Users:
    def __init__(self):
        return
    
    #全ユーザーを取得する
    def get_all(self):
        sql="SELECT * FROM users WHERE status=0;"
        records=rds.executeSQL(sql=sql)
        if len(records)==0:
            return None
        
        dataset=[]
        for record in records:
            # dataset.append(record)
            data=User(record)
            dataset.append(data)
        
        return dataset
    
    def get(self,u_id):
        sql="SELECT * FROM users WHERE u_id=%s and status=0;"
        params=(str(u_id),)
        records=rds.executeSQL(sql,params)
        
        if len(records)==0:
            return None
        
        dataset=[]
        for record in records:
            data=User(record)
            dataset.append(data)
        
        return dataset

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

    def new(self,u_id,u_name):
        sql="INSERT INTO users (u_id,u_name) VALUES(%s,%s);"
        params=(str(u_id),str(u_name))
        result=rds.executeSQL(sql,params,True)
        
        return result

    def set(self,id,u_name):
        sql="UPDATE users SET u_name=%s where id=%s;"
        params=(str(u_name),str(id))
        result=rds.executeSQL(sql,params,True)
        
        return result
    
    #論理削除
    def delete(self,id):
        sql="UPDATE users SET status=1 where id=%s;"
        params=(str(id),)
        result=rds.executeSQL(sql,params,True)
        
        return result
