from datetime import datetime


def serialize_supplier_document(document, date_format):
    uploaded_by = document.uploaded_by
    return {
        'document_id': str(document.id),
        'document_name': document.document_name,
        'document_type': document.document_type,
        'content_type': document.content_type,
        'file_data_base64': document.file_data_base64,
        'uploaded_by': {
            'staff_id': str(uploaded_by.id) if uploaded_by is not None else '',
            'staff_name': (
                f'{uploaded_by.first_name} {uploaded_by.last_name}'
                if uploaded_by is not None else ''
            ),
        },
        'created_on': datetime.strftime(document.created_on, date_format)
        if document.created_on is not None else '',
    }


def supplier_documents_list(supplier, date_format):
    rows = []
    for document in supplier.supplier_documents.filter(recycle_bin=False).order_by('-id'):
        rows.append(serialize_supplier_document(document, date_format))
    return rows
