"""CLI date validation without importing application/DB dependencies."""
from datetime import datetime


def validate(filters):
    for key,value in filters.items():
        if not isinstance(value,str) or not 1<=len(value)<=128:
            raise ValueError('TRACE_FILTER_INVALID')
        if key in ('from','to'):
            if datetime.strptime(value,'%Y-%m-%d').strftime('%Y-%m-%d')!=value:
                raise ValueError('TRACE_DATE_INVALID')
    if filters.get('from') and filters.get('to') and filters['from']>filters['to']:
        raise ValueError('TRACE_DATE_ORDER')
