update app/models/proxy.py
Browse files- app/models/proxy.py +27 -0
app/models/proxy.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from pydantic import BaseModel, Field
|
| 2 |
+
from typing import Optional, List
|
| 3 |
+
from datetime import datetime
|
| 4 |
+
from uuid import UUID, uuid4
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class Proxy(BaseModel):
|
| 8 |
+
id: UUID = Field(default_factory=uuid4)
|
| 9 |
+
ip: str
|
| 10 |
+
port: int
|
| 11 |
+
protocol: str
|
| 12 |
+
anonymity: Optional[str] = "transparent"
|
| 13 |
+
country_code: Optional[str] = None
|
| 14 |
+
source: str
|
| 15 |
+
score: float = 0.0
|
| 16 |
+
last_validated: Optional[datetime] = None
|
| 17 |
+
created_at: datetime = Field(default_factory=datetime.now)
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
class ValidationResult(BaseModel):
|
| 21 |
+
proxy_id: UUID
|
| 22 |
+
passed: bool
|
| 23 |
+
latency_ms: float
|
| 24 |
+
is_elite: bool = False
|
| 25 |
+
headers: dict = {}
|
| 26 |
+
error: Optional[str] = None
|
| 27 |
+
validated_at: datetime = Field(default_factory=datetime.now)
|