38515-vm/populate_data.py
2026-02-17 14:18:59 +00:00

97 lines
3.0 KiB
Python

import os
import django
import datetime
import random
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from core.models import Donor, BloodRequest, BloodBank
from django.utils import timezone
def run():
# Clear existing data
Donor.objects.all().delete()
BloodRequest.objects.all().delete()
BloodBank.objects.all().delete()
# Create Donors (Nepali Context)
donors_data = [
('Arjun Thapa', 'O+', 'Kathmandu', 'New Baneshwor', '9841000000', 'Fully Vaccinated', True),
('Sita Shrestha', 'A-', 'Lalitpur', 'Patan Durbar Square', '9841111111', 'Fully Vaccinated', True),
('Rajesh Hamal', 'B+', 'Bhaktapur', 'Suryabinayak', '9841222222', 'Partially Vaccinated', True),
('Bipana Thapa', 'AB+', 'Kaski', 'Lakeside, Pokhara', '9841333333', 'Fully Vaccinated', False),
('Nischal Basnet', 'O-', 'Rupandehi', 'Butwal', '9841444444', 'Not Vaccinated', False),
('Swastima Khadka', 'A+', 'Chitwan', 'Bharatpur', '9841555555', 'Fully Vaccinated', True),
]
for name, bg, dist, loc, ph, vac, ver in donors_data:
Donor.objects.create(
name=name,
blood_group=bg,
district=dist,
location=loc,
phone=ph,
is_available=True,
is_verified=ver,
citizenship_no=f"123-{random.randint(1000, 9999)}" if ver else None,
vaccination_status=vac,
last_vaccination_date=timezone.now().date() - datetime.timedelta(days=random.randint(30, 180))
)
# Create Blood Requests (Nepali Context)
BloodRequest.objects.create(
patient_name='Ram Bahadur',
blood_group='O+',
location='Teaching Hospital, Maharajgunj',
urgency='CRITICAL',
hospital='Teaching Hospital',
contact_number='9800000001'
)
BloodRequest.objects.create(
patient_name='Maya Devi',
blood_group='B+',
location='Bir Hospital, Kathmandu',
urgency='URGENT',
hospital='Bir Hospital',
contact_number='9800000002'
)
BloodRequest.objects.create(
patient_name='Hari Prasad',
blood_group='AB-',
location='Patan Hospital',
urgency='NORMAL',
hospital='Patan Hospital',
contact_number='9800000003'
)
# Create Blood Bank (Nepali Context)
BloodBank.objects.create(
name='Nepal Red Cross Society',
location='Soalteemode, Kathmandu',
contact_number='01-4270650',
is_24_7=True,
stock_o_plus=150,
stock_o_minus=45,
stock_a_plus=120,
stock_a_minus=30,
stock_b_plus=90,
stock_b_minus=20,
stock_ab_plus=40,
stock_ab_minus=15
)
BloodBank.objects.create(
name='Bhaktapur Blood Bank',
location='Dudhpati, Bhaktapur',
contact_number='01-6612266',
is_24_7=True,
stock_o_plus=60,
stock_a_plus=45,
stock_b_plus=30
)
print("Sample data populated successfully.")
if __name__ == "__main__":
run()