models.py 1.2 KB

123456789101112131415161718192021222324252627
  1. from django.db import models
  2. from reymotausers.models import ReyMotaUser
  3. class Cuenta(models.Model):
  4. TIPO_CUENTA_CHOICES = (
  5. ('ingreso', 'Ingreso'),
  6. ('gasto', 'Gasto'),
  7. )
  8. nombre = models.CharField(max_length=100)
  9. tipo = models.CharField(max_length=10, choices=TIPO_CUENTA_CHOICES)
  10. saldo = models.DecimalField(max_digits=10, decimal_places=2, default=0.0)
  11. usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
  12. favorita = models.BooleanField(default=False)
  13. def __str__(self):
  14. return f"{self.nombre} ({self.tipo})"
  15. class Movimiento(models.Model):
  16. usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
  17. cuenta_origen = models.ForeignKey(Cuenta, on_delete=models.CASCADE, related_name='movimientos_salida', default=1)
  18. cuenta_destino = models.ForeignKey(Cuenta, on_delete=models.CASCADE, related_name='movimientos_entrada', default=1)
  19. monto = models.DecimalField(max_digits=10, decimal_places=2)
  20. fecha = models.DateField()
  21. descripcion = models.TextField(blank=True, null=True)
  22. def __str__(self):
  23. return f"{self.cuenta_origen.nombre} → {self.cuenta_destino.nombre} - {self.monto} ({self.fecha})"