class Dv2ModelingMetadata:
    HEADER_TEMPLATE = """/* 
    =====================================================================
    AUTO-GENERATED CODE — DO NOT EDIT MANUALLY
    =====================================================================

    This stored procedure was automatically generated by:
      sandwich (https://pypi.org/project/sandwich/)

    Manual changes are discouraged.
    This file may be regenerated at any time, and all manual edits
    will be overwritten.

    Created on   : {created_on:%Y-%m-%d %H:%M:%S}
    Updated on   : {updated_on:%Y-%m-%d %H:%M:%S}
    Generator    : sandwich v{version}
    Entity name  : {entity_name}

    =====================================================================
*/
"""
    loaddate = "LoadDate"
    recordsource = "RecordSource"
    hashdiff = "HashDiff"
    is_available = "IsAvailable"
    names: list[str] = [loaddate, recordsource, hashdiff, is_available]

    # scenario format is "entity-context" or just "entity" if context is absent
    scenarios = ["original", "ecom_order_line-ecom_orders,ecom_products", "email_message-email_address",
                 "web_site_reg-email_address"]
    profiles = ["hub-sat2-dim2", "link-sat0", "hub", "multi-sat2"]
    supported_profile_upgrades = [("hub", "hub-sat2-dim2")]
    # _dialects_config: dict[str, dict[str, str]] = {
    #     "mssql": {
    #         loaddate: "DATETIME2",
    #         recordsource: "VARCHAR(200)",
    #         hashdiff: "CHAR(40)",
    #         is_available: "BIT",
    #     },
    #     "postgres": {
    #         loaddate: "TIMESTAMP",
    #         recordsource: "TEXT",
    #         hashdiff: "CHAR(40)",
    #         is_available: "BOOLEAN",
    #     },
    # }
    def __init__(self):
        #self.dialect = dialect

        #self.column_types = self._dialects_config[self.dialect]
        self.required_columns: list[str] = [self.loaddate, self.recordsource]

modeling_metadata = Dv2ModelingMetadata()