| from datetime import date | |
| from sqlmodel import Session | |
| from src.core.database import engine | |
| from src.core.models import Assets, EmotionLogs, Roles, Teams, Users, UserTeamsRole | |
| from src.feed.models import Comments, Likes, Posts | |
| def seed_users(session: Session): | |
| users = [ | |
| Users( | |
| email_id="[email protected]", | |
| password="hashed_pass1", | |
| user_name="Tilak", | |
| dob=date(2001, 5, 21), | |
| address="Chennai", | |
| profile_picture="tilak.png", | |
| ), | |
| Users( | |
| email_id="[email protected]", | |
| password="hashed_pass2", | |
| user_name="Arun", | |
| dob=date(2000, 8, 15), | |
| address="Bangalore", | |
| profile_picture="arun.png", | |
| ), | |
| ] | |
| session.add_all(users) | |
| session.commit() | |
| print("Users added.") | |
| return users | |
| def seed_teams(session: Session): | |
| teams = [ | |
| Teams(name="Development"), | |
| Teams(name="Marketing"), | |
| Teams(name="Design"), | |
| ] | |
| session.add_all(teams) | |
| session.commit() | |
| print("Teams added.") | |
| return teams | |
| def seed_roles(session: Session): | |
| roles = [ | |
| Roles(name="Admin"), | |
| Roles(name="Member"), | |
| Roles(name="Lead"), | |
| ] | |
| session.add_all(roles) | |
| session.commit() | |
| print("Roles added.") | |
| return roles | |
| def seed_user_teams_roles(session: Session, users, teams, roles): | |
| mappings = [ | |
| UserTeamsRole(user_id=users[0].id, team_id=teams[0].id, role_id=roles[0].id), | |
| UserTeamsRole(user_id=users[1].id, team_id=teams[1].id, role_id=roles[1].id), | |
| ] | |
| session.add_all(mappings) | |
| session.commit() | |
| print("User-Team-Role mappings added.") | |
| def seed_assets(session: Session, users): | |
| assets = [ | |
| Assets(user_id=users[0].id, name="MacBook Pro", type="Laptop"), | |
| Assets(user_id=users[1].id, name="Dell Monitor", type="Monitor"), | |
| ] | |
| session.add_all(assets) | |
| session.commit() | |
| print("Assets added.") | |
| return assets | |
| def seed_emotion_logs(session: Session, users): | |
| logs = [ | |
| EmotionLogs(user_id=users[0].id, morning_emotion=8, evening_emotion=6), | |
| EmotionLogs(user_id=users[1].id, morning_emotion=7, evening_emotion=8), | |
| ] | |
| session.add_all(logs) | |
| session.commit() | |
| print("Emotion logs added.") | |
| def seed_posts(session: Session, users): | |
| posts = [ | |
| Posts( | |
| user_id=users[0].id, | |
| caption="New sprint kickoff!", | |
| image="sprint.png", | |
| ), | |
| Posts( | |
| user_id=users[1].id, | |
| caption="Design updates rolling out soon!", | |
| image="design.png", | |
| ), | |
| ] | |
| session.add_all(posts) | |
| session.commit() | |
| print("Posts added.") | |
| return posts | |
| def seed_likes(session: Session, users, posts): | |
| likes = [ | |
| Likes(user_id=users[0].id, post_id=posts[1].id), | |
| Likes(user_id=users[1].id, post_id=posts[0].id), | |
| ] | |
| session.add_all(likes) | |
| session.commit() | |
| print("Likes added.") | |
| def seed_comments(session: Session, users, posts): | |
| comments = [ | |
| Comments(user_id=users[0].id, post_id=posts[1].id, comment="Looks great!"), | |
| Comments(user_id=users[1].id, post_id=posts[0].id, comment="Can’t wait!"), | |
| ] | |
| session.add_all(comments) | |
| session.commit() | |
| print("Comments added.") | |
| def run_all_seeds(): | |
| with Session(engine) as session: | |
| users = seed_users(session) | |
| teams = seed_teams(session) | |
| roles = seed_roles(session) | |
| seed_user_teams_roles(session, users, teams, roles) | |
| seed_assets(session, users) | |
| seed_emotion_logs(session, users) | |
| posts = seed_posts(session, users) | |
| seed_likes(session, users, posts) | |
| seed_comments(session, users, posts) | |
| print("All data seeded successfully!") | |
| if __name__ == "__main__": | |
| run_all_seeds() | |