35228-vm/core/models.py
Flatlogic Bot 62acb941dc V1
2025-10-25 17:03:39 +00:00

86 lines
3.3 KiB
Python

from django.db import models
class Cliente(models.Model):
STATO_CHOICES = [
('Cliente', 'Cliente'),
('Prospect', 'Prospect'),
('Ex-Cliente', 'Ex-Cliente'),
]
CATEGORIA_CHOICES = [
('Privato', 'Privato'),
('Azienda', 'Azienda'),
]
Nome = models.CharField(max_length=100)
Cognome = models.CharField(max_length=100)
Codice_Fiscale = models.CharField(max_length=16, unique=True)
Email = models.EmailField()
Telefono = models.CharField(max_length=20)
Data_di_Nascita = models.DateField()
Lavoro = models.CharField(max_length=100)
Stato = models.CharField(max_length=20, choices=STATO_CHOICES)
Categoria = models.CharField(max_length=20, choices=CATEGORIA_CHOICES)
Importo_Portafoglio_Attuale = models.DecimalField(max_digits=15, decimal_places=2, default=0.00, editable=False)
def __str__(self):
return f"{self.Nome} {self.Cognome}"
class Portafoglio(models.Model):
PROFILO_RISCHIO_CHOICES = [
('Conservativo', 'Conservativo'),
('Bilanciato', 'Bilanciato'),
('Aggressivo', 'Aggressivo'),
]
cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE, related_name='portafogli')
Nome_Portafoglio = models.CharField(max_length=100)
Profilo_di_Rischio = models.CharField(max_length=20, choices=PROFILO_RISCHIO_CHOICES)
Composizione_Asset_Allocation = models.TextField(blank=True, null=True)
Data_Inizio = models.DateField()
Valore_Iniziale = models.DecimalField(max_digits=15, decimal_places=2)
Valore_Corrente = models.DecimalField(max_digits=15, decimal_places=2)
Note = models.TextField(blank=True, null=True)
def __str__(self):
return f"{self.Nome_Portafoglio} ({self.cliente})"
class Attivita(models.Model):
TIPO_CHOICES = [
('Chiamata', 'Chiamata'),
('Riunione', 'Riunione'),
('Email', 'Email'),
('To-Do', 'To-Do'),
('Avviso Cedola', 'Avviso Cedola'),
('Scadenza Obbligazione', 'Scadenza Obbligazione'),
('Revisione Annuale', 'Revisione Annuale'),
]
STATO_CHOICES = [
('Pianificato', 'Pianificato'),
('Completato', 'Completato'),
]
cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE, related_name='attivita')
Data = models.DateField()
Ora = models.TimeField(blank=True, null=True)
Tipo = models.CharField(max_length=30, choices=TIPO_CHOICES)
Stato = models.CharField(max_length=20, choices=STATO_CHOICES, default='Pianificato')
Note = models.TextField(blank=True, null=True)
def __str__(self):
return f"{self.Tipo} - {self.Data} - {self.cliente}"
class Documento(models.Model):
TIPO_CHOICES = [
('Contratto', 'Contratto'),
('KYC', 'KYC'),
('Report', 'Report'),
('Altro', 'Altro'),
]
cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE, related_name='documenti')
Nome_Documento = models.CharField(max_length=100)
Tipo = models.CharField(max_length=20, choices=TIPO_CHOICES)
Data_Caricamento = models.DateField(auto_now_add=True)
Data_di_Scadenza = models.DateField(blank=True, null=True)
File = models.FileField(upload_to='documenti/') # Placeholder, will be configured for S3
Condivisibile = models.BooleanField(default=False)
def __str__(self):
return f"{self.Nome_Documento} ({self.cliente})"