from app.models.enums import (
    Cities,
    Budget,
    TypeLead,
    PurchaseTimeframe,
    InterestLevel
)


leads_metadata = {
    'table_name': 'leads',
    'columns': {
        'id': {
            'sql_type': 'SERIAL',
            'type': int,
            'constraints': {'primary_key': True},
            'use_as_option_identifier': 'True'
        },
        'timestamp': {
            'sql_type': 'TIMESTAMP',
            'type': str,  # Usually datetime, but often stored/handled as str in Python apps
            'constraints': {},
        },
        'contact_date': {
            'sql_type': 'VARCHAR(50)',
            # date as string (or date object depending on your ORM)
            'type': str,
            'constraints': {},
            'required': False
        },
        'market': {
            'sql_type': 'VARCHAR(100)',
            'type': str,
            'constraints': {'enum': Cities},
            'required': True
        },
        'name': {
            'sql_type': 'VARCHAR(100)',
            'type': str,
            'constraints': {'max_length': 1000},
            'required': True,
            'use_as_option_identifier': 'True'
        },
        'phone_number': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True
        },
        'city': {
            'sql_type': 'VARCHAR(100)',
            'type': str,
            'constraints': {'max_length': 1000},
            'required': False
        },
        'budget': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': Budget},
            'required': False
        },
        'purchase_timeframe': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': PurchaseTimeframe},
            'required': False
        },
        'financing': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {},
            'required': False
        },
        'decision_maker': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {},
            'required': False
        },
        'interest_level': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': InterestLevel},
            'required': False
        },
        'person_type': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': TypeLead},
            'required': False
        },
        'additional_info': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
            'required': False
        },
    }
}
