class ProjectBoardBase: """ A project board is a unit of delivery for a project. Each board will have a set of tasks assigned to a user. """ # create a board def create_board(self, request: str): """ :param request: A json string with the board details. { "name" : "", "description" : "", "team_id" : "" "creation_time" : "" } :return: A json string with the response {"id" : ""} Constraint: * board name must be unique for a team * board name can be max 64 characters * description can be max 128 characters """ pass # close a board def close_board(self, request: str) -> str: """ :param request: A json string with the user details { "id" : "" } :return: Constraint: * Set the board status to CLOSED and record the end_time date:time * You can only close boards with all tasks marked as COMPLETE """ pass # add task to board def add_task(self, request: str) -> str: """ :param request: A json string with the task details. Task is assigned to a user_id who works on the task { "title" : "", "description" : "", "user_id" : "" "creation_time" : "" } :return: A json string with the response {"id" : ""} Constraint: * task title must be unique for a board * title name can be max 64 characters * description can be max 128 characters Constraints: * Can only add task to an OPEN board """ pass # update the status of a task def update_task_status(self, request: str): """ :param request: A json string with the user details { "id" : "", "status" : "OPEN | IN_PROGRESS | COMPLETE" } """ pass # list all open boards for a team def list_boards(self, request: str) -> str: """ :param request: A json string with the team identifier { "id" : "" } :return: [ { "id" : "", "name" : "" } ] """ pass def export_board(self, request: str) -> str: """ Export a board in the out folder. The output will be a txt file. We want you to be creative. Output a presentable view of the board and its tasks with the available data. :param request: { "id" : "" } :return: { "out_file" : "" } """ pass