Repository navigation
Expand file tree
/
Copy pathseed_data.py
More file actions
71 lines (59 loc) · 2.6 KB
/
Copy pathseed_data.py
File metadata and controls
71 lines (59 loc) · 2.6 KB
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
from app import create_app
from models import db, User, Category, Complaint, ActivityLog, bcrypt
import uuid
import random
from datetime import datetime, timedelta
def seed_database():
app = create_app()
with app.app_context():
# Clear existing data (optional, careful in production!)
db.drop_all()
db.create_all()
print("Creating categories...")
categories = ['Hardware Issue', 'Software Issue', 'Network & Internet', 'HR & Payroll', 'Facilities']
category_objs = []
for cat_name in categories:
cat = Category(name=cat_name)
db.session.add(cat)
category_objs.append(cat)
db.session.commit()
print("Creating users...")
# Create Admin
admin_pw = bcrypt.generate_password_hash('admin123').decode('utf-8')
admin = User(username='admin', email='admin@example.com', password_hash=admin_pw, role='admin')
db.session.add(admin)
# Create Users
users = []
for i in range(1, 6):
pw = bcrypt.generate_password_hash('user123').decode('utf-8')
user = User(username=f'user{i}', email=f'user{i}@example.com', password_hash=pw, role='user')
db.session.add(user)
users.append(user)
db.session.commit()
print("Creating complaints...")
statuses = ['Pending', 'In Progress', 'Resolved', 'Rejected']
priorities = ['Low', 'Medium', 'High']
for i in range(20):
user = random.choice(users)
category = random.choice(category_objs)
status = random.choice(statuses)
priority = random.choice(priorities)
# Random date within last 30 days
random_days = random.randint(0, 30)
created_at = datetime.utcnow() - timedelta(days=random_days)
tracking_id = f"CMP-{uuid.uuid4().hex[:8].upper()}"
complaint = Complaint(
title=f'Sample Complaint {i+1}',
description=f'This is a detailed description for sample complaint {i+1}. The user has reported an issue regarding {category.name}.',
status=status,
priority=priority,
tracking_id=tracking_id,
user_id=user.id,
category_id=category.id,
created_at=created_at
)
db.session.add(complaint)
db.session.commit()
print("Database seeded successfully with dummy data!")
if __name__ == '__main__':
seed_database()