from typing import List
from pydantic import BaseModel, Field
from typing import Optional
from decimal import Decimal
from datetime import datetime
from src.apps.base.schemas.common import BaseSchema
from src.utils.constants import MAX_PER_PAGE,DEFAULT_PER_PAGE

class MatchedLogSchema(BaseSchema):
    code = Optional[str] = None
    process_keyword: Optional[bool] = True
    total_records: Optional[int] = 0
    history_matched: Optional[int] = 0
    keyword_matched: Optional[int] = 0
    ambiguous_matched: Optional[int] = 0
    unknown_wines: Optional[int] = 0
    status: Optional[str] = None
    crawl_date: Optional[datetime] = None
    date_start: Optional[datetime] = None
    date_end: Optional[datetime] = None
    message: Optional[str] = None
    
class MatchedLogCreateSchema(MatchedLogSchema):
    literal: Optional[str] = None
    
class MatchedLogUpdateSchema(MatchedLogSchema):
    deleted_at: Optional[datetime] = None
    
class MatchedLogOutputSchema(MatchedLogSchema):
    id: Optional[int] = None
    literal: Optional[str] = None
    date_created: Optional[datetime] = None
    last_updated: Optional[datetime] = None