From abf9df6c9e7e65e69f42612cb7a7073a08b91024 Mon Sep 17 00:00:00 2001 From: Grace Odongo Date: Mon, 1 Dec 2025 07:42:05 +0300 Subject: [PATCH] new --- lib/freebies.db | Bin 20480 -> 24576 bytes lib/models.py | 25 ++++++++++++++++++++++++- lib/seed.py | 23 +++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/lib/freebies.db b/lib/freebies.db index 12beb1c963e832db481e7a7493e3029e691ac4dc..e316c095d498fb82b9e820ce4b2a6804d39a21dd 100644 GIT binary patch delta 538 zcmZozz}Rqrae}lUHvwp1f~aBzH~%14Pj^2BZ`Vi-h`6RgkgJ<(kgK1wYp?=X zjYejQCLZGu7RN)FKyNA-BO8oRfnqp9HOK}o&CODLw*+~Tl8lWlObk;j%@fl$DSY9V zKo;NyhCdVkBL@DD{Es#Z3S8sY;$>oCkY;j*c%JPu^_7MG4OxjzXvq+62FoF6B~mxBO_yQNoI0(Y7r|F6CWc;gp(5{ F0ststm_q;n delta 120 zcmZoTz}T>Wae}lUD+2=q2*UvLL>*&MRtCLzSzi7h3@m(74E((OJNfGQq&5o*EaTlQ r#dk}P$285{DB08^Db2(pd6U8yej#K5UXW1&K-Ks8Cr*%NL*)VhkJ1_o diff --git a/lib/models.py b/lib/models.py index 2681bee5a..d95a04bcc 100644 --- a/lib/models.py +++ b/lib/models.py @@ -1,4 +1,4 @@ -from sqlalchemy import ForeignKey, Column, Integer, String, MetaData +from sqlalchemy import ForeignKey, Column, Integer, String, MetaData, create_engine from sqlalchemy.orm import relationship, backref from sqlalchemy.ext.declarative import declarative_base @@ -16,6 +16,8 @@ class Company(Base): name = Column(String()) founding_year = Column(Integer()) + freebies = relationship('Freebie', back_populates='company') + def __repr__(self): return f'' @@ -25,5 +27,26 @@ class Dev(Base): id = Column(Integer(), primary_key=True) name= Column(String()) + freebies = relationship('Freebie', back_populates='dev') + def __repr__(self): return f'' + +class Freebie(Base): + __tablename__ = 'freebies' + + id=Column(Integer(), primary_key=True) + item_name = Column(String()) + value = Column(Integer()) + + dev_id = Column(Integer(), ForeignKey('devs.id')) + company_id = Column(Integer(), ForeignKey('companies.id')) + + dev = relationship('Dev', back_populates='freebies') + company = relationship('Company', back_populates='freebies') + + def __repr__(self): + return f'' + +engine = create_engine('sqlite:///freebies.db', echo=False) +Base.metadata.create_all(engine) \ No newline at end of file diff --git a/lib/seed.py b/lib/seed.py index b16becbbb..9318606c2 100644 --- a/lib/seed.py +++ b/lib/seed.py @@ -1,3 +1,26 @@ #!/usr/bin/env python3 # Script goes here! +from sqlalchemy.orm import sessionmaker +from models import Company, Dev, Freebie, engine + +Session = sessionmaker(bind=engine) +session = Session() + + +c = Company(name='Company', founding_year=2026) +d = Dev(name='Grace') + +session.add_all([c, d]) +session.commit() + + +f = Freebie(item_name='Sticker', value=5, dev=d, company=c) +session.add(f) +session.commit() + + +print(d.freebies) +print(c.freebies) +print(f.dev.name) +print(f.company.name)