from app.extensions import db


class ImportBatch(db.Model):
    __tablename__ = 'import_batches'

    id = db.Column(db.Integer, primary_key=True)
    filename = db.Column(db.String(255), nullable=False)
    uploaded_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now())
    status = db.Column(db.String(20), nullable=False, default='pending')  # pending / committed / abandoned
    row_count = db.Column(db.Integer, nullable=True)
    committed_at = db.Column(db.DateTime, nullable=True)

    # Story 9.1+ fields
    issuer = db.Column(db.String(100), nullable=True)
    duplicates_skipped = db.Column(db.Integer, nullable=True, default=0)
    parse_errors_json = db.Column(db.Text, nullable=True)   # JSON-encoded list of ParseError dicts

    transactions = db.relationship('Transaction', back_populates='import_batch', lazy='dynamic')
