from datetime import datetime
from . import db

class MetaCadastrador(db.Model):
    __tablename__ = 'metas'

    id = db.Column(db.Integer, primary_key=True)
    cadastrador_id = db.Column(db.Integer, db.ForeignKey('usuarios.id'), nullable=False)
    campanha_id = db.Column(db.Integer, db.ForeignKey('campanhas.id'), nullable=False)
    meta = db.Column(db.Integer, nullable=False, default=25)
    quantidade_atual = db.Column(db.Integer, default=0)
    atualizado_em = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)

    # Relationships
    cadastrador = db.relationship('Usuario', backref=db.backref('meta_rel', uselist=False))
    campanha = db.relationship('Campanha', backref='metas')

    def percentual(self):
        if not self.meta or self.meta == 0:
            return 100
        return min(round((self.quantidade_atual / self.meta) * 100, 1), 100.0)
