from datetime import datetime
from sqlalchemy import DateTime, Integer, String, Float, func, VARCHAR
from app.models.main import Base
from sqlalchemy.orm import Mapped, mapped_column
from pydantic import BaseModel
from typing import Optional

class MailLogBaseSchema(BaseModel):
    mail_log_id : int
    from_mail : str
    to_mail : str
    subject : str
    send_at : str
    error : str
    is_send : int
    group_id : int

class TblMailLog(Base):
    __tablename__ = "tbl_mail_log"
    mail_log_id : Mapped[int] = mapped_column("mail_log_id", Integer, primary_key=True, autoincrement=True)
    from_mail : Mapped[str] = mapped_column("from_mail", VARCHAR(300), nullable=True, server_default=None)
    to_mail : Mapped[str] = mapped_column("to_mail", VARCHAR(300), nullable=True, server_default=None)
    subject : Mapped[str] = mapped_column("subject", VARCHAR(300), nullable=True, server_default=None)
    send_at : Mapped[datetime] = mapped_column("send_at", DateTime(timezone=True), server_default=func.now(),nullable=True)
    error : Mapped[str] = mapped_column("error", VARCHAR(300), nullable=True, server_default=None)
    is_send : Mapped[int] = mapped_column("is_send", Integer, nullable=True, server_default=None)
    group_id : Mapped[int] = mapped_column("group_id", Integer, nullable=True, server_default=None)