from app.extensions import db


class PaydownPlan(db.Model):
    __tablename__ = 'paydown_plans'

    id = db.Column(db.Integer, primary_key=True)
    strategy = db.Column(db.String(30), nullable=False)    # avalanche / snowball / highest_balance / proportional / custom
    extra_monthly = db.Column(db.Numeric(10, 2), nullable=False, default=0)
    status = db.Column(db.String(20), nullable=False, default='active')   # active / archived
    archived_at = db.Column(db.DateTime, nullable=True)
    last_recalculated_at = db.Column(db.DateTime, nullable=True)
    created_at = db.Column(db.DateTime, server_default=db.func.now(), nullable=False)

    cards = db.relationship('PaydownPlanCard', back_populates='plan', lazy='dynamic')
