2019-03-18 15:57:45 +00:00
|
|
|
from Houdini.Data import db
|
|
|
|
|
|
|
|
|
|
|
|
class Penguin(db.Model):
|
|
|
|
__tablename__ = 'penguin'
|
|
|
|
|
|
|
|
ID = db.Column(db.Integer, primary_key=True, server_default=db.text("nextval('\"penguin_ID_seq\"'::regclass)"))
|
|
|
|
Username = db.Column(db.String(12), nullable=False, unique=True)
|
|
|
|
Nickname = db.Column(db.String(30), nullable=False)
|
|
|
|
Password = db.Column(db.CHAR(255), nullable=False)
|
|
|
|
Email = db.Column(db.String(255), nullable=False, index=True)
|
|
|
|
RegistrationDate = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
Active = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
SafeChat = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
LastPaycheck = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
MinutesPlayed = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
Moderator = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
Character = db.Column(db.ForeignKey('character.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Igloo = db.Column(db.ForeignKey('penguin_igloo_room.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Coins = db.Column(db.Integer, nullable=False, server_default=db.text("500"))
|
|
|
|
Color = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Head = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Face = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Neck = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Body = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Hand = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Feet = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Photo = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Flag = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'))
|
|
|
|
Permaban = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
BookModified = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
BookColor = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
|
|
|
|
BookHighlight = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
|
|
|
|
BookPattern = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
BookIcon = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
|
|
|
|
AgentStatus = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
FieldOpStatus = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
CareerMedals = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
AgentMedals = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
LastFieldOp = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
NinjaRank = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
NinjaProgress = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
FireNinjaRank = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
FireNinjaProgress = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
WaterNinjaRank = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
WaterNinjaProgress = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
NinjaMatchesWon = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
FireMatchesWon = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
WaterMatchesWon = db.Column(db.Integer, nullable=False, server_default=db.text("0"))
|
|
|
|
RainbowAdoptability = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
HasDug = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
Nuggets = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
TimerActive = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
TimerStart = db.Column(db.Time, nullable=False, server_default=db.text("'00:00:00'::time without time zone"))
|
|
|
|
TimerEnd = db.Column(db.Time, nullable=False, server_default=db.text("'23:59:59'::time without time zone"))
|
|
|
|
ApprovalEn = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
ApprovalPt = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
ApprovalFr = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
ApprovalEs = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
ApprovalDe = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
ApprovalRu = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionEn = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionPt = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionFr = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionEs = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionDe = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
RejectionRu = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
|
2019-04-26 23:12:42 +00:00
|
|
|
@property
|
|
|
|
def approval(self):
|
|
|
|
return int('{}{}0{}{}{}{}'.format(self.ApprovalRu * 1, self.ApprovalDe * 1, self.ApprovalEs * 1,
|
|
|
|
self.ApprovalFr * 1, self.ApprovalPt * 1, self.ApprovalEn * 1), 2)
|
|
|
|
|
2019-03-18 15:57:45 +00:00
|
|
|
|
|
|
|
class ActivationKey(db.Model):
|
|
|
|
__tablename__ = 'activation_key'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
ActivationKey = db.Column(db.CHAR(255), primary_key=True, nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
class PuffleQuest(db.Model):
|
|
|
|
__tablename__ = 'puffle_quest'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
TaskID = db.Column(db.SmallInteger, primary_key=True, nullable=False)
|
|
|
|
CompletionDate = db.Column(db.DateTime)
|
|
|
|
ItemCollected = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
CoinsCollected = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
|
|
|
|
|
2019-04-25 16:12:29 +00:00
|
|
|
class PenguinIgloo(db.Model):
|
|
|
|
__tablename__ = 'penguin_igloo'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
IglooID = db.Column(db.ForeignKey('igloo.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinItem(db.Model):
|
|
|
|
__tablename__ = 'penguin_item'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'),
|
|
|
|
primary_key=True, nullable=False)
|
|
|
|
ItemID = db.Column(db.ForeignKey('item.ID', ondelete='CASCADE', onupdate='CASCADE'),
|
|
|
|
primary_key=True, nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinLocation(db.Model):
|
|
|
|
__tablename__ = 'penguin_location'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
LocationID = db.Column(db.ForeignKey('location.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
2019-03-18 15:57:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
class PenguinStamp(db.Model):
|
|
|
|
__tablename__ = 'penguin_stamp'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
StampID = db.Column(db.ForeignKey('stamp.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
Recent = db.Column(db.Boolean, nullable=False, server_default=db.text("true"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinRedemption(db.Model):
|
|
|
|
__tablename__ = 'penguin_redemption'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
CodeID = db.Column(db.ForeignKey('redemption_code.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False, index=True)
|
|
|
|
BookID = db.Column(db.ForeignKey('redemption_book.ID', ondelete='CASCADE', onupdate='CASCADE'), index=True)
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinMembership(db.Model):
|
|
|
|
__tablename__ = 'penguin_membership'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
Start = db.Column(db.DateTime, primary_key=True, nullable=False)
|
|
|
|
End = db.Column(db.DateTime, primary_key=True, nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinPostcard(db.Model):
|
|
|
|
__tablename__ = 'penguin_postcard'
|
|
|
|
|
|
|
|
ID = db.Column(db.Integer, primary_key=True,
|
|
|
|
server_default=db.text("nextval('\"penguin_postcard_ID_seq\"'::regclass)"))
|
|
|
|
SenderID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), index=True)
|
|
|
|
RecipientID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False,
|
|
|
|
index=True)
|
|
|
|
PostcardID = db.Column(db.ForeignKey('postcard.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
SendDate = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
Details = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying"))
|
|
|
|
HasRead = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinIglooRoom(db.Model):
|
|
|
|
__tablename__ = 'penguin_igloo_room'
|
|
|
|
|
|
|
|
ID = db.Column(db.Integer, primary_key=True,
|
|
|
|
server_default=db.text("nextval('\"penguin_igloo_room_ID_seq\"'::regclass)"))
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Type = db.Column(db.ForeignKey('igloo.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Flooring = db.Column(db.ForeignKey('flooring.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Music = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
Location = db.Column(db.ForeignKey('location.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Locked = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinLaunchGame(db.Model):
|
|
|
|
__tablename__ = 'penguin_launch_game'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
Level = db.Column(db.SmallInteger, primary_key=True, nullable=False, server_default=db.text("0"))
|
|
|
|
PuffleOs = db.Column(db.SmallInteger, nullable=False, server_default=db.text("0"))
|
|
|
|
BestTime = db.Column(db.SmallInteger, nullable=False, server_default=db.text("600"))
|
|
|
|
Turbo = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinCard(db.Model):
|
|
|
|
__tablename__ = 'penguin_card'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False, index=True)
|
|
|
|
CardID = db.Column(db.ForeignKey('card.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
Quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinFurniture(db.Model):
|
|
|
|
__tablename__ = 'penguin_furniture'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
FurnitureID = db.Column(db.ForeignKey('furniture.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
Quantity = db.Column(db.SmallInteger, nullable=False, server_default=db.text("1"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinPuffle(db.Model):
|
|
|
|
__tablename__ = 'penguin_puffle'
|
|
|
|
|
|
|
|
ID = db.Column(db.Integer, primary_key=True,
|
|
|
|
server_default=db.text("nextval('\"penguin_puffle_ID_seq\"'::regclass)"))
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Name = db.Column(db.String(16), nullable=False)
|
|
|
|
AdoptionDate = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
Type = db.Column(db.ForeignKey('puffle.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Food = db.Column(db.SmallInteger, nullable=False, server_default=db.text("100"))
|
|
|
|
Play = db.Column(db.SmallInteger, nullable=False, server_default=db.text("100"))
|
|
|
|
Rest = db.Column(db.SmallInteger, nullable=False, server_default=db.text("100"))
|
|
|
|
Clean = db.Column(db.SmallInteger, nullable=False, server_default=db.text("100"))
|
|
|
|
Walking = db.Column(db.Boolean, server_default=db.text("false"))
|
|
|
|
Hat = db.Column(db.ForeignKey('puffle_item.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Backyard = db.Column(db.Boolean, server_default=db.text("false"))
|
|
|
|
HasDug = db.Column(db.Boolean, server_default=db.text("false"))
|
|
|
|
|
|
|
|
|
|
|
|
class PenguinPuffleItem(db.Model):
|
|
|
|
__tablename__ = 'penguin_puffle_item'
|
|
|
|
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), primary_key=True,
|
|
|
|
nullable=False)
|
|
|
|
ItemID = db.Column(db.Integer, primary_key=True, nullable=False)
|
|
|
|
Quantity = db.Column(db.SmallInteger, nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
class Login(db.Model):
|
|
|
|
__tablename__ = 'login'
|
|
|
|
|
|
|
|
ID = db.Column(db.Integer, primary_key=True, server_default=db.text("nextval('\"login_ID_seq\"'::regclass)"))
|
|
|
|
PenguinID = db.Column(db.ForeignKey('penguin.ID', ondelete='CASCADE', onupdate='CASCADE'), nullable=False)
|
|
|
|
Date = db.Column(db.DateTime, nullable=False, server_default=db.text("now()"))
|
|
|
|
IPAddress = db.Column(db.CHAR(255), nullable=False)
|