From 00a5a8c95550b8a72f7e33f67574181f05479193 Mon Sep 17 00:00:00 2001 From: RotichKipkoech Date: Thu, 31 Aug 2023 21:22:30 +0300 Subject: [PATCH] Completed Assignment --- lib/models.py | 34 +++++++++++++++++++++++----------- lib/seed.py | 13 +++++++++++++ 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/lib/models.py b/lib/models.py index 2681bee5a..34ad74941 100644 --- a/lib/models.py +++ b/lib/models.py @@ -9,21 +9,33 @@ Base = declarative_base(metadata=metadata) -class Company(Base): +class Company(db.Model): __tablename__ = 'companies' - id = Column(Integer(), primary_key=True) - name = Column(String()) - founding_year = Column(Integer()) + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String, nullable=False) + founding_year = db.Column(db.Integer, nullable=False) - def __repr__(self): - return f'' + def give_freebie(self, dev, item_name, value): + freebie = Freebie(dev=dev, company=self, item_name=item_name, value=value) + db.session.add(freebie) + db.session.commit() -class Dev(Base): + @classmethod + def oldest_company(cls): + return cls.query.order_by(cls.founding_year).first() + +class Dev(db.Model): __tablename__ = 'devs' - id = Column(Integer(), primary_key=True) - name= Column(String()) + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String, nullable=False) + + def received_one(self, item_name): + return any(freebie.item_name == item_name for freebie in self.freebies) + + def give_away(self, other_dev, freebie): + if freebie.dev == self: + freebie.dev = other_dev + db.session.commit() - def __repr__(self): - return f'' diff --git a/lib/seed.py b/lib/seed.py index b16becbbb..c87324e2c 100644 --- a/lib/seed.py +++ b/lib/seed.py @@ -1,3 +1,16 @@ #!/usr/bin/env python3 # Script goes here! +from app import db, Company, Dev + +def create_sample_data(): + company1 = Company(name='Company A', founding_year=2000) + company2 = Company(name='Company B', founding_year=2010) + dev1 = Dev(name='Developer 1') + dev2 = Dev(name='Developer 2') + + db.session.add_all([company1, company2, dev1, dev2]) + db.session.commit() + +if __name__ == '__main__': + create_sample_data()