from typing import Self from flask import url_for from .exceptions import NotFoundException from .rebrickable_set import RebrickableSet from .sql import BrickSQL # Lego brick wished set class BrickWish(RebrickableSet): # Flags resolve_instructions: bool = False # Queries select_query: str = 'wish/select' insert_query: str = 'wish/insert' # Delete a wished set def delete(self, /) -> None: BrickSQL().execute_and_commit( 'wish/delete/wish', parameters=self.sql_parameters() ) # Select a specific part (with a set and an id) def select_specific(self, set: str, /) -> Self: # Save the parameters to the fields self.fields.set = set # Load from database if not self.select(): raise NotFoundException( 'Wish with number {number} was not found in the database'.format( # noqa: E501 number=self.fields.set, ), ) return self # Deletion url def url_for_delete(self, /) -> str: return url_for('wish.delete', number=self.fields.set)