Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/bavspeed/api/core/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/bavspeed/api/core/models.py

from django.db import models
from django.contrib.auth.models import AbstractUser, BaseUserManager


class UserManager(BaseUserManager):
    def create_superuser(self, email, password=None, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
        
        if extra_fields.get('is_staff') is not True:
            raise ValueError('Superuser must have is_staff=True.')
        if extra_fields.get('is_superuser') is not True:
            raise ValueError('Superuser must have is_superuser=True.')
        
        return self.create_user(email, password, **extra_fields)

class Company(models.Model):
    name = models.CharField(max_length=255)
    siret = models.CharField(max_length=100, unique=True, null=True, blank=True)
    address = models.CharField(max_length=255, default='', blank=True)
    logo = models.ImageField(upload_to='logos/', null=True, blank=True)  # ✅ Ajout du logo

    def __str__(self):
        return f"{self.name} ({self.siret})"


class PlanRetraite(models.Model):
    name = models.CharField(max_length=100)
    taux = models.DecimalField(max_digits=5, decimal_places=2, help_text="En pourcentage, ex: 5 pour 5%")
    description = models.TextField(blank=True)
    is_standard = models.BooleanField(default=False)

    def __str__(self):
        return f"{self.name} ({self.taux}%)"


class User(AbstractUser):
    EMPLOYER = 'EMPLOYER'
    EMPLOYEE = 'EMPLOYEE'
    ROLE_CHOICES = [
        (EMPLOYER, 'Employeur'),
        (EMPLOYEE, 'Employé'),
    ]

    email = models.EmailField(unique=True)
    role = models.CharField(max_length=10, choices=ROLE_CHOICES)
    company = models.ForeignKey(Company, null=True, blank=True, on_delete=models.SET_NULL)

    # Données perso pour les employés
    matricule = models.CharField(max_length=20, blank=True, null=True)
    sexe = models.CharField(max_length=1, choices=[('M', 'Masculin'), ('F', 'Féminin')], blank=True, null=True)
    date_naissance = models.DateField(null=True, blank=True)
    date_entree = models.DateField(null=True, blank=True)
    salaire = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    class Meta:
        db_table = 'custom_user'

    def __str__(self):
        return self.email


class EmployeeProfile(models.Model):
    SEXE_CHOICES = [('M', 'Masculin'), ('F', 'Féminin')]

    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee_profile')
    matricule = models.CharField(max_length=20, unique=True)
    sexe = models.CharField(max_length=1, choices=SEXE_CHOICES, null=True, blank=True)
    date_naissance = models.DateField(null=True, blank=True)
    hire_date = models.DateField()
    salary = models.DecimalField(max_digits=10, decimal_places=2)
    retirement_date = models.DateField(null=True, blank=True)

    company = models.ForeignKey(Company, on_delete=models.CASCADE, null=True, blank=True)
    plan_retraite = models.ForeignKey(PlanRetraite, on_delete=models.SET_NULL, null=True, blank=True)

    def __str__(self):
        return f"{self.user.get_full_name()} - {self.matricule}"


class Contribution(models.Model):
    employee = models.ForeignKey(EmployeeProfile, on_delete=models.CASCADE, related_name='contributions')
    amount = models.DecimalField(max_digits=10, decimal_places=2)
    date = models.DateField()
    fiscal_year = models.PositiveSmallIntegerField()

    def save(self, *args, **kwargs):
        self.fiscal_year = self.date.year
        super().save(*args, **kwargs)

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net