২১.৯ : এপয়েন্টমেন্ট মডেল তৈরি

আজকে আসো আমরা আমাদের অ্যাপয়েনমেন্ট মডেল নিয়ে কাজ করবো। ফার্স্ট এ আসো একটু চিন্তা করি সেখানে কি কি থাকবে।

  • এখন পেশেন্ট মাল্টিপল অ্যাপয়েনমেন্ট নিতে পারবেন সো পেশেন্ট এর সাথে অ্যাপয়েনমেন্ট মডেল এর সম্পর্ক one to many

  • আবার একজন ডক্টর এর ও মাল্টিপল অ্যাপয়েনমেন্ট থাকতে পারে সো সেখানেও one to many সম্পর্ক।

  • তাইলে বাকি থাকলো ডক্টর এর available টাইম এই appointment নেওয়া সো available টাইম মডেল এর সাথে সম্পর্ক টা one to one কারণ একজন পেশেন্ট শুধু মাত্র একটাই মাত্র টাইম চুজ করতে পারবেন একটা পার্টিকুলার অ্যাপয়েনমেন্ট এর জন্যে।

  • আর অ্যাপয়েনমেন্ট স্ট্যাটাস থাকবে চয়েজ ফিল্ড যেমন completed, pending, running

  • আবার অ্যাপয়েনমেন্ট টাইপ ও হবে চয়েজ ফিল্ড যেমন offline, online। নিচের কোড টা খেয়াল করো।

from django.db import models
from patient.models import Patient
from doctor.models import Doctor, AvailableTime
# Create your models here.

APPOINTMENT_STATUS = [
    ('Completed', 'Completed'),
    ('Pending', 'Pending'),
    ('Running', 'Running'),
]
APPOINTMENT_TYPES = [
    ('Offline', 'Offline'),
    ('Online', 'Online'),
]
class Appointment(models.Model):
    patient = models.ForeignKey(Patient, on_delete = models.CASCADE)
    doctor = models.ForeignKey(Doctor, on_delete = models.CASCADE)
    appointment_types = models.CharField(choices = APPOINTMENT_TYPES, max_length = 10)
    appointment_status = models.CharField(choices = APPOINTMENT_STATUS, max_length = 10, default = "Pending")
    symptom = models.TextField()
    time = models.OneToOneField(AvailableTime, on_delete = models.CASCADE)
    cancel = models.BooleanField(default = False)
    
    def __str__(self):
        return f"Doctor : {self.doctor.user.first_name} , Patient : {self.patient.user.first_name}"

Last updated