database_definition
This commit is contained in:
parent
9cf4eeedad
commit
9798cee411
|
@ -0,0 +1,186 @@
|
||||||
|
#! .\sbsheriff\scripts\python.exe
|
||||||
|
import sqlalchemy as sqla
|
||||||
|
from sqlalchemy.orm import declarative_base, relationship, scoped_session, sessionmaker
|
||||||
|
|
||||||
|
engine = sqla.create_engine('postgresql://strix:unnipus1213@192.168.1.2:5432/sbdb')
|
||||||
|
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
class World(Base):
|
||||||
|
__tablename__ = 'world'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
short_name = sqla.Column(sqla.String(50))
|
||||||
|
world_name = sqla.Column(sqla.String(50))
|
||||||
|
shk_id = sqla.Column(sqla.Integer)
|
||||||
|
age = sqla.Column(sqla.Integer)
|
||||||
|
ended = sqla.Column(sqla.Boolean)
|
||||||
|
hoh_scraped = sqla.Column(sqla.Boolean)
|
||||||
|
servers = relationship('Server',back_populates='worlds') #Checked
|
||||||
|
hoh_entries = relationship('Hall_Of_Heroes',back_populates='world') #Checked
|
||||||
|
house_histories = relationship('House_History',back_populates='world') #Checked
|
||||||
|
|
||||||
|
class Player(Base):
|
||||||
|
__tablename__ = 'player'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
player_name = sqla.Column(sqla.String(100))
|
||||||
|
user_id = sqla.Column(sqla.Integer,sqla.ForeignKey('user.id'))
|
||||||
|
|
||||||
|
user = relationship('User',back_populates='player') #Checked
|
||||||
|
vm_entries = relationship('Vm_Entry',back_populates='player') #Checked
|
||||||
|
hoh_entries = relationship("Hall_Of_Heroes",back_populates="player") #Checked
|
||||||
|
house_history = relationship("House_History",back_populates="player") #Checked
|
||||||
|
castle_designs = relationship("Player_Castle_Designs",back_populates="player") #Checked
|
||||||
|
|
||||||
|
server_user = sqla.Table(
|
||||||
|
"association",
|
||||||
|
Base.metadata,
|
||||||
|
sqla.Column("server_id",sqla.ForeignKey("server.id")),
|
||||||
|
sqla.Column("user_id",sqla.ForeignKey("user.id")),
|
||||||
|
)
|
||||||
|
|
||||||
|
class Server(Base):
|
||||||
|
__tablename__ = 'server'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
server_name = sqla.Column(sqla.Integer)
|
||||||
|
discord_guild_id = sqla.Column(sqla.BigInteger,unique=True)
|
||||||
|
world_id = sqla.Column(sqla.Integer,sqla.ForeignKey('world.id'))
|
||||||
|
|
||||||
|
worlds = relationship("World",back_populates="servers") #Checked
|
||||||
|
users = relationship("User",secondary=server_user,back_populates='servers') #Checked
|
||||||
|
|
||||||
|
class User(Base):
|
||||||
|
__tablename__ = 'user'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
discord_id = sqla.Column(sqla.BigInteger,unique=True)
|
||||||
|
display_name = sqla.Column(sqla.String(50))
|
||||||
|
servers = relationship("Server",secondary=server_user,back_populates='users') #Checked
|
||||||
|
|
||||||
|
#Parent in user prefferences relationship
|
||||||
|
user_prefference = relationship("User_Prefference",back_populates="user",uselist=False) #Checked
|
||||||
|
|
||||||
|
#Parent in user player relationship
|
||||||
|
player = relationship('Player',back_populates='user',uselist=False) #Checked
|
||||||
|
|
||||||
|
class User_Prefference(Base):
|
||||||
|
__tablename__ = 'user_prefference'
|
||||||
|
id = sqla.Column(sqla.Integer,primary_key=True)
|
||||||
|
preffered_pikes = sqla.Column(sqla.Integer)
|
||||||
|
preffered_archers = sqla.Column(sqla.Integer)
|
||||||
|
user_id = sqla.Column(sqla.Integer,sqla.ForeignKey('user.id'))
|
||||||
|
user = relationship('User',back_populates='user_prefference') #Checked
|
||||||
|
|
||||||
|
class Advert_Type(Base):
|
||||||
|
__tablename__ = 'advert_type'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
advert_name = sqla.Column(sqla.String(50))
|
||||||
|
adverts = relationship("Advert",back_populates="advert_type") #Checked
|
||||||
|
|
||||||
|
class Advert(Base):
|
||||||
|
__tablename__ = 'advert'
|
||||||
|
advert_id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
advert_type_id = sqla.Column(sqla.SmallInteger, sqla.ForeignKey("advert_type.id"))
|
||||||
|
channel_id = sqla.Column(sqla.BigInteger)
|
||||||
|
message_id = sqla.Column(sqla.BigInteger)
|
||||||
|
advert_type = relationship("Advert_Type",back_populates="adverts") #Checked
|
||||||
|
|
||||||
|
class Vm_Entry(Base):
|
||||||
|
__tablename__ = 'vm_entry'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
added_by_user_id = sqla.Column(sqla.Integer, sqla.ForeignKey("user.id"))
|
||||||
|
player_id = sqla.Column(sqla.Integer, sqla.ForeignKey("player.id"))
|
||||||
|
server_id = sqla.Column(sqla.Integer, sqla.ForeignKey("server.id"))
|
||||||
|
time_added = sqla.Column(sqla.Time)
|
||||||
|
time_ended = sqla.Column(sqla.Time,nullable=True)
|
||||||
|
player = relationship("Player",back_populates="vm_entries") #Checked
|
||||||
|
|
||||||
|
class House(Base):
|
||||||
|
__tablename__ = 'house'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
color = sqla.Column(sqla.String)
|
||||||
|
emoji = sqla.Column(sqla.String)
|
||||||
|
relationships = relationship("House_Relationship",back_populates="house")
|
||||||
|
|
||||||
|
class Relationship_State(Base):
|
||||||
|
__tablename__ = 'relationship_state'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
relationship_name = sqla.Column(sqla.String(50))
|
||||||
|
alignment = sqla.Column(sqla.Integer)
|
||||||
|
house_relations = relationship('House_Relationship',back_populates='relationship_state') #Checked
|
||||||
|
player_relations = relationship('Player_Relationship',back_populates='relationship_state')#Checked
|
||||||
|
|
||||||
|
class House_Relationship(Base):
|
||||||
|
__tablename__ = 'house_relationship'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
|
||||||
|
server_id = sqla.Column(sqla.Integer, sqla.ForeignKey("server.id"))
|
||||||
|
house_id = sqla.Column(sqla.Integer, sqla.ForeignKey("house.id"))
|
||||||
|
house = relationship("House",back_populates="relationships") #Checked
|
||||||
|
relationship_state_id = sqla.Column(sqla.Integer, sqla.ForeignKey("relationship_state.id"))
|
||||||
|
relationship_state = relationship("Relationship_State",back_populates="house_relations") #Checked
|
||||||
|
|
||||||
|
class Player_Relationship(Base):
|
||||||
|
__tablename__ = 'player_relationship'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
note = sqla.Column(sqla.String(100),nullable=True)
|
||||||
|
|
||||||
|
server_id = sqla.Column(sqla.Integer, sqla.ForeignKey("server.id"))
|
||||||
|
player_id = sqla.Column(sqla.Integer, sqla.ForeignKey("player.id"))
|
||||||
|
relationship_state_id = sqla.Column(sqla.Integer, sqla.ForeignKey("relationship_state.id"))
|
||||||
|
relationship_state = relationship('Relationship_State',back_populates='player_relations')#Checked
|
||||||
|
|
||||||
|
class Hoh_Rank(Base):
|
||||||
|
__tablename__ = 'hoh_rank'
|
||||||
|
id = sqla.Column(sqla.Integer, primary_key=True)
|
||||||
|
rank_name = sqla.Column(sqla.String(50))
|
||||||
|
hoh_entries = relationship("Hall_Of_Heroes",back_populates="rank") #Checked
|
||||||
|
|
||||||
|
class Hall_Of_Heroes(Base):
|
||||||
|
__tablename__ = 'hall_of_heroes'
|
||||||
|
id = sqla.Column(sqla.Integer,primary_key=True)
|
||||||
|
player_id = sqla.Column(sqla.Integer,sqla.ForeignKey('player.id'))
|
||||||
|
hoh_rank_id = sqla.Column(sqla.Integer,sqla.ForeignKey('hoh_rank.id'))
|
||||||
|
world_id = sqla.Column(sqla.Integer,sqla.ForeignKey('world.id'))
|
||||||
|
|
||||||
|
#Parent in player hoh relationship
|
||||||
|
player = relationship('Player',back_populates='hoh_entries') #Checked
|
||||||
|
rank = relationship('Hoh_Rank',back_populates='hoh_entries') #Checked
|
||||||
|
world = relationship('World',back_populates='hoh_entries') #Checked
|
||||||
|
|
||||||
|
class Player_Castle_Designs(Base):
|
||||||
|
__tablename__ = "player_castle_designs"
|
||||||
|
id = sqla.Column(sqla.Integer,primary_key=True)
|
||||||
|
path = sqla.Column(sqla.String)
|
||||||
|
player_id = sqla.Column(sqla.Integer,sqla.ForeignKey("player.id"))
|
||||||
|
server_id = sqla.Column(sqla.Integer,sqla.ForeignKey("server.id"))
|
||||||
|
|
||||||
|
player = relationship("Player", back_populates="castle_designs") #Checked
|
||||||
|
server = relationship("Server") #Checked
|
||||||
|
|
||||||
|
class House_History(Base):
|
||||||
|
__tablename__ = 'house_history'
|
||||||
|
id = sqla.Column(sqla.Integer,primary_key=True)
|
||||||
|
date = sqla.Column(sqla.Date)
|
||||||
|
|
||||||
|
player_id = sqla.Column(sqla.Integer,sqla.ForeignKey("player.id"))
|
||||||
|
world_id = sqla.Column(sqla.Integer,sqla.ForeignKey("world.id"))
|
||||||
|
house_id = sqla.Column(sqla.Integer,sqla.ForeignKey("house.id"))
|
||||||
|
player = relationship("Player",back_populates='house_history') #Checked
|
||||||
|
world = relationship("World",back_populates='house_histories') #Checked
|
||||||
|
house = relationship("House") #Checked
|
||||||
|
|
||||||
|
class Liegelord_Requests(Base):
|
||||||
|
__tablename__ = 'liegelord_requests'
|
||||||
|
id = sqla.Column(sqla.Integer,primary_key=True)
|
||||||
|
village_id = sqla.Column(sqla.SmallInteger)
|
||||||
|
confirm_message_id = sqla.Column(sqla.BigInteger)
|
||||||
|
|
||||||
|
server_id = sqla.Column(sqla.Integer,sqla.ForeignKey("server.id"))
|
||||||
|
request_user_id = sqla.Column(sqla.Integer,sqla.ForeignKey('user.id'))
|
||||||
|
fulfilled_user_id = sqla.Column(sqla.Integer,sqla.ForeignKey('user.id'))
|
||||||
|
server = relationship("Server") #Checked
|
||||||
|
request_user = relationship("User",foreign_keys=[request_user_id])
|
||||||
|
fulfilled_user= relationship("User",foreign_keys=[fulfilled_user_id])
|
||||||
|
|
||||||
|
def create_session():
|
||||||
|
session = scoped_session(sessionmaker(bind=engine))
|
||||||
|
return session
|
Loading…
Reference in New Issue