class Attribute: def __init__(self, display_name, html_input_type="text", required=False, unique=False, primary=False, regex=None, min=None, max=None, options=None, default_val=""): self.display_name = display_name self.html_input_type = html_input_type self.required = required self.unique = unique self.primary = primary self.regex = regex self.min = min self.max = max self.options = options self.default_val = default_val item_attributes = { "assettag": Attribute( display_name="Asset Tag", html_input_type="text", required=True, unique=True, primary=True, regex=r"^[A-Z0-9]+$" # Only uppercase letters and numbers ), "hostname": Attribute( display_name="Host Name", html_input_type="text", required=True, unique=True, regex=r"^[a-z0-9._-]+$" # Lowercase letters, numbers, dots, underscores, hyphens ), "warrantyfrom": Attribute( display_name="Warranty From", html_input_type="date", default_val="2020-03-09", required=True ), "status": Attribute( display_name="Status", html_input_type="select", required=True, options=["Active", "Inactive"] # Allowed values ), "staffnum": Attribute( display_name="Staff No.", html_input_type="number", required=True, min=100000, # 6 digits max=99999999 # 8 digits ) }