chat_bodacc / models.py
rdassignies's picture
Upload 7 files
b4c2b4c verified
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 28 10:32:52 2023
@author: raphael
"""
import json
from typing import List, Optional, Dict
from pydantic import BaseModel, Field, UUID4
from enum import Enum, unique
@unique
class FamilleJugement(str, Enum):
ARRET_APPEL = "Arrêt de la Cour d'Appel"
AVIS_DEPOT = 'Avis de dépôt'
EXTRAIT_JUGEMENT = 'Extrait de jugement'
JUGEMENT_OUVERTURE_ouverture = "Jugement d'ouverture"
JUGEMENT_CLOTURE = 'Jugement de clôture'
JUGEMENT = 'Jugement prononçant'
@unique
class NatureJugement(str, Enum):
ARRET_COUR_APPEL_INFIRMANT = "Arrêt de la cour d'appel infirmant une décision soumise à publicité"
AUTRE_ARRET_COUR_APPEL = "Autre arrêt de la Cour d'Appel"
AUTRE_AVIS_DE_DEPOT = "Autre avis de dépôt"
AUTRE_JUGEMENT_OUVERTURE = "Autre jugement d'ouverture"
AUTRE_JUGEMENT_CLOTURE = "Autre jugement de clôture"
AUTRE_JUGEMENT_ORDONNANCE = "Autre jugement et ordonnance"
AUTRE_JUGEMENT_PRONONCANT = "Autre jugement prononçant"
DEPOT_ETAT_COLLOCATION = "Dépôt de l'état de collocation"
DEPOT_ETAT_CREANCES = "Dépôt de l'état des créances"
DEPOT_ETAT_CREANCES_1985 = "Dépôt de l'état des créances Loi de 1985"
DEPOT_PROJET_REPARTITION = "Dépôt du projet de répartition"
JUGEMENT_PLAN_SAUVEGARDE = "Jugement arrêtant le plan de sauvegarde"
JUGEMENT_PLAN_CESSION = "Jugement arrêtant un plan de cession"
EXTENSION_LIQUIDATION_JUDICIAIRE = "Jugement d'extension de liquidation judiciaire"
INTERDICTION_GERER = "Jugement d'interdiction de gérer"
OUVERTURE_PROCEDURE_RESTRUCTURATION = "Jugement d'ouverture d'une procédure de redressement judiciaire"
OUVERTURE_PROCEDURE_SAUVEGARDE = "Jugement d'ouverture d'une procédure de sauvegarde"
OUVERTURE_LIQUIDATION_JUDICIAIRE = "Jugement d'ouverture de liquidation judiciaire"
CLOTURE_PROCEDURE_SAUVEGARDE = "Jugement de clôture de la procédure de sauvegarde"
CLOTURE_EXTINCTION_PASSIF = "Jugement de clôture pour extinction du passif"
CLOTURE_INSUFFISANCE_ACTIF = "Jugement de clôture pour insuffisance d'actif"
CONVERSION_LIQUIDATION_JUDICIAIRE = "Jugement de conversion en liquidation judiciaire"
CONVERSION_LIQUIDATION_SAUVEGARDE = "Jugement de conversion en liquidation judiciaire de la procédure de sauvegarde"
CONVERSION_RESTRUCTURATION_SAUVEGARDE = "Jugement de conversion en redressement judiciaire de la procédure de sauvegarde"
JUGEMENT_FAILLITE_PERSONNELLE = "Jugement de faillite personnelle"
JUGEMENT_PLAN_RESTRUCTURATION = "Jugement de plan de redressement"
REPRISE_PROCEDURE_LIQUIDATION = "Jugement de reprise de la procédure de liquidation judiciaire"
FIN_PROCEDURE_RESTRUCTURATION = "Jugement mettant fin à la procédure de redressement judiciaire"
FIN_PROCEDURE_SAUVEGARDE = "Jugement mettant fin à la procédure de sauvegarde"
MODIFICATION_DATE_CESSATION_PAIEMENTS = "Jugement modifiant la date de cessation des paiements"
MODIFICATION_PLAN_RESTRUCTURATION = "Jugement modifiant le plan de redressement"
MODIFICATION_PLAN_SAUVEGARDE = "Jugement modifiant le plan de sauvegarde"
MODIFICATION_PLAN_TRAITEMENT_SORTIE_CRISE = "Jugement modifiant le plan de traitement de sortie de crise"
RESOLUTION_PLAN_RESTRUCTURATION_LIQUIDATION = "Jugement prononçant la résolution du plan de redressement et la liquidation judiciaire"
RESOLUTION_PLAN_SAUVEGARDE_LIQUIDATION = "Jugement prononçant la résolution du plan de sauvegarde et la liquidation judiciaire"
RESOLUTION_PLAN_SAUVEGARDE_RESTRUCTURATION = "Jugement prononçant la résolution du plan de sauvegarde et le redressement judiciaire"
RESOLUTION_PLAN_SORTIE_CRISE_LIQUIDATION = "Jugement prononçant la résolution du plan de traitement de sortie de crise et la liquidation judiciaire"
LISTE_CREANCES_POST_OUVERTURE_LIQUIDATION = "Liste des créances nées après le jugement d'ouverture d'une procédure de liquidation judiciaire"
LISTE_CREANCES_POST_OUVERTURE_RESTRUCTURATION = "Liste des créances nées après le jugement d'ouverture d'une procédure de redressement judiciaire"
# Méthode pour obtenir l'énumération à partir de la chaîne
@staticmethod
def from_string(s):
for member in NatureJugement:
if member.value == s:
return member
raise ValueError(f"{s} n'est pas une valeur valide de TypeJugement")
class Personne(BaseModel):
typePersonne: str
numeroImmatriculation: Optional[Dict] = Field(default=None)
denomination: Optional[str] = Field(default=None)
activite: Optional[str] = Field(default=None)
formeJuridique: Optional[str] = Field(default=None)
adresseSiegeSocial: Optional[Dict] = Field(default=None)
class Jugement(BaseModel):
type:Optional[str] = None
famille:Optional[str] = None
nature:Optional[str] = None
#nature: NatureJugement = None
date: Optional[str] = None
complementJugement: Optional[str] = None
class Annonce(BaseModel):
#uuid: UUID4
publicationavis: Optional[str]
publicationavis_facette: Optional[str]
parution: Optional[int]
dateparution: Optional[str]
numeroannonce: int
typeavis: Optional[str]
typeavis_lib: Optional[str]
familleavis: Optional[str]
familleavis_lib: Optional[str]
numerodepartement: Optional[str]
departement_nom_officiel: Optional[str]
region_code: int
region_nom_officiel: Optional[str]
tribunal: Optional[str]
commercant: Optional[str]
ville: Optional[str]
registre: Optional[List[str]] # Rendre le champ optionnel
cp: Optional[str]
pdf_parution_subfolder: int
ispdf_unitaire: str
listepersonnes: Optional[List[Personne]] # Liste d'instances de Personne
listeetablissements: Optional[None]
jugement: Optional[Jugement] # JSON string or None
acte: Optional[None]
modificationsgenerales: Optional[None]
radiationaurcs: Optional[None]
depot: Optional[None]
listeprecedentexploitant: Optional[None]
listeprecedentproprietaire: Optional[None]
divers: Optional[None]
parutionavisprecedent: Optional[None]