from src.modules.prompt.schemas.requests import MultiDocumentVerificationRequest, BankStatementData, AddressData


def test_parse_comma_separated_urls_bank_statement():
    raw = {
        "file_type": "bank_statement",
        "file_urls": "https://example.com/a.pdf, https://example.com/b.pdf",
        "data": {
            "first_name": "MP",
            "middle_name": "",
            "last_name": "Convergent",
            "bank_name": "Bank of America",
            "account_type": "Saving",
            "balance": "10000.00"
        }
    }
    parsed = MultiDocumentVerificationRequest.from_raw(raw)
    assert len(parsed.file_urls) == 2
    assert isinstance(parsed.data, BankStatementData)


def test_parse_single_residence_document():
    raw = {
        "file_type": "residence_documents",
        "file_urls": ["https://example.com/lease_pg1.jpg"],
        "data": {
            "first_name": "John",
            "middle_name": "",
            "last_name": "Doe",
            "city": "Dummy City",
            "state": "Toronto",
            "county": "Canada",
            "zip_code": "90001",
            "street_name": "Street 7",
            "house_number": "134"
        }
    }
    parsed = MultiDocumentVerificationRequest.from_raw(raw)
    assert len(parsed.file_urls) == 1
    assert isinstance(parsed.data, AddressData)
    assert parsed.data.city == "Dummy City"
