from app.models.enums import (
    Cities,
    Status,
    ProjectImageTags
)

project_metadata = {
    'table_name': 'projects',
    'image_tag_options': ProjectImageTags,
    'columns': {
        'id': {
            'sql_type': 'SERIAL',
            'type': int,
            'constraints': {'primary_key': True},
            'use_as_option_identifier': True
        },
        'project_name': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True,
            'use_as_option_identifier': True
        },
        'company_name': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True
        },
        'owner_name': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True
        },
        'owner_number': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True
        },
        'city': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': Cities},
            'required': True,
            'use_as_option_identifier': True
        },
        'settlement': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'street_address': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
            'required': True
        },
        'street_number': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'coordinate_latitude': {
            'sql_type': 'FLOAT',
            'type': float,
            'constraints': {}
        },
        'coordinate_longitude': {
            'sql_type': 'FLOAT',
            'type': float,
            'constraints': {}
        },
        'status': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'enum': Status},
        },
        'agent_comment': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000}
        },
        'created_at': {
            'sql_type': 'TIMESTAMP',
            'type': str,
            'constraints': {}
        },
        'website_title': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'property_subtitle': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'property_description': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
        'feature_1': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'feature_2': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'feature_3': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'location_description': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
        'right_property': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
        'website_title_english': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'property_subtitle_english': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'property_description_english': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
        'feature_1_english': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'feature_2_english': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'feature_3_english': {
            'sql_type': 'VARCHAR(50)',
            'type': str,
            'constraints': {'max_length': 50},
        },
        'location_description_english': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
        'right_property_english': {
            'sql_type': 'TEXT',
            'type': str,
            'constraints': {'max_length': 1000},
        },
    }
}
