from datetime import datetime
from app.extensions import db


class Paper(db.Model):
    __tablename__ = 'papers'

    id = db.Column(db.Integer, primary_key=True)
    doi = db.Column(db.String(255), unique=True, index=True)
    title = db.Column(db.Text)
    authors = db.Column(db.Text)  # Semicolon-separated
    journal = db.Column(db.String(500))
    year = db.Column(db.Integer, index=True)
    abstract = db.Column(db.Text)
    citation_text = db.Column(db.Text)  # Full formatted citation
    bibtex = db.Column(db.Text)

    # Movebank-specific
    movebank_study_id = db.Column(db.String(100), index=True)
    dataset_doi = db.Column(db.String(255))  # DOI of the data package
    species = db.Column(db.Text)  # Semicolon-separated scientific names
    sensor_types = db.Column(db.Text)  # Semicolon-separated
    animal_count = db.Column(db.Integer)
    location_count = db.Column(db.Integer)
    keywords = db.Column(db.Text)  # Semicolon-separated

    # Source tracking
    source = db.Column(db.String(50))  # 'datarepository' or 'literature'
    source_url = db.Column(db.Text)

    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
