File size: 3,862 Bytes
c0f9c82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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()