awards: add price_paid column and make kind column not nullable

pull/79/head
justcool393 2022-12-15 21:44:34 -06:00 committed by geese_suck
parent d31d9743ff
commit 8ad66f26ac
Signed by: geese_suck
GPG Key ID: 4D09E4B0A7264746
4 changed files with 77 additions and 4 deletions

View File

@ -16,9 +16,10 @@ class AwardRelationship(Base):
user_id = Column(Integer, ForeignKey("users.id"))
submission_id = Column(Integer, ForeignKey("submissions.id"))
comment_id = Column(Integer, ForeignKey("comments.id"))
kind = Column(String)
kind = Column(String, nullable=False)
awarded_utc = Column(Integer)
created_utc = Column(Integer)
price_paid = Column(Integer, default = 0, nullable=False)
user = relationship("User", primaryjoin="AwardRelationship.user_id==User.id", back_populates="awards")
post = relationship("Submission", primaryjoin="AwardRelationship.submission_id==Submission.id", back_populates="awards")

View File

@ -501,6 +501,8 @@ BADGE_BLACKLIST = { # only grantable by AEVANN_ID and SNAKES_ID except on PCM
NOTIFIED_USERS = {}
LOOTBOX_ITEM_COUNT = 5
if SITE == 'rdrama.net':
FEATURES['PRONOUNS'] = True
FEATURES['HOUSES'] = True

View File

@ -93,10 +93,10 @@ def buy(v:User, award):
if award == "lootbox":
lootbox_items = []
for i in range(5): # five items per lootbox
for _ in range(LOOTBOX_ITEM_COUNT): # five items per lootbox
lb_award = random.choice(["firework", "confetti", "ricardo", "wholesome", "shit", "fireflies", "scooter", "train"])
lootbox_items.append(AWARDS[lb_award]['title'])
lb_award = AwardRelationship(user_id=v.id, kind=lb_award)
lb_award = AwardRelationship(user_id=v.id, kind=lb_award, price_paid=price // LOOTBOX_ITEM_COUNT)
g.db.add(lb_award)
g.db.flush()
@ -112,7 +112,7 @@ def buy(v:User, award):
badge_grant(badge_id=78, user=v)
else:
award_object = AwardRelationship(user_id=v.id, kind=award)
award_object = AwardRelationship(user_id=v.id, kind=award, price_paid=price)
g.db.add(award_object)
g.db.add(v)

View File

@ -0,0 +1,70 @@
BEGIN
ALTER TABLE award_relationships ADD COLUMN price_paid NOT NULL DEFAULT 0;
ALTER TABLE award_relationships ALTER COLUMN kind SET NOT NULL;
-- populate existing awards, this should match the values in files/helpers/config/awards.py
-- deprecated
UPDATE award_relationships SET price_paid = 3000 WHERE kind = 'ghost';
UPDATE award_relationships SET price_paid = 10000 WHERE kind = 'nword';
-- fistmas 2021
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'snow';
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'gingerbread';
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'lights';
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'candycane';
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'fireplace';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'grinch';
-- homoween 2021 and 2022
UPDATE award_relationships SET price_paid = 500 WHERE kind = 'haunt';
UPDATE award_relationships SET price_paid = 400 WHERE kind = 'upsidedown';
UPDATE award_relationships SET price_paid = 300 WHERE kind = 'stab';
UPDATE award_relationships SET price_paid = 200 WHERE kind = 'spiders';
UPDATE award_relationships SET price_paid = 200 WHERE kind = 'fog';
-- homoween 2022
UPDATE award_relationships SET price_paid = 600 WHERE kind = 'jumpscare';
UPDATE award_relationships SET price_paid = 500 WHERE kind = 'hw-bite';
UPDATE award_relationships SET price_paid = 500 WHERE kind = 'hw-vax';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'hw-grinch';
UPDATE award_relationships SET price_paid = 400 WHERE kind = 'flashlight';
UPDATE award_relationships SET price_paid = 400 WHERE kind = 'candy-corn';
UPDATE award_relationships SET price_paid = 400 WHERE kind = 'ectoplasm';
UPDATE award_relationships SET price_paid = 200 WHERE kind = 'bones';
UPDATE award_relationships SET price_paid = 200 WHERE kind = 'pumpkin';
-- standard
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'marsify';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'shit';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'fireflies';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'train';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'scooter';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'wholesome';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'firework';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'confetti';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'ricardo';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'tilt';
UPDATE award_relationships SET price_paid = 150 WHERE kind = 'glowie';
UPDATE award_relationships SET price_paid = 777 WHERE kind = 'rehab';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'agendaposter';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'offsitementions';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'lootbox';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'beano';
UPDATE award_relationships SET price_paid = 1000 WHERE kind = 'unpin';
UPDATE award_relationships SET price_paid = 1250 WHERE kind = 'flairlock';
UPDATE award_relationships SET price_paid = 1500 WHERE kind = 'pin';
UPDATE award_relationships SET price_paid = 1500 WHERE kind = 'progressivestack';
UPDATE award_relationships SET price_paid = 1500 WHERE kind = 'pizzashill';
UPDATE award_relationships SET price_paid = 1500 WHERE kind = 'bird';
UPDATE award_relationships SET price_paid = 2000 WHERE kind = 'spider';
UPDATE award_relationships SET price_paid = 2750 WHERE kind = 'deflector';
UPDATE award_relationships SET price_paid = 3000 WHERE kind = 'marsey';
UPDATE award_relationships SET price_paid = 3000 WHERE kind = 'ban';
UPDATE award_relationships SET price_paid = 3500 WHERE kind = 'unban';
UPDATE award_relationships SET price_paid = 4000 WHERE kind = 'benefactor';
UPDATE award_relationships SET price_paid = 5000 WHERE kind = 'eye';
UPDATE award_relationships SET price_paid = 10000 WHERE kind = 'grass';
UPDATE award_relationships SET price_paid = 20000 WHERE kind = 'unblockable';
UPDATE award_relationships SET price_paid = 20000 WHERE kind = 'fish';
UPDATE award_relationships SET price_paid = 20000 WHERE kind = 'pause';
UPDATE award_relationships SET price_paid = 40000 WHERE kind = 'unpausable';
UPDATE award_relationships SET price_paid = 50000 WHERE kind = 'alt';
UPDATE award_relationships SET price_paid = 50000 WHERE kind = 'checkmark';
COMMIT