File size: 3,497 Bytes
66536b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from src.auth.utils import hash_password
from datetime import date
from sqlmodel import Session

from src.core.database import engine
from src.core.models import Users, Teams, Roles, UserTeamsRole


# ------------------------
# 1. Seed Users
# ------------------------
def seed_users(session: Session):
    users = [
        Users(
            email_id="ragul@yuvabe.com",
            password=hash_password("Yuvabe"),
            user_name="ragul",
            dob=date(2001, 5, 21),
            address="Chennai",
            profile_picture="ragul.png",
        ),
        Users(
            email_id="shri@yuvabe.com",
            password=hash_password("Yuvabe"),
            user_name="Shri",
            dob=date(1999, 3, 14),
            address="Chennai",
            profile_picture="shri.png",
        ),
        Users(
            email_id="hryuva@yuvabe.com",
            password=hash_password("Yuvabe"),
            user_name="Sathish",
            dob=date(1998, 7, 10),
            address="Chennai",
            profile_picture="Sathish.png",
        ),
        Users(
            email_id="hr2@yuvabe.com",
            password=hash_password("Yuvabe"),
            user_name="Deepika",
            dob=date(1997, 2, 5),
            address="Chennai",
            profile_picture="deepika.png",
        ),
    ]

    session.add_all(users)
    session.commit()
    print("Users added.")
    return users


# ------------------------
# 2. Seed Teams
# ------------------------
def seed_teams(session: Session):
    teams = [
        Teams(name="Tech Team"),
        Teams(name="HR Team"),
    ]
    session.add_all(teams)
    session.commit()
    print("Teams added.")
    return teams


# ------------------------
# 3. Seed Roles
# ------------------------
def seed_roles(session: Session):
    roles = [
        Roles(name="Developer"),
        Roles(name="Team Lead"),
        Roles(name="HR Manager"),
    ]
    session.add_all(roles)
    session.commit()
    print("Roles added.")
    return roles


# ------------------------
# 4. Map Users → Teams → Roles
# ------------------------
def seed_user_teams_roles(session: Session, users, teams, roles):
    mappings = [
        # Hari → Tech Team → Developer
        UserTeamsRole(
            user_id=users[0].id,  # Hari
            team_id=teams[0].id,  # Tech Team
            role_id=roles[0].id,  # Developer
        ),
        # Shri → Tech Team → Team Lead
        UserTeamsRole(
            user_id=users[1].id,  # Shri
            team_id=teams[0].id,  # Tech Team
            role_id=roles[1].id,  # Team Lead
        ),
        # HR Keerthana
        UserTeamsRole(
            user_id=users[2].id,  # Keerthana
            team_id=teams[1].id,  # HR Team
            role_id=roles[2].id,  # HR Manager
        ),
        # HR Deepika
        UserTeamsRole(
            user_id=users[3].id,  # Deepika
            team_id=teams[1].id,  # HR Team
            role_id=roles[2].id,  # HR Manager
        ),
    ]

    session.add_all(mappings)
    session.commit()
    print("User-Team-Role mappings added.")


# ------------------------
# 5. Master Runner
# ------------------------
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)
        print("All data seeded successfully!")


if __name__ == "__main__":
    run_all_seeds()