from app.modules.otp.otp_repository import OtpRepository
from app.modules.otp.otp_model import OtpModel


class OtpService:

    def __init__(self):
        self.repo = OtpRepository()

    async def add_otp(self, phone: str, otpCode: str):

        otp = OtpModel(
            phone=phone,
            otpCode=otpCode
        )

        otp_id = await self.repo.add_otp(otp)

        return {
            "otp_id": otp_id,
            "phone": phone,
            "otpCode": otpCode
        }

    async def get_active_otp_by_phone(self, phone: str):
        return await self.repo.get_active_otp_by_phone(phone)
    

    async def expire_otp(self,_id:str):
        result = await self.repo.expire_otp(_id)
        return {
        "success": True,
        "message": "OTP expired successfully",
        "updated": result
    }