from .database import DatabaseController from models.users.user import User from models.users.customer import Customer from models.users.seller import Seller class UserController(DatabaseController): FIELDS = ['id', 'username', 'password', 'firstName', 'lastName', 'email', 'phone', 'role'] def __init__(self): super().__init__() def create(self, user: User): params = [ user.username, user.password, user.firstName, user.lastName, user.email, user.phone, user.role ] self._conn.execute( "INSERT INTO Users (username, password, first_name, last_name, email, phone, role) VALUES (?, ?, ?, ?, ?, ?, ?)", params ) self._conn.commit() def read(self, username: str) -> User | None: params = [ username ] cursor = self._conn.execute( "SELECT * FROM Users WHERE Username = ?", params ) row = cursor.fetchone() if row != None: params = dict(zip(self.FIELDS, row)) # Is user a seller type = Customer if row[7] == "Seller": type = Seller obj = self.new_instance(type, params) return obj return None def read_id(self, id: int) -> User | None: params = [ id ] cursor = self._conn.execute( "SELECT * FROM Users WHERE id = ?", params ) row = cursor.fetchone() if row != None: params = dict(zip(self.FIELDS, row)) # Is user a seller type = Customer if row[7] == "Seller": type = Seller obj = self.new_instance(type, params) return obj return None def update(self): print("Doing work") def delete(self): print("Doing work")