from sqlalchemy import Column, Integer, String, DateTime, Text
from sqlalchemy.dialects.mysql import TINYINT, BIGINT
from app.db.base_class import Base
import datetime

class SubscriptionReceipt(Base):
    __tablename__ = "subscription_receipts"

    id = Column(Integer, primary_key=True, autoincrement=True)
    user_id = Column(Integer, nullable=True, index=True)
    user_device_id = Column(Integer, nullable=True, index=True)
    receipt = Column(Text, nullable=False)
    original_transaction_id = Column(String(255), nullable=True)
    transaction_id = Column(String(255), nullable=False)
    subscription_date = Column(DateTime, nullable=False, default=datetime.datetime.utcnow)
    is_trial_period = Column(TINYINT(1), nullable=False, default=0)
    subscription_type = Column(String(255), nullable=False)
    payment_transaction_id = Column(Integer, nullable=True)
    expiry_date = Column(DateTime, nullable=False)
    createdDate = Column(DateTime, nullable=False, default=datetime.datetime.utcnow)
    modifiedDate = Column(DateTime, nullable=False, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
    is_expired = Column(TINYINT(1), nullable=False, default=0)
    is_android = Column(TINYINT(1), nullable=False, default=0)
    cancellation_date = Column(DateTime, nullable=True)
    is_cancel = Column(TINYINT(1), nullable=False, default=0)
    is_record = Column(TINYINT(1), nullable=False, default=0)