import uuid
from datetime import datetime
from .k2cfg import k2

db = k2.db
def generate_id():
    generated_id = uuid.uuid4().hex[:32]
    return ''.join([generated_id[i:i + 4] for i in range(0, len(generated_id), 4)])
class Component(db.Model):
    __bind_key__ = 'db2'
    __tablename__ = 'component'
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.String(36), primary_key=True, default=generate_id)
    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(200))
    version = db.Column(db.String(20))
    git_link = db.Column(db.String(200))
    dependencies = db.Column(db.String)
    date_installed = db.Column(db.DateTime, default=datetime.utcnow)
    installed = db.Column(db.Boolean, default=False)

    def __init__(self, name, description, version, git_link,  dependencies, installed):
        self.name = name
        self.description = description
        self.version = version
        self.git_link = git_link
        self.dependencies = dependencies
        self.installed = installed
    def __repr__(self):
        return f"Component('{self.name}', '{self.version}')"
    @classmethod
    def get_repository_by_id(self,rep_id):
        component = db.session.query(Component).filter(Component.id == rep_id).first()
        return component
    @classmethod
    def get_repository_by_id(self,rep_id):
        component = db.session.query(Component).filter(Component.id == rep_id).first()
        return component


