front_ponto_eletronico/models/license.py
2025-03-17 15:00:51 -03:00

27 lines
1.1 KiB
Python

from extensions import db
class License(db.Model):
__tablename__ = "licenses"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
service_id = db.Column(db.Integer, db.ForeignKey("service.id"), nullable=False)
license_key = db.Column(db.String(255), nullable=False, unique=True)
max_service_instances = db.Column(db.Integer, nullable=False)
start_date = db.Column(db.Date, nullable=False)
end_date = db.Column(db.Date, nullable=True)
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
service = db.relationship("Service", backref="service_licenses")
def __repr__(self):
return f"<License {self.license_key}>"
def is_active(self):
"""Verifica se a licença está ativa com base na data."""
from datetime import date
today = date.today()
return self.start_date <= today and (self.end_date is None or self.end_date >= today)