from django.db import models
from common.base_models import BaseModel
from apps.client.models import Client
from apps.vendor.models import Vendor
from apps.consultant.models import Consultant
from apps.contractor.models import Contractor
from apps.project.managers.project_manager import ProjectManager



class Project(BaseModel):
    name = models.CharField(max_length=255)
    client = models.ForeignKey(Client, on_delete=models.CASCADE)
    address = models.CharField(max_length=255, null=True, blank=True)
    note = models.TextField(null=True)
    budget = models.FloatField(null=True, blank=True)
    vendors = models.ManyToManyField(Vendor, related_name='project_vendors', blank=True)
    consultants = models.ManyToManyField(Consultant, related_name='project_consultants', blank=True)
    contractors = models.ManyToManyField(Contractor, related_name='project_contractors', blank=True)
    description = models.TextField(null=True, blank=True)
    minutes_of_meeting = models.TextField(null=True)

    objects = ProjectManager()

    class Meta:
        db_table = 'projects'