30 lines
1017 B
Python
30 lines
1017 B
Python
# models.py
|
|
from sqlalchemy import Column, Integer, String, Enum, ForeignKey
|
|
from sqlalchemy.orm import relationship
|
|
from data.db import Base
|
|
from core.enums import ConnectionTypes, UserRole
|
|
|
|
class User(Base):
|
|
__tablename__ = "users"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
username = Column(String, unique=True, index=True, nullable=False)
|
|
role = Column(Enum(UserRole), default=UserRole.user, nullable=False)
|
|
api_key = Column(String, unique=True, nullable=False)
|
|
|
|
# repos = relationship("Connection", back_populates="owner")
|
|
|
|
class Connection(Base):
|
|
__tablename__ = "connections"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
db_name = Column(String, nullable=False)
|
|
type = Column(Enum(ConnectionTypes), nullable=False)
|
|
host = Column(String)
|
|
port = Column(Integer)
|
|
username = Column(String)
|
|
password = Column(String)
|
|
owner_id = Column(Integer, ForeignKey("users.id"))
|
|
|
|
# owner = relationship("User", back_populates="connections")
|