File size: 6,223 Bytes
b4c2b4c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/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]