diff --git a/pom.xml b/pom.xml index 384780f..9375d26 100755 --- a/pom.xml +++ b/pom.xml @@ -73,6 +73,7 @@ runtime + net.sf.jasperreports jasperreports @@ -155,7 +156,14 @@ 1.7.6 - + + org.apache.httpcomponents.client5 + httpclient5 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + diff --git a/src/main/java/io/gmss/fiscad/configuration/ApplicationConfig.java b/src/main/java/io/gmss/fiscad/configuration/ApplicationConfig.java index 88bf47c..21c6797 100644 --- a/src/main/java/io/gmss/fiscad/configuration/ApplicationConfig.java +++ b/src/main/java/io/gmss/fiscad/configuration/ApplicationConfig.java @@ -1,9 +1,13 @@ package io.gmss.fiscad.configuration; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import io.gmss.fiscad.security.CustomUserDetailsService; import io.gmss.fiscad.security.JwtAuthenticationFilter; import lombok.RequiredArgsConstructor; import org.modelmapper.ModelMapper; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; @@ -63,4 +67,7 @@ public class ApplicationConfig { return authenticationManagerBuilder.build(); } + + + } diff --git a/src/main/java/io/gmss/fiscad/configuration/RestTemplateConfig.java b/src/main/java/io/gmss/fiscad/configuration/RestTemplateConfig.java new file mode 100644 index 0000000..7839d2c --- /dev/null +++ b/src/main/java/io/gmss/fiscad/configuration/RestTemplateConfig.java @@ -0,0 +1,48 @@ +package io.gmss.fiscad.configuration; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + + @Bean + public ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + return mapper; + } + + @Bean + public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() { + return builder -> { + builder.modules(new JavaTimeModule()); + builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + }; + } + + @Bean + public RestTemplate restTemplate(ObjectMapper mapper) { + + mapper.registerModule(new JavaTimeModule()); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + + MappingJackson2HttpMessageConverter converter = + new MappingJackson2HttpMessageConverter(mapper); + + RestTemplate restTemplate = new RestTemplate(); + restTemplate.getMessageConverters().removeIf( + c -> c instanceof MappingJackson2HttpMessageConverter + ); + restTemplate.getMessageConverters().add(converter); + + return restTemplate; + } +} diff --git a/src/main/java/io/gmss/fiscad/configuration/SecurityConfig.java b/src/main/java/io/gmss/fiscad/configuration/SecurityConfig.java new file mode 100755 index 0000000..fb00672 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/configuration/SecurityConfig.java @@ -0,0 +1,120 @@ +//package io.gmss.fiscad.configuration; +// +//import com.backend.api.security.CustomUserDetailsService; +//import com.backend.api.security.JwtAuthenticationEntryPoint; +//import com.backend.api.security.JwtAuthenticationFilter; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.http.HttpMethod; +//import org.springframework.security.authentication.AuthenticationManager; +//import org.springframework.security.config.BeanIds; +//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +//import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +//import org.springframework.security.config.annotation.web.builders.HttpSecurity; +//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +//import org.springframework.security.config.http.SessionCreationPolicy; +//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +//import org.springframework.security.crypto.password.PasswordEncoder; +//import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +// +//@Configuration +//@EnableWebSecurity // active la sécurité web sur le projet +//@EnableGlobalMethodSecurity( // est utilisé pour définir la sécurité sur les méthodes +// securedEnabled = true, // est activé pour protéger un controlleur ou un service +// jsr250Enabled = true, // active le role qui doit être utilisé +// prePostEnabled = true // active le controle avant et après l'execution de la requête +//) +//public class SecurityConfig extends WebSecurityConfigurerAdapter { +// +// /** +// * Est utilisé pour authentifier un utlisateur ou pour définir un role +// */ +// @Autowired +// CustomUserDetailsService customUserDetailsService; +// +// @Autowired +// private JwtAuthenticationEntryPoint unauthorizedHandler; +// +// @Bean +// public JwtAuthenticationFilter jwtAuthenticationFilter() { +// return new JwtAuthenticationFilter(); +// } +// +// +// +// private static final String[] AUTH_WHITELIST = { +// +// // -- swagger ui +// "/swagger-resources/**", +// "/swagger-ui.html", +// "/v3/api-docs", +// "/swagger-ui/**", +// "/webjars/**", +// "/api/**", +//// "/api/synonym/**", +// "/api/auth/**" +// }; +// @Override +// public void configure(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { +// authenticationManagerBuilder +// .userDetailsService(customUserDetailsService) +// .passwordEncoder(passwordEncoder()); +// } +// +// @Bean(BeanIds.AUTHENTICATION_MANAGER) +// @Override +// public AuthenticationManager authenticationManagerBean() throws Exception { +// return super.authenticationManagerBean(); +// } +// +// @Bean +// public PasswordEncoder passwordEncoder() { +// return new BCryptPasswordEncoder(); +// } +// +// /** +// * +// * @param http +// * @throws Exception +// */ +// @Override +// protected void configure(HttpSecurity http) throws Exception { +// http +// .cors() +// .and() +// .csrf() +// .disable() +// .exceptionHandling() +// .authenticationEntryPoint(unauthorizedHandler) +// .and() +// .sessionManagement() +// .sessionCreationPolicy(SessionCreationPolicy.STATELESS) +// .and() +// .authorizeRequests() +// .antMatchers("/", +// "/favicon.ico", +// "/**/*.png", +// "/**/*.gif", +// "/**/*.svg", +// "/**/*.jpg", +// "/**/*.html", +// "/**/*.css", +// "/**/*.js") +// .permitAll() +// .antMatchers(AUTH_WHITELIST).permitAll() +// .antMatchers("/api/auth/**") +// .permitAll() +// .antMatchers("/api/user/checkUsernameAvailability", "/api/user/checkEmailAvailability") +// .permitAll() +// .antMatchers(HttpMethod.GET, "/api/polls/**", "/api/users/**") +// .permitAll() +// .anyRequest() +// .authenticated(); +// +// // Add our custom JWT security filter +// http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); +// +// } +//} diff --git a/src/main/java/io/gmss/fiscad/configuration/SpringSecurityConfig.java b/src/main/java/io/gmss/fiscad/configuration/SpringSecurityConfig.java index 9d15097..3ce0192 100755 --- a/src/main/java/io/gmss/fiscad/configuration/SpringSecurityConfig.java +++ b/src/main/java/io/gmss/fiscad/configuration/SpringSecurityConfig.java @@ -1,11 +1,113 @@ package io.gmss.fiscad.configuration; - - import io.gmss.fiscad.security.JwtAuthenticationEntryPoint; import io.gmss.fiscad.security.JwtAuthenticationFilter; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; + +import java.util.List; + +@EnableWebSecurity +@Configuration +@EnableMethodSecurity(securedEnabled = true, jsr250Enabled = true, prePostEnabled = true) +@RequiredArgsConstructor +public class SpringSecurityConfig { + + private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; + private final AuthenticationProvider authenticationProvider; + private final JwtAuthenticationFilter jwtAuthenticationFilter; + + private static final String[] PUBLIC_ENDPOINTS = { + "/api/auth/login", + "/api/open/**", + "/api/synchronisation/references", + "/v3/api-docs/**", + "/swagger-ui/**", + "/swagger-ui.html", + "/error", + "/api/**" // A ENLEVER AVANT LA MISE EN PRODUCTION + }; + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + + http + // Désactivation CSRF car JWT stateless + .csrf(AbstractHttpConfigurer::disable) + + // CORS configuration propre + .cors(cors -> cors.configurationSource(corsConfigurationSource())) + + // Gestion des exceptions d’authentification + .exceptionHandling(exception -> + exception.authenticationEntryPoint(jwtAuthenticationEntryPoint) + ) + + // Stateless session + .sessionManagement(session -> + session.sessionCreationPolicy(SessionCreationPolicy.STATELESS) + ) + + // Configuration des autorisations + .authorizeHttpRequests(auth -> auth + // Autoriser les requêtes OPTIONS (CORS preflight) + .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() + + // Endpoints publics + .requestMatchers(PUBLIC_ENDPOINTS).permitAll() + + // Tout le reste nécessite authentification + .anyRequest().authenticated() + ) + + // Provider d’authentification + .authenticationProvider(authenticationProvider) + + // Ajout du filtre JWT avant UsernamePasswordAuthenticationFilter + .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); + + return http.build(); + } + + /** + * Configuration CORS centralisée. + * ⚠️ En production, remplacer "*" par ton domaine frontend. + */ + @Bean + public CorsConfigurationSource corsConfigurationSource() { + return request -> { + CorsConfiguration configuration = new CorsConfiguration(); + + configuration.setAllowedOrigins(List.of("*")); // ⚠️ restreindre en prod + configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS")); + configuration.setAllowedHeaders(List.of("*")); + configuration.setAllowCredentials(false); + + return configuration; + }; + } +} + + + +/* +import io.gmss.fiscad.security.JwtAuthenticationEntryPoint; +import io.gmss.fiscad.security.JwtAuthenticationFilter; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -27,16 +129,15 @@ public class SpringSecurityConfig { private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final AuthenticationProvider authenticationProvider; private final JwtAuthenticationFilter jwtAuthenticationFilter; - - private static final String[] AUTH_WHITELIST = { - "/api/**", + // "/api/**", "/api/auth/login", "/api/open/**", "/api/synchronisation/references", "/v3/api-docs/**", "/swagger-ui/**", - "/swagger-ui.html" + "/swagger-ui.html", + "/error" }; @@ -58,7 +159,7 @@ public class SpringSecurityConfig { .exceptionHandling(ex -> ex.authenticationEntryPoint(jwtAuthenticationEntryPoint)) .authorizeHttpRequests(req -> req - //.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() + .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() .requestMatchers(AUTH_WHITELIST).permitAll() .anyRequest() .authenticated() @@ -66,11 +167,8 @@ public class SpringSecurityConfig { .authenticationProvider(authenticationProvider) .sessionManagement(session -> session.sessionCreationPolicy(STATELESS)) .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class) - ; - return http.build(); } +}*/ - -} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java index 2451d05..adb55ee 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java @@ -10,10 +10,14 @@ import io.gmss.fiscad.paylaods.dto.PersonneCompletDTO; import io.gmss.fiscad.paylaods.request.RecherchePersonneResquestBody; import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb; import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb; +import io.gmss.fiscad.security.CurrentUser; +import io.gmss.fiscad.security.UserPrincipal; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -37,9 +41,9 @@ public class PersonneController { @PostMapping("/create") public ResponseEntity createPersonne(@RequestBody @Valid @Validated PersonnePayLoadWeb personnePayLoadWeb) { try { - Personne personne = personneService.createPersonne(personnePayLoadWeb); + personnePayLoadWeb = personneService.createPersonne(personnePayLoadWeb); return new ResponseEntity<>( - new ApiResponse<>(true, personne, "Contribuable créé avec succès."), + new ApiResponse<>(true, personnePayLoadWeb, "Contribuable créé avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -100,7 +104,7 @@ public class PersonneController { @GetMapping("/id/{id}") public ResponseEntity getPersonneById(@PathVariable Long id) { try{ - Optional optionalPersonne= personneService.getPersonneById(id); + Optional optionalPersonne= personneService.getPersonneById(id); return new ResponseEntity<>( new ApiResponse<>(true, optionalPersonne.orElse(null), "Personne retrouvée avec succès."), HttpStatus.OK @@ -128,4 +132,54 @@ public class PersonneController { ); } } + + + @GetMapping("/all") + public ResponseEntity getAllPersonne() { + try { + + return new ResponseEntity<>( + new ApiResponse<>(true, personneService.getPersonneList(), "Liste des personnes chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all-paged") + public ResponseEntity getAllPersonnePaged(@CurrentUser UserPrincipal currentUser,@RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + + return new ResponseEntity<>( + new ApiResponse<>(true, personneService.getPersonneList(pageable), "Liste des personnes chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } } diff --git a/src/main/java/io/gmss/fiscad/controllers/user/ProfileController.java b/src/main/java/io/gmss/fiscad/controllers/user/ProfileController.java index 78be4ad..fcdf407 100755 --- a/src/main/java/io/gmss/fiscad/controllers/user/ProfileController.java +++ b/src/main/java/io/gmss/fiscad/controllers/user/ProfileController.java @@ -22,7 +22,7 @@ import org.springframework.web.client.HttpClientErrorException; @RestController -@RequestMapping(value = "api/profile", produces = MediaType.APPLICATION_JSON_VALUE) +@RequestMapping(value = "api/profil", produces = MediaType.APPLICATION_JSON_VALUE) @SecurityRequirement(name = "bearer") @Tag(name = "Profile") @CrossOrigin(origins = "*") diff --git a/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java b/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java index d98ad71..2d91809 100755 --- a/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java +++ b/src/main/java/io/gmss/fiscad/enums/EtatIdentificationPersonne.java @@ -4,5 +4,6 @@ public enum EtatIdentificationPersonne { IFU, NPI, IFU_NPI, - NEANT; + NEANT, + RFU; } diff --git a/src/main/java/io/gmss/fiscad/enums/Origine.java b/src/main/java/io/gmss/fiscad/enums/Origine.java index c20a1eb..7ea4edf 100644 --- a/src/main/java/io/gmss/fiscad/enums/Origine.java +++ b/src/main/java/io/gmss/fiscad/enums/Origine.java @@ -2,8 +2,5 @@ package io.gmss.fiscad.enums; public enum Origine { WEB, - MOBILE, - SIGIBE, - RFU_LOGIL, - ANIP + MOBILE } diff --git a/src/main/java/io/gmss/fiscad/enums/ParametersType.java b/src/main/java/io/gmss/fiscad/enums/ParametersType.java index 5ae184a..91815e9 100755 --- a/src/main/java/io/gmss/fiscad/enums/ParametersType.java +++ b/src/main/java/io/gmss/fiscad/enums/ParametersType.java @@ -11,5 +11,6 @@ public enum ParametersType { OBJET_RESET_PASSWORD, CORPS_RESET_PASSWORD, OBJET_CREATE_ACCOUNT, - CORPS_CREATE_ACCOUNT; + CORPS_CREATE_ACCOUNT, + TOKEN_IFU_EN_LIGNE ; } diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java index fb5609d..3a87de7 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java @@ -2,13 +2,17 @@ package io.gmss.fiscad.implementations.infocad.metier; import io.gmss.fiscad.entities.infocad.parametre.*; +import io.gmss.fiscad.enums.EtatIdentificationPersonne; +import io.gmss.fiscad.enums.Origine; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.infocad.metier.PersonneService; import io.gmss.fiscad.paylaods.dto.*; +import io.gmss.fiscad.paylaods.request.IfuEnLigneRechercheBody; import io.gmss.fiscad.paylaods.request.RecherchePersonneResquestBody; import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb; +import io.gmss.fiscad.paylaods.response.ifuenligne.IfuEnLigneContribuableResponse; import io.gmss.fiscad.persistence.repositories.decoupage.CommuneRepository; import io.gmss.fiscad.persistence.repositories.decoupage.NationaliteRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.MembreGroupeRepository; @@ -27,10 +31,12 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Optional; - +import java.time.ZoneId; @Service @RequiredArgsConstructor public class PersonneServiceImpl implements PersonneService { @@ -47,25 +53,17 @@ public class PersonneServiceImpl implements PersonneService { private final EntityFromPayLoadService entityFromPayLoadService; private final CallAPIService callAPIService; + @Override - public Personne createPersonne(PersonnePayLoadWeb personnePayLoadWeb) throws BadRequestException { -// Optional optionalTypePersonne = typePersonneRepository.findById(personnePayLoadWeb.getTypePersonneId()); -// -// Optional optionalCommune = communeRepository.findById(personnePayLoadWeb.getCommuneId()); -// -// -// Optional optionalNationalite = nationaliteRepository.findById(personnePayLoadWeb.getNationaliteId()); -// -// Optional optionalQuartier = situationMatrimonialeRepository.findById(personnePayLoadWeb.getSituationMatrimonialeId()); -// -// Optional optionalProfession = professionRepository.findById(personnePayLoadWeb.getProfessionId()); -// + public PersonnePayLoadWeb createPersonne(PersonnePayLoadWeb personnePayLoadWeb) throws BadRequestException { + Personne personne = entityFromPayLoadService.getPersonneFromPayLoadWeb(personnePayLoadWeb); - return personneRepository.save(personne); + personne =personneRepository.save(personne); + return personneRepository.findBypersonneId(personne.getId()).orElse(null); } @Override - public Personne updatePersonne(Long id, PersonnePayLoadWeb personnePayLoadWeb) throws NotFoundException { + public PersonnePayLoadWeb updatePersonne(Long id, PersonnePayLoadWeb personnePayLoadWeb) throws NotFoundException { if (personnePayLoadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null."); } @@ -74,7 +72,8 @@ public class PersonneServiceImpl implements PersonneService { } Personne personne = entityFromPayLoadService.getPersonneFromPayLoadWeb(personnePayLoadWeb); - return personneRepository.save(personne); + personne =personneRepository.save(personne); + return personneRepository.findBypersonneId(personne.getId()).orElse(null); } @Override @@ -83,18 +82,18 @@ public class PersonneServiceImpl implements PersonneService { } @Override - public Page getPersonneList(Pageable pageable) { + public Page getPersonneList(Pageable pageable) { return null; } @Override - public List getPersonneList() { + public List getPersonneList() { return null; } @Override - public Optional getPersonneById(Long id) { - return personneRepository.findById(id); + public Optional getPersonneById(Long id) { + return personneRepository.findBypersonneId(id); } @Override @@ -195,15 +194,118 @@ public class PersonneServiceImpl implements PersonneService { ); } +// @Override +// public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { +// +// +// +// List personnePayLoadWebsRfuLoggil = new ArrayList<>(); +// personnePayLoadWebsRfuLoggil = recherchePersonneLocal(recherchePersonneResquestBody); +// +// try{ +// +// LocalDate date = recherchePersonneResquestBody.getDateNaissance(); +// String dateNaissance = date != null +// ? date.format(DateTimeFormatter.ISO_LOCAL_DATE) +// : null; +// +// IfuEnLigneRechercheBody ifuEnLigneRechercheBody =new IfuEnLigneRechercheBody(); +// // ifuEnLigneRechercheBody.setIfu(recherchePersonneResquestBody.getIfu()); +// ifuEnLigneRechercheBody.setNom(recherchePersonneResquestBody.getNom()); +// ifuEnLigneRechercheBody.setPrenom(recherchePersonneResquestBody.getPrenom()); +// ifuEnLigneRechercheBody.setDateNaissance(dateNaissance); +// +// List ifuEnLigneContribuableResponses =callAPIService.callApiRechercheContribIfuEnLigne(ifuEnLigneRechercheBody); +// System.out.println(ifuEnLigneContribuableResponses); +// if(ifuEnLigneContribuableResponses!=null && !ifuEnLigneContribuableResponses.isEmpty()){ +// //List finalPersonnePayLoadWebsRfuLoggil = personnePayLoadWebsRfuLoggil; +// ifuEnLigneContribuableResponses.forEach(ifuEnLigneContribuableResponse -> { +// PersonnePayLoadWeb personnePayLoadWeb=new PersonnePayLoadWeb(); +// personnePayLoadWeb.setSource(Origine.SIGIBE); +// personnePayLoadWeb.setNpi(ifuEnLigneContribuableResponse.getNpi()); +// personnePayLoadWeb.setIfu(ifuEnLigneContribuableResponse.getIfu()); +// personnePayLoadWeb.setNomMere(ifuEnLigneContribuableResponse.getMotherlastname()); +// personnePayLoadWeb.setNom(ifuEnLigneContribuableResponse.getLastname()); +// personnePayLoadWeb.setPrenom(ifuEnLigneContribuableResponse.getFirstname()); +// personnePayLoadWeb.setPrenomMere(ifuEnLigneContribuableResponse.getBjmotherfirstname()); +// +// Date birthdate = ifuEnLigneContribuableResponse.getBirthdate(); +// LocalDate localDate = birthdate != null +// ? birthdate.toInstant() +// .atZone(ZoneId.systemDefault()) +// .toLocalDate() +// : null; +// personnePayLoadWeb.setDateNaissanceOuConsti(localDate); +// personnePayLoadWeb.setTel1(ifuEnLigneContribuableResponse.getPhonenumber()); +// personnePayLoadWeb.setLieuNaissance(ifuEnLigneContribuableResponse.getBirthplace()); +// personnePayLoadWeb.setSexe(ifuEnLigneContribuableResponse.getSexe()); +// +// personnePayLoadWebsRfuLoggil.add(personnePayLoadWeb); +// }); +// } +// }catch (Exception e){ +// e.printStackTrace(); +// } +// +// return personnePayLoadWebsRfuLoggil; +// } + + @Override - public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { - // callAPIService.callGetIfuEnLigneToken(); - List personnePayLoadWebsRfuLoggil = new ArrayList<>(); - personnePayLoadWebsRfuLoggil = recherchePersonneLocal(recherchePersonneResquestBody); + public List recherchePersonne(RecherchePersonneResquestBody request) { + List result = new ArrayList<>( + recherchePersonneLocal(request) + ); + try { + // Conversion date en String format yyyy-MM-dd + String dateNaissance = Optional.ofNullable(request.getDateNaissance()) + .map(d -> d.format(DateTimeFormatter.ISO_LOCAL_DATE)) + .orElse(null); + // Construction du body IFU + IfuEnLigneRechercheBody ifuRequest = new IfuEnLigneRechercheBody(); + ifuRequest.setNom(request.getNom()); + ifuRequest.setPrenom(request.getPrenom()); + ifuRequest.setDateNaissance(dateNaissance); - return personnePayLoadWebsRfuLoggil; + List responses = + callAPIService.callApiRechercheContribIfuEnLigne(ifuRequest); + + if (responses == null || responses.isEmpty()) { + return result; + } + + for (IfuEnLigneContribuableResponse r : responses) { + + PersonnePayLoadWeb personne = new PersonnePayLoadWeb(); + personne.setEtatIdentificationPersonne(EtatIdentificationPersonne.IFU); + personne.setNpi(r.getNpi()); + personne.setIfu(r.getIfu()); + personne.setNomMere(r.getMotherlastname()); + personne.setNom(r.getLastname()); + personne.setPrenom(r.getFirstname()); + personne.setPrenomMere(r.getBjmotherfirstname()); + personne.setTel1(r.getPhonenumber()); + personne.setLieuNaissance(r.getBirthplace()); + personne.setSexe(r.getSexe()); + + // Conversion Date → LocalDate + Date birthdate = r.getBirthdate(); + LocalDate localDate = birthdate != null + ? birthdate.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate() + : null; + personne.setDateNaissanceOuConsti(localDate); + personne.setEtatIdentificationPersonne(EtatIdentificationPersonne.IFU); + result.add(personne); + } + + } catch (Exception e) { + // logger.error("Erreur appel IFU EN LIGNE", e); + } + return result; } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java index e0a2f0d..7eff463 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java @@ -14,17 +14,17 @@ import java.util.Optional; public interface PersonneService { - Personne createPersonne(PersonnePayLoadWeb personnePayLoadWeb) throws BadRequestException; + PersonnePayLoadWeb createPersonne(PersonnePayLoadWeb personnePayLoadWeb) throws BadRequestException; - Personne updatePersonne(Long id, PersonnePayLoadWeb personnePayLoadWeb) throws NotFoundException; + PersonnePayLoadWeb updatePersonne(Long id, PersonnePayLoadWeb personnePayLoadWeb) throws NotFoundException; void deletePersonne(Long id) throws NotFoundException; - Page getPersonneList(Pageable pageable); + Page getPersonneList(Pageable pageable); - List getPersonneList(); + List getPersonneList(); - Optional getPersonneById(Long id); + Optional getPersonneById(Long id); PersonneCompletDTO getPersonneComplete(Long id); List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); } diff --git a/src/main/java/io/gmss/fiscad/paylaods/ApiResponse.java b/src/main/java/io/gmss/fiscad/paylaods/ApiResponse.java index ee2a311..dce9a50 100755 --- a/src/main/java/io/gmss/fiscad/paylaods/ApiResponse.java +++ b/src/main/java/io/gmss/fiscad/paylaods/ApiResponse.java @@ -11,7 +11,7 @@ public class ApiResponse { private boolean success; private T object; private String message; - + private int statusCode; public ApiResponse(boolean success, String message) { this.success = success; @@ -23,4 +23,9 @@ public class ApiResponse { this.object = object; } + public ApiResponse(boolean success, T object, String message) { + this.success = success; + this.object = object; + this.message = message; + } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/IfuEnLigneRechercheBody.java b/src/main/java/io/gmss/fiscad/paylaods/request/IfuEnLigneRechercheBody.java index 4b928ae..c2d7cfa 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/IfuEnLigneRechercheBody.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/IfuEnLigneRechercheBody.java @@ -1,7 +1,13 @@ package io.gmss.fiscad.paylaods.request; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDate; + +@Data public class IfuEnLigneRechercheBody { - private String ifu; + // private String ifu; private String nom; private String prenom; private String dateNaissance; diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java index f6b03aa..0cbfc68 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java @@ -1,15 +1,17 @@ package io.gmss.fiscad.paylaods.request.crudweb; import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.EtatIdentificationPersonne; import io.gmss.fiscad.enums.Origine; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import lombok.Data; +import lombok.NoArgsConstructor; import org.hibernate.annotations.ColumnDefault; import java.time.LocalDate; - +@NoArgsConstructor @Data public class PersonnePayLoadWeb { private Long id; @@ -46,9 +48,9 @@ public class PersonnePayLoadWeb { private String indicatifTel2; private String sexe; @Enumerated(EnumType.STRING) - private Origine source; + private EtatIdentificationPersonne etatIdentificationPersonne; - public PersonnePayLoadWeb(Long id, String ifu, String nom, String prenom, String raisonSociale, String numRavip, String npi, LocalDate dateNaissanceOuConsti, String lieuNaissance, String tel1, String nomJeuneFille, String nomMere,Origine source) { + public PersonnePayLoadWeb(Long id, String ifu, String nom, String prenom, String raisonSociale, String numRavip, String npi, LocalDate dateNaissanceOuConsti, String lieuNaissance, String tel1, String nomJeuneFille, String nomMere,EtatIdentificationPersonne source) { this.id = id; this.ifu = ifu; this.nom = nom; @@ -61,6 +63,6 @@ public class PersonnePayLoadWeb { this.tel1 = tel1; this.nomJeuneFille = nomJeuneFille; this.nomMere = nomMere; - this.source = source; + this.etatIdentificationPersonne = source; } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneContribuableResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneContribuableResponse.java new file mode 100644 index 0000000..def76ee --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneContribuableResponse.java @@ -0,0 +1,47 @@ +package io.gmss.fiscad.paylaods.response.ifuenligne; + +import lombok.Data; + +import java.util.Date; + +@Data +public class IfuEnLigneContribuableResponse { + private String npi; + private String ifu; + + private String mothernpi; + private String motherlastname; + private String bjfatherlastname; + private String bjfatherfirstname; + private String bjmotherfirstname; + private String fathernpi; + + private String lastname; + private String firstname; + private String maritalname; + + private Date birthdate; + + private String birthcountrycode; + private String birthdepartment; + private String birthtown; + private String birthdistrict; + private String birthvillage; + private String birthplace; + + private String residencecountrycode; + private String residencedepartment; + private String residencetown; + private String residencedistrict; + private String residencevillage; + private String residenceaddress; + + private String phonenumber; + private String email; + private String nationality; + + private String sexe; + + private String phonenumberindicatif; + private String idPhoto; +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneLoginResponse.java b/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneLoginResponse.java new file mode 100644 index 0000000..cfb2f15 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/ifuenligne/IfuEnLigneLoginResponse.java @@ -0,0 +1,9 @@ +package io.gmss.fiscad.paylaods.response.ifuenligne; + +import lombok.Data; + +@Data +public class IfuEnLigneLoginResponse { + private String accessToken; + private String tokenType ; +} diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java index cce74f9..6379f04 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java @@ -5,10 +5,13 @@ import io.gmss.fiscad.paylaods.request.crudweb.DeclarationNcPayloadWeb; import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb; import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse; import io.gmss.fiscad.paylaods.response.restoration.PersonnePayLoad; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import javax.swing.text.html.Option; import java.time.LocalDate; import java.util.List; import java.util.Optional; @@ -80,7 +83,7 @@ public interface PersonneRepository extends JpaRepository { p.tel1, p.nomJeuneFille, p.nomMere, - io.gmss.fiscad.enums.Origine.RFU_LOGIL + io.gmss.fiscad.enums.EtatIdentificationPersonne.RFU ) FROM Personne p WHERE @@ -91,7 +94,7 @@ public interface PersonneRepository extends JpaRepository { AND (:prenom IS NULL OR LOWER(trim(p.prenom)) LIKE (CONCAT('%', :prenom, '%'))) AND (:raisonSociale IS NULL OR LOWER(trim(p.raisonSociale)) LIKE (CONCAT('%', :raisonSociale, '%'))) AND (:nomMere IS NULL OR LOWER(trim(p.nomMere)) LIKE (CONCAT('%', :nomMere, '%'))) - AND (:dateNaissance IS NULL OR p.dateNaissanceOuConsti = :dateNaissance) + AND p.dateNaissanceOuConsti =COALESCE(:dateNaissance, p.dateNaissanceOuConsti) """ ) List findByFiltersInBaseIfuNpiCorrecte( @@ -105,4 +108,82 @@ public interface PersonneRepository extends JpaRepository { ); + // AND (:dateNaissance IS NULL OR p.dateNaissanceOuConsti = :dateNaissance) + + + @Query( """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb( + p.id, + p.ifu, + p.nom, + p.prenom, + p.raisonSociale, + p.numRavip, + p.npi, + p.dateNaissanceOuConsti, + p.lieuNaissance, + p.tel1, + p.nomJeuneFille, + p.nomMere, + p.etatIdentificationPersonne + ) + FROM Personne p + WHERE p.id = :personneId + + """ + ) + Optional findBypersonneId( + @Param("personneId") Long personneId + ); + + + @Query( """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb( + p.id, + p.ifu, + p.nom, + p.prenom, + p.raisonSociale, + p.numRavip, + p.npi, + p.dateNaissanceOuConsti, + p.lieuNaissance, + p.tel1, + p.nomJeuneFille, + p.nomMere, + p.etatIdentificationPersonne + ) + FROM Personne p + """ + ) + List findAllPersonneToDto(); + + @Query( + value = """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb( + p.id, + p.ifu, + p.nom, + p.prenom, + p.raisonSociale, + p.numRavip, + p.npi, + p.dateNaissanceOuConsti, + p.lieuNaissance, + p.tel1, + p.nomJeuneFille, + p.nomMere, + p.etatIdentificationPersonne + ) + FROM Personne p + """, + countQuery = """ + SELECT COUNT(p) + FROM Personne p + """ + ) + Page findAllPersonneToDto(Pageable pageable); + + + } diff --git a/src/main/java/io/gmss/fiscad/service/CallAPIService.java b/src/main/java/io/gmss/fiscad/service/CallAPIService.java index 212bdd0..26e49f2 100755 --- a/src/main/java/io/gmss/fiscad/service/CallAPIService.java +++ b/src/main/java/io/gmss/fiscad/service/CallAPIService.java @@ -1,27 +1,35 @@ package io.gmss.fiscad.service; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.gmss.fiscad.entities.Parameters; +import io.gmss.fiscad.enums.ParametersType; import io.gmss.fiscad.interfaces.ParametersRepository; +import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.request.IfuEnLigneLoginBoby; import io.gmss.fiscad.paylaods.request.IfuEnLigneRechercheBody; +import io.gmss.fiscad.paylaods.response.ifuenligne.IfuEnLigneContribuableResponse; +import io.gmss.fiscad.paylaods.response.ifuenligne.IfuEnLigneLoginResponse; import jakarta.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.client.RestTemplateBuilder; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.server.MethodNotAllowedException; import java.util.List; +import java.util.Optional; @Service public class CallAPIService { - + @Autowired + private RestTemplate restTemplate ; private static final Logger logger = LoggerFactory.getLogger(CallAPIService.class); @@ -34,10 +42,11 @@ public class CallAPIService { private String ifuEnLigneUserName; @Value("${ifu-en-ligne.api.password}") private String ifuEnLignePassWord; - private String ifuEnLigneToken ; + private String ifuEnLigneToken=null ; public RestTemplate executeRestemplate(String localTokenName,String accessToken){ RestTemplate restTemplate = new RestTemplateBuilder(rt-> rt.getInterceptors().add((request, body, execution) -> { + if(localTokenName!=null) { request.getHeaders().add(localTokenName, accessToken); } @@ -48,37 +57,69 @@ public class CallAPIService { return restTemplate; } - public String callGetIfuEnLigneToken(){ - try { - String url = ifuEnLigneBaseUrl+"/api/auth/signin" ; - IfuEnLigneLoginBoby ifuEnLigneLoginBoby=new IfuEnLigneLoginBoby(); - ifuEnLigneLoginBoby.setUsernameOrEmail(ifuEnLigneUserName); - ifuEnLigneLoginBoby.setPassword(ifuEnLignePassWord); - System.out.println("JE SUIS DANS LE CALL API : "+url); - HttpEntity request = new HttpEntity<>(ifuEnLigneLoginBoby); +// public RestTemplate executeRestemplate(String accessToken) { +// +// RestTemplate restTemplate = new RestTemplate(); +// +// restTemplate.getInterceptors().add((request, body, execution) -> { +// System.out.println("LE TOKEN dans execute"); +// System.out.println(accessToken); +// if (accessToken != null && !accessToken.isBlank()) { +// request.getHeaders().setBearerAuth(accessToken); +// } +// +// request.getHeaders().setAccept(List.of(MediaType.APPLICATION_JSON)); +// request.getHeaders().setContentType(MediaType.APPLICATION_JSON); +// +// return execution.execute(request, body); +// }); +// +// return restTemplate; +// } + + + + public IfuEnLigneLoginResponse callGetIfuEnLigneToken() { + + try { + + String url = ifuEnLigneBaseUrl + "api/auth/signin"; + + IfuEnLigneLoginBoby body = new IfuEnLigneLoginBoby(); + body.setUsernameOrEmail(ifuEnLigneUserName); + body.setPassword(ifuEnLignePassWord); + + HttpHeaders headers = new HttpHeaders(); + headers.setBearerAuth(ifuEnLigneToken); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.setAccept(List.of(MediaType.APPLICATION_JSON)); + + HttpEntity request = + new HttpEntity<>(body, headers); + RestTemplate restTemplate = executeRestemplate(null, null); - ResponseEntity response = restTemplate.postForEntity(url, request, String.class); - if(response.getStatusCodeValue()==200){ - return response.getBody() ; - }else{ - System.out.println(response.getStatusCodeValue()); + ResponseEntity response = + restTemplate.exchange( + url, + HttpMethod.POST, + request, + IfuEnLigneLoginResponse.class + ); - // sygmApiResponse.setStatut(false); - -// sygmApiResponse.setMessage("HttpStatus "+response.getStatusCodeValue()+" --- " -// +response.getBody().toString()); -// return sygmApiResponse; - return null; + if (response.getStatusCode().is2xxSuccessful()) { + return response.getBody(); } - }catch (Exception e ){ - System.out.println("IFU EN LIGNE : "+e.getMessage()) ; - e.printStackTrace(); - //throw new Exception(e.getMessage()) ; - return null; + + throw new RuntimeException("Erreur IFU : " + response.getStatusCode()); + + } catch (Exception e) { + + throw new RuntimeException("IFU EN LIGNE ERREUR : " + e.getMessage(), e); } - } + } + @@ -107,32 +148,105 @@ public class CallAPIService { // } - public void callApiRechercheContribIfuEnLigne(IfuEnLigneRechercheBody ifuEnLigneRechercheBody) { +// public void callApiRechercheContribIfuEnLigne(IfuEnLigneRechercheBody ifuEnLigneRechercheBody) { +// try { +// String url = ifuEnLigneBaseUrl+"/api/contribuable/fiscad"; +// //ApiResponse +// RestTemplate restTemplate = executeRestemplate("Authorization",ifuEnLigneToken); +// ResponseEntity> response = restTemplate.getForEntity(url,ifuEnLigneRechercheBody, IfuEnLigneContribuableResponse.class); +// if(response.getStatusCode().value()==200){ +// System.out.println(response.getBody()); +// } +// } catch ( +// MethodNotAllowedException ex) { +// logger.error(ex.toString()); +// //return new ResponseEntity(null, HttpStatus.METHOD_NOT_ALLOWED); +// } catch (Exception e) { +// logger.error(e.toString()); +// // return new ResponseEntity(null, HttpStatus.INTERNAL_SERVER_ERROR); +// } +// } + + + public List callApiRechercheContribIfuEnLigne( + IfuEnLigneRechercheBody requestBody) { + + ensureToken(); + + String url = ifuEnLigneBaseUrl + "/api/contribuable/fiscad"; + + HttpHeaders headers = new HttpHeaders(); + headers.setBearerAuth(ifuEnLigneToken); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.setAccept(List.of(MediaType.APPLICATION_JSON)); + + HttpEntity httpEntity= new HttpEntity<>(requestBody,headers); + + System.out.println(httpEntity.getBody()); + + System.out.println("BODY SENT:"+ requestBody); + + ObjectMapper mapper = new ObjectMapper(); try { - String url = ifuEnLigneBaseUrl+"/api/contribuable/fiscad"; - String token = callGetIfuEnLigneToken(); - RestTemplate restTemplate = executeRestemplate(null,null); - ResponseEntity response = restTemplate.getForEntity(url, String.class); - if(response.getStatusCode().value()==200){ - System.out.println(response.getBody()); - } - } catch ( - MethodNotAllowedException ex) { - logger.error(ex.toString()); - //return new ResponseEntity(null, HttpStatus.METHOD_NOT_ALLOWED); - } catch (Exception e) { - logger.error(e.toString()); - // return new ResponseEntity(null, HttpStatus.INTERNAL_SERVER_ERROR); + System.out.println("JSON REAL SENT = " + mapper.writeValueAsString(requestBody)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); } + + ResponseEntity>> response = + restTemplate.exchange( + url, + HttpMethod.POST, + httpEntity, + new ParameterizedTypeReference<>() {} + ); + + ApiResponse> body = response.getBody(); + + if (body == null) { + throw new RuntimeException("Réponse API IFU vide"); + } + + if (!body.isSuccess()) { + throw new RuntimeException("API IFU erreur : " + body.getMessage()); + } + + return body.getObject(); } - @PostConstruct - public void init(){ + // @PostConstruct + private synchronized void ensureToken() { + + if (ifuEnLigneToken != null && !ifuEnLigneToken.isBlank()) { + return; + } + + Optional optional = + parametersRepository.findFirstByName(ParametersType.TOKEN_IFU_EN_LIGNE); + + if (optional.isPresent()) { + ifuEnLigneToken = optional.get().getValue(); + return; + } + + IfuEnLigneLoginResponse loginResponse = callGetIfuEnLigneToken(); + + if (loginResponse == null || loginResponse.getAccessToken() == null) { + throw new RuntimeException("Impossible d'obtenir le token IFU"); + } + + ifuEnLigneToken = loginResponse.getAccessToken(); + + Parameters parameters = new Parameters(); + parameters.setName(ParametersType.TOKEN_IFU_EN_LIGNE); + parameters.setValue(ifuEnLigneToken); + parametersRepository.save(parameters); } + } diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index 30b0bc7..2644d9c 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -496,6 +496,7 @@ public class EntityFromPayLoadService { personne.setNumRavip(personnePayLoadWeb.getNumRavip()); personne.setObservation(personnePayLoadWeb.getObservation()); personne.setSexe(personnePayLoadWeb.getSexe()); + personne.setEtatIdentificationPersonne(personnePayLoadWeb.getEtatIdentificationPersonne()); return personne ; } diff --git a/uploads/._ATD SIGIBE-1.png b/uploads/._ATD SIGIBE-1.png deleted file mode 100644 index 5a5aec8..0000000 Binary files a/uploads/._ATD SIGIBE-1.png and /dev/null differ diff --git a/uploads/._ATD SIGIBE.png b/uploads/._ATD SIGIBE.png deleted file mode 100644 index 5a5aec8..0000000 Binary files a/uploads/._ATD SIGIBE.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.33.55-1.png b/uploads/._Capture d’écran 2024-03-22 à 12.33.55-1.png deleted file mode 100644 index d4901ed..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.33.55-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.33.55.png b/uploads/._Capture d’écran 2024-03-22 à 12.33.55.png deleted file mode 100644 index d4901ed..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.33.55.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.50.55-1.png b/uploads/._Capture d’écran 2024-03-22 à 12.50.55-1.png deleted file mode 100644 index 5bbcb7a..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.50.55-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.50.55.png b/uploads/._Capture d’écran 2024-03-22 à 12.50.55.png deleted file mode 100644 index 5bbcb7a..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.50.55.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.52.09-1.png b/uploads/._Capture d’écran 2024-03-22 à 12.52.09-1.png deleted file mode 100644 index 6626bae..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.52.09-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-22 à 12.52.09.png b/uploads/._Capture d’écran 2024-03-22 à 12.52.09.png deleted file mode 100644 index 6626bae..0000000 Binary files a/uploads/._Capture d’écran 2024-03-22 à 12.52.09.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-25 à 10.47.36-1.png b/uploads/._Capture d’écran 2024-03-25 à 10.47.36-1.png deleted file mode 100644 index 79c0805..0000000 Binary files a/uploads/._Capture d’écran 2024-03-25 à 10.47.36-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-03-25 à 10.47.36.png b/uploads/._Capture d’écran 2024-03-25 à 10.47.36.png deleted file mode 100644 index 79c0805..0000000 Binary files a/uploads/._Capture d’écran 2024-03-25 à 10.47.36.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-09 à 18.29.17-1.png b/uploads/._Capture d’écran 2024-04-09 à 18.29.17-1.png deleted file mode 100644 index b8e50e3..0000000 Binary files a/uploads/._Capture d’écran 2024-04-09 à 18.29.17-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-09 à 18.29.17.png b/uploads/._Capture d’écran 2024-04-09 à 18.29.17.png deleted file mode 100644 index b8e50e3..0000000 Binary files a/uploads/._Capture d’écran 2024-04-09 à 18.29.17.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-09 à 18.29.43-1.png b/uploads/._Capture d’écran 2024-04-09 à 18.29.43-1.png deleted file mode 100644 index c08e4e0..0000000 Binary files a/uploads/._Capture d’écran 2024-04-09 à 18.29.43-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-09 à 18.29.43.png b/uploads/._Capture d’écran 2024-04-09 à 18.29.43.png deleted file mode 100644 index c08e4e0..0000000 Binary files a/uploads/._Capture d’écran 2024-04-09 à 18.29.43.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.18.22-1.png b/uploads/._Capture d’écran 2024-04-16 à 23.18.22-1.png deleted file mode 100644 index ffe5212..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.18.22-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.18.22.png b/uploads/._Capture d’écran 2024-04-16 à 23.18.22.png deleted file mode 100644 index ffe5212..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.18.22.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.23.07-1.png b/uploads/._Capture d’écran 2024-04-16 à 23.23.07-1.png deleted file mode 100644 index 69ddf34..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.23.07-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.23.07.png b/uploads/._Capture d’écran 2024-04-16 à 23.23.07.png deleted file mode 100644 index 69ddf34..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.23.07.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.28.53-1.png b/uploads/._Capture d’écran 2024-04-16 à 23.28.53-1.png deleted file mode 100644 index 07ecd73..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.28.53-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-16 à 23.28.53.png b/uploads/._Capture d’écran 2024-04-16 à 23.28.53.png deleted file mode 100644 index 07ecd73..0000000 Binary files a/uploads/._Capture d’écran 2024-04-16 à 23.28.53.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-19 à 11.39.47-1.png b/uploads/._Capture d’écran 2024-04-19 à 11.39.47-1.png deleted file mode 100644 index 43ff6b5..0000000 Binary files a/uploads/._Capture d’écran 2024-04-19 à 11.39.47-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-19 à 11.39.47.png b/uploads/._Capture d’écran 2024-04-19 à 11.39.47.png deleted file mode 100644 index 43ff6b5..0000000 Binary files a/uploads/._Capture d’écran 2024-04-19 à 11.39.47.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-19 à 13.22.58-1.png b/uploads/._Capture d’écran 2024-04-19 à 13.22.58-1.png deleted file mode 100644 index acf26f0..0000000 Binary files a/uploads/._Capture d’écran 2024-04-19 à 13.22.58-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-19 à 13.22.58.png b/uploads/._Capture d’écran 2024-04-19 à 13.22.58.png deleted file mode 100644 index acf26f0..0000000 Binary files a/uploads/._Capture d’écran 2024-04-19 à 13.22.58.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-25 à 10.52.53-1.png b/uploads/._Capture d’écran 2024-04-25 à 10.52.53-1.png deleted file mode 100644 index 30b6948..0000000 Binary files a/uploads/._Capture d’écran 2024-04-25 à 10.52.53-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-04-25 à 10.52.53.png b/uploads/._Capture d’écran 2024-04-25 à 10.52.53.png deleted file mode 100644 index 30b6948..0000000 Binary files a/uploads/._Capture d’écran 2024-04-25 à 10.52.53.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-05-22 à 13.55.18-1.png b/uploads/._Capture d’écran 2024-05-22 à 13.55.18-1.png deleted file mode 100644 index e3e1e5d..0000000 Binary files a/uploads/._Capture d’écran 2024-05-22 à 13.55.18-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-05-22 à 13.55.18.png b/uploads/._Capture d’écran 2024-05-22 à 13.55.18.png deleted file mode 100644 index e3e1e5d..0000000 Binary files a/uploads/._Capture d’écran 2024-05-22 à 13.55.18.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-17 à 20.10.57-1.png b/uploads/._Capture d’écran 2024-06-17 à 20.10.57-1.png deleted file mode 100644 index c339808..0000000 Binary files a/uploads/._Capture d’écran 2024-06-17 à 20.10.57-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-17 à 20.10.57.png b/uploads/._Capture d’écran 2024-06-17 à 20.10.57.png deleted file mode 100644 index c339808..0000000 Binary files a/uploads/._Capture d’écran 2024-06-17 à 20.10.57.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-18 à 14.32.03-1.png b/uploads/._Capture d’écran 2024-06-18 à 14.32.03-1.png deleted file mode 100644 index aa6b505..0000000 Binary files a/uploads/._Capture d’écran 2024-06-18 à 14.32.03-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-18 à 14.32.03.png b/uploads/._Capture d’écran 2024-06-18 à 14.32.03.png deleted file mode 100644 index aa6b505..0000000 Binary files a/uploads/._Capture d’écran 2024-06-18 à 14.32.03.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-18 à 14.40.25-1.png b/uploads/._Capture d’écran 2024-06-18 à 14.40.25-1.png deleted file mode 100644 index 8999c80..0000000 Binary files a/uploads/._Capture d’écran 2024-06-18 à 14.40.25-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-18 à 14.40.25.png b/uploads/._Capture d’écran 2024-06-18 à 14.40.25.png deleted file mode 100644 index 8999c80..0000000 Binary files a/uploads/._Capture d’écran 2024-06-18 à 14.40.25.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-23 à 16.49.53-1.png b/uploads/._Capture d’écran 2024-06-23 à 16.49.53-1.png deleted file mode 100644 index 5711a1f..0000000 Binary files a/uploads/._Capture d’écran 2024-06-23 à 16.49.53-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-23 à 16.49.53.png b/uploads/._Capture d’écran 2024-06-23 à 16.49.53.png deleted file mode 100644 index 5711a1f..0000000 Binary files a/uploads/._Capture d’écran 2024-06-23 à 16.49.53.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-27 à 16.00.10-1.png b/uploads/._Capture d’écran 2024-06-27 à 16.00.10-1.png deleted file mode 100644 index 5480784..0000000 Binary files a/uploads/._Capture d’écran 2024-06-27 à 16.00.10-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-27 à 16.00.10.png b/uploads/._Capture d’écran 2024-06-27 à 16.00.10.png deleted file mode 100644 index 5480784..0000000 Binary files a/uploads/._Capture d’écran 2024-06-27 à 16.00.10.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-28 à 12.21.48-1.png b/uploads/._Capture d’écran 2024-06-28 à 12.21.48-1.png deleted file mode 100644 index 829c186..0000000 Binary files a/uploads/._Capture d’écran 2024-06-28 à 12.21.48-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-28 à 12.21.48.png b/uploads/._Capture d’écran 2024-06-28 à 12.21.48.png deleted file mode 100644 index 829c186..0000000 Binary files a/uploads/._Capture d’écran 2024-06-28 à 12.21.48.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-28 à 13.49.50-1.png b/uploads/._Capture d’écran 2024-06-28 à 13.49.50-1.png deleted file mode 100644 index 266b52a..0000000 Binary files a/uploads/._Capture d’écran 2024-06-28 à 13.49.50-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-06-28 à 13.49.50.png b/uploads/._Capture d’écran 2024-06-28 à 13.49.50.png deleted file mode 100644 index 266b52a..0000000 Binary files a/uploads/._Capture d’écran 2024-06-28 à 13.49.50.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-11 à 19.22.51-1.png b/uploads/._Capture d’écran 2024-07-11 à 19.22.51-1.png deleted file mode 100644 index b0d6e01..0000000 Binary files a/uploads/._Capture d’écran 2024-07-11 à 19.22.51-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-11 à 19.22.51.png b/uploads/._Capture d’écran 2024-07-11 à 19.22.51.png deleted file mode 100644 index b0d6e01..0000000 Binary files a/uploads/._Capture d’écran 2024-07-11 à 19.22.51.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-25 à 15.52.34-1.png b/uploads/._Capture d’écran 2024-07-25 à 15.52.34-1.png deleted file mode 100644 index e08022a..0000000 Binary files a/uploads/._Capture d’écran 2024-07-25 à 15.52.34-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-25 à 15.52.34.png b/uploads/._Capture d’écran 2024-07-25 à 15.52.34.png deleted file mode 100644 index e08022a..0000000 Binary files a/uploads/._Capture d’écran 2024-07-25 à 15.52.34.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-25 à 15.53.06-1.png b/uploads/._Capture d’écran 2024-07-25 à 15.53.06-1.png deleted file mode 100644 index 405eb0c..0000000 Binary files a/uploads/._Capture d’écran 2024-07-25 à 15.53.06-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-07-25 à 15.53.06.png b/uploads/._Capture d’écran 2024-07-25 à 15.53.06.png deleted file mode 100644 index 405eb0c..0000000 Binary files a/uploads/._Capture d’écran 2024-07-25 à 15.53.06.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-02 à 11.04.00-1.png b/uploads/._Capture d’écran 2024-08-02 à 11.04.00-1.png deleted file mode 100644 index 91f0510..0000000 Binary files a/uploads/._Capture d’écran 2024-08-02 à 11.04.00-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-02 à 11.04.00.png b/uploads/._Capture d’écran 2024-08-02 à 11.04.00.png deleted file mode 100644 index 91f0510..0000000 Binary files a/uploads/._Capture d’écran 2024-08-02 à 11.04.00.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-14 à 16.51.47-1.png b/uploads/._Capture d’écran 2024-08-14 à 16.51.47-1.png deleted file mode 100644 index 8bb02e6..0000000 Binary files a/uploads/._Capture d’écran 2024-08-14 à 16.51.47-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-14 à 16.51.47.png b/uploads/._Capture d’écran 2024-08-14 à 16.51.47.png deleted file mode 100644 index 8bb02e6..0000000 Binary files a/uploads/._Capture d’écran 2024-08-14 à 16.51.47.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-14 à 17.54.15-1.png b/uploads/._Capture d’écran 2024-08-14 à 17.54.15-1.png deleted file mode 100644 index 7442ff0..0000000 Binary files a/uploads/._Capture d’écran 2024-08-14 à 17.54.15-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-14 à 17.54.15.png b/uploads/._Capture d’écran 2024-08-14 à 17.54.15.png deleted file mode 100644 index 7442ff0..0000000 Binary files a/uploads/._Capture d’écran 2024-08-14 à 17.54.15.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-19 à 09.55.21-1.png b/uploads/._Capture d’écran 2024-08-19 à 09.55.21-1.png deleted file mode 100644 index e5bf481..0000000 Binary files a/uploads/._Capture d’écran 2024-08-19 à 09.55.21-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-19 à 09.55.21.png b/uploads/._Capture d’écran 2024-08-19 à 09.55.21.png deleted file mode 100644 index e5bf481..0000000 Binary files a/uploads/._Capture d’écran 2024-08-19 à 09.55.21.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 13.38.08-1.png b/uploads/._Capture d’écran 2024-08-23 à 13.38.08-1.png deleted file mode 100644 index 9600570..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 13.38.08-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 13.38.08.png b/uploads/._Capture d’écran 2024-08-23 à 13.38.08.png deleted file mode 100644 index 9600570..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 13.38.08.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 13.38.28-1.png b/uploads/._Capture d’écran 2024-08-23 à 13.38.28-1.png deleted file mode 100644 index 42ecbe6..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 13.38.28-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 13.38.28.png b/uploads/._Capture d’écran 2024-08-23 à 13.38.28.png deleted file mode 100644 index 42ecbe6..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 13.38.28.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 14.01.57-1.png b/uploads/._Capture d’écran 2024-08-23 à 14.01.57-1.png deleted file mode 100644 index 1f9d668..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 14.01.57-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-23 à 14.01.57.png b/uploads/._Capture d’écran 2024-08-23 à 14.01.57.png deleted file mode 100644 index 1f9d668..0000000 Binary files a/uploads/._Capture d’écran 2024-08-23 à 14.01.57.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-26 à 23.56.22-1.png b/uploads/._Capture d’écran 2024-08-26 à 23.56.22-1.png deleted file mode 100644 index c721729..0000000 Binary files a/uploads/._Capture d’écran 2024-08-26 à 23.56.22-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-08-26 à 23.56.22.png b/uploads/._Capture d’écran 2024-08-26 à 23.56.22.png deleted file mode 100644 index c721729..0000000 Binary files a/uploads/._Capture d’écran 2024-08-26 à 23.56.22.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-04 à 10.50.55-1.png b/uploads/._Capture d’écran 2024-09-04 à 10.50.55-1.png deleted file mode 100644 index 4301019..0000000 Binary files a/uploads/._Capture d’écran 2024-09-04 à 10.50.55-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-04 à 10.50.55.png b/uploads/._Capture d’écran 2024-09-04 à 10.50.55.png deleted file mode 100644 index 4301019..0000000 Binary files a/uploads/._Capture d’écran 2024-09-04 à 10.50.55.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-04 à 10.55.04-1.png b/uploads/._Capture d’écran 2024-09-04 à 10.55.04-1.png deleted file mode 100644 index 563e896..0000000 Binary files a/uploads/._Capture d’écran 2024-09-04 à 10.55.04-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-04 à 10.55.04.png b/uploads/._Capture d’écran 2024-09-04 à 10.55.04.png deleted file mode 100644 index 563e896..0000000 Binary files a/uploads/._Capture d’écran 2024-09-04 à 10.55.04.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.31.22-1.png b/uploads/._Capture d’écran 2024-09-10 à 11.31.22-1.png deleted file mode 100644 index 6e381e6..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.31.22-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.31.22.png b/uploads/._Capture d’écran 2024-09-10 à 11.31.22.png deleted file mode 100644 index 6e381e6..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.31.22.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.34.24-1.png b/uploads/._Capture d’écran 2024-09-10 à 11.34.24-1.png deleted file mode 100644 index 7e55381..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.34.24-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.34.24.png b/uploads/._Capture d’écran 2024-09-10 à 11.34.24.png deleted file mode 100644 index 7e55381..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.34.24.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.39.44-1.png b/uploads/._Capture d’écran 2024-09-10 à 11.39.44-1.png deleted file mode 100644 index f697018..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.39.44-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 11.39.44.png b/uploads/._Capture d’écran 2024-09-10 à 11.39.44.png deleted file mode 100644 index f697018..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 11.39.44.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 13.07.36-1.png b/uploads/._Capture d’écran 2024-09-10 à 13.07.36-1.png deleted file mode 100644 index 96188ae..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 13.07.36-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-10 à 13.07.36.png b/uploads/._Capture d’écran 2024-09-10 à 13.07.36.png deleted file mode 100644 index 96188ae..0000000 Binary files a/uploads/._Capture d’écran 2024-09-10 à 13.07.36.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-18 à 13.07.22-1.png b/uploads/._Capture d’écran 2024-09-18 à 13.07.22-1.png deleted file mode 100644 index c23c8ab..0000000 Binary files a/uploads/._Capture d’écran 2024-09-18 à 13.07.22-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-18 à 13.07.22.png b/uploads/._Capture d’écran 2024-09-18 à 13.07.22.png deleted file mode 100644 index c23c8ab..0000000 Binary files a/uploads/._Capture d’écran 2024-09-18 à 13.07.22.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-26 à 19.22.52-1.png b/uploads/._Capture d’écran 2024-09-26 à 19.22.52-1.png deleted file mode 100644 index 78c0def..0000000 Binary files a/uploads/._Capture d’écran 2024-09-26 à 19.22.52-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-26 à 19.22.52.png b/uploads/._Capture d’écran 2024-09-26 à 19.22.52.png deleted file mode 100644 index 78c0def..0000000 Binary files a/uploads/._Capture d’écran 2024-09-26 à 19.22.52.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-30 à 18.02.08-1.png b/uploads/._Capture d’écran 2024-09-30 à 18.02.08-1.png deleted file mode 100644 index adcbd9e..0000000 Binary files a/uploads/._Capture d’écran 2024-09-30 à 18.02.08-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-09-30 à 18.02.08.png b/uploads/._Capture d’écran 2024-09-30 à 18.02.08.png deleted file mode 100644 index adcbd9e..0000000 Binary files a/uploads/._Capture d’écran 2024-09-30 à 18.02.08.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-10-16 à 11.12.01-1.png b/uploads/._Capture d’écran 2024-10-16 à 11.12.01-1.png deleted file mode 100644 index 41f2e33..0000000 Binary files a/uploads/._Capture d’écran 2024-10-16 à 11.12.01-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-10-16 à 11.12.01.png b/uploads/._Capture d’écran 2024-10-16 à 11.12.01.png deleted file mode 100644 index 41f2e33..0000000 Binary files a/uploads/._Capture d’écran 2024-10-16 à 11.12.01.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-10-26 à 16.34.28-1.png b/uploads/._Capture d’écran 2024-10-26 à 16.34.28-1.png deleted file mode 100644 index 75b50be..0000000 Binary files a/uploads/._Capture d’écran 2024-10-26 à 16.34.28-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-10-26 à 16.34.28.png b/uploads/._Capture d’écran 2024-10-26 à 16.34.28.png deleted file mode 100644 index 75b50be..0000000 Binary files a/uploads/._Capture d’écran 2024-10-26 à 16.34.28.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-05 à 00.01.54-1.png b/uploads/._Capture d’écran 2024-11-05 à 00.01.54-1.png deleted file mode 100644 index fa911ec..0000000 Binary files a/uploads/._Capture d’écran 2024-11-05 à 00.01.54-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-05 à 00.01.54.png b/uploads/._Capture d’écran 2024-11-05 à 00.01.54.png deleted file mode 100644 index fa911ec..0000000 Binary files a/uploads/._Capture d’écran 2024-11-05 à 00.01.54.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-08 à 18.32.31-1.png b/uploads/._Capture d’écran 2024-11-08 à 18.32.31-1.png deleted file mode 100644 index 55f3f36..0000000 Binary files a/uploads/._Capture d’écran 2024-11-08 à 18.32.31-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-08 à 18.32.31.png b/uploads/._Capture d’écran 2024-11-08 à 18.32.31.png deleted file mode 100644 index 55f3f36..0000000 Binary files a/uploads/._Capture d’écran 2024-11-08 à 18.32.31.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-08 à 18.40.58-1.png b/uploads/._Capture d’écran 2024-11-08 à 18.40.58-1.png deleted file mode 100644 index b1bf8eb..0000000 Binary files a/uploads/._Capture d’écran 2024-11-08 à 18.40.58-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-08 à 18.40.58.png b/uploads/._Capture d’écran 2024-11-08 à 18.40.58.png deleted file mode 100644 index b1bf8eb..0000000 Binary files a/uploads/._Capture d’écran 2024-11-08 à 18.40.58.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-11 à 10.06.29-1.png b/uploads/._Capture d’écran 2024-11-11 à 10.06.29-1.png deleted file mode 100644 index 78a7e6d..0000000 Binary files a/uploads/._Capture d’écran 2024-11-11 à 10.06.29-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-11 à 10.06.29.png b/uploads/._Capture d’écran 2024-11-11 à 10.06.29.png deleted file mode 100644 index 78a7e6d..0000000 Binary files a/uploads/._Capture d’écran 2024-11-11 à 10.06.29.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-15 à 12.02.55-1.png b/uploads/._Capture d’écran 2024-11-15 à 12.02.55-1.png deleted file mode 100644 index 28d69de..0000000 Binary files a/uploads/._Capture d’écran 2024-11-15 à 12.02.55-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-15 à 12.02.55.png b/uploads/._Capture d’écran 2024-11-15 à 12.02.55.png deleted file mode 100644 index 28d69de..0000000 Binary files a/uploads/._Capture d’écran 2024-11-15 à 12.02.55.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-21 à 14.45.29-1.png b/uploads/._Capture d’écran 2024-11-21 à 14.45.29-1.png deleted file mode 100644 index 8ac0d92..0000000 Binary files a/uploads/._Capture d’écran 2024-11-21 à 14.45.29-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-21 à 14.45.29.png b/uploads/._Capture d’écran 2024-11-21 à 14.45.29.png deleted file mode 100644 index 8ac0d92..0000000 Binary files a/uploads/._Capture d’écran 2024-11-21 à 14.45.29.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-23 à 10.16.55-1.png b/uploads/._Capture d’écran 2024-11-23 à 10.16.55-1.png deleted file mode 100644 index f50a9de..0000000 Binary files a/uploads/._Capture d’écran 2024-11-23 à 10.16.55-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-23 à 10.16.55.png b/uploads/._Capture d’écran 2024-11-23 à 10.16.55.png deleted file mode 100644 index f50a9de..0000000 Binary files a/uploads/._Capture d’écran 2024-11-23 à 10.16.55.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-23 à 11.10.13-1.png b/uploads/._Capture d’écran 2024-11-23 à 11.10.13-1.png deleted file mode 100644 index b39ee6d..0000000 Binary files a/uploads/._Capture d’écran 2024-11-23 à 11.10.13-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-11-23 à 11.10.13.png b/uploads/._Capture d’écran 2024-11-23 à 11.10.13.png deleted file mode 100644 index b39ee6d..0000000 Binary files a/uploads/._Capture d’écran 2024-11-23 à 11.10.13.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-11 à 14.28.35-1.png b/uploads/._Capture d’écran 2024-12-11 à 14.28.35-1.png deleted file mode 100644 index e1baed8..0000000 Binary files a/uploads/._Capture d’écran 2024-12-11 à 14.28.35-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-11 à 14.28.35.png b/uploads/._Capture d’écran 2024-12-11 à 14.28.35.png deleted file mode 100644 index e1baed8..0000000 Binary files a/uploads/._Capture d’écran 2024-12-11 à 14.28.35.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-14 à 11.24.42-1.png b/uploads/._Capture d’écran 2024-12-14 à 11.24.42-1.png deleted file mode 100644 index 390d161..0000000 Binary files a/uploads/._Capture d’écran 2024-12-14 à 11.24.42-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-14 à 11.24.42.png b/uploads/._Capture d’écran 2024-12-14 à 11.24.42.png deleted file mode 100644 index 390d161..0000000 Binary files a/uploads/._Capture d’écran 2024-12-14 à 11.24.42.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-19 à 20.50.04-1.png b/uploads/._Capture d’écran 2024-12-19 à 20.50.04-1.png deleted file mode 100644 index be1caa3..0000000 Binary files a/uploads/._Capture d’écran 2024-12-19 à 20.50.04-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-19 à 20.50.04.png b/uploads/._Capture d’écran 2024-12-19 à 20.50.04.png deleted file mode 100644 index be1caa3..0000000 Binary files a/uploads/._Capture d’écran 2024-12-19 à 20.50.04.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-19 à 20.56.21-1.png b/uploads/._Capture d’écran 2024-12-19 à 20.56.21-1.png deleted file mode 100644 index f665777..0000000 Binary files a/uploads/._Capture d’écran 2024-12-19 à 20.56.21-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-19 à 20.56.21.png b/uploads/._Capture d’écran 2024-12-19 à 20.56.21.png deleted file mode 100644 index f665777..0000000 Binary files a/uploads/._Capture d’écran 2024-12-19 à 20.56.21.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-27 à 12.11.30-1.png b/uploads/._Capture d’écran 2024-12-27 à 12.11.30-1.png deleted file mode 100644 index 49d80a1..0000000 Binary files a/uploads/._Capture d’écran 2024-12-27 à 12.11.30-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2024-12-27 à 12.11.30.png b/uploads/._Capture d’écran 2024-12-27 à 12.11.30.png deleted file mode 100644 index 49d80a1..0000000 Binary files a/uploads/._Capture d’écran 2024-12-27 à 12.11.30.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-14 à 16.29.46-1.png b/uploads/._Capture d’écran 2025-01-14 à 16.29.46-1.png deleted file mode 100644 index 02db39e..0000000 Binary files a/uploads/._Capture d’écran 2025-01-14 à 16.29.46-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-14 à 16.29.46.png b/uploads/._Capture d’écran 2025-01-14 à 16.29.46.png deleted file mode 100644 index 02db39e..0000000 Binary files a/uploads/._Capture d’écran 2025-01-14 à 16.29.46.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-14 à 16.33.58-1.png b/uploads/._Capture d’écran 2025-01-14 à 16.33.58-1.png deleted file mode 100644 index 8708cf7..0000000 Binary files a/uploads/._Capture d’écran 2025-01-14 à 16.33.58-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-14 à 16.33.58.png b/uploads/._Capture d’écran 2025-01-14 à 16.33.58.png deleted file mode 100644 index 8708cf7..0000000 Binary files a/uploads/._Capture d’écran 2025-01-14 à 16.33.58.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-16 à 23.10.19-1.png b/uploads/._Capture d’écran 2025-01-16 à 23.10.19-1.png deleted file mode 100644 index a29c851..0000000 Binary files a/uploads/._Capture d’écran 2025-01-16 à 23.10.19-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-16 à 23.10.19.png b/uploads/._Capture d’écran 2025-01-16 à 23.10.19.png deleted file mode 100644 index a29c851..0000000 Binary files a/uploads/._Capture d’écran 2025-01-16 à 23.10.19.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-27 à 09.43.47-1.png b/uploads/._Capture d’écran 2025-01-27 à 09.43.47-1.png deleted file mode 100644 index 04a618b..0000000 Binary files a/uploads/._Capture d’écran 2025-01-27 à 09.43.47-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-27 à 09.43.47.png b/uploads/._Capture d’écran 2025-01-27 à 09.43.47.png deleted file mode 100644 index 04a618b..0000000 Binary files a/uploads/._Capture d’écran 2025-01-27 à 09.43.47.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-28 à 16.57.17-1.png b/uploads/._Capture d’écran 2025-01-28 à 16.57.17-1.png deleted file mode 100644 index 2b757ba..0000000 Binary files a/uploads/._Capture d’écran 2025-01-28 à 16.57.17-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-28 à 16.57.17.png b/uploads/._Capture d’écran 2025-01-28 à 16.57.17.png deleted file mode 100644 index 2b757ba..0000000 Binary files a/uploads/._Capture d’écran 2025-01-28 à 16.57.17.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-29 à 10.19.09-1.png b/uploads/._Capture d’écran 2025-01-29 à 10.19.09-1.png deleted file mode 100644 index 72ab1c0..0000000 Binary files a/uploads/._Capture d’écran 2025-01-29 à 10.19.09-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-29 à 10.19.09.png b/uploads/._Capture d’écran 2025-01-29 à 10.19.09.png deleted file mode 100644 index 72ab1c0..0000000 Binary files a/uploads/._Capture d’écran 2025-01-29 à 10.19.09.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-31 à 12.48.01-1.png b/uploads/._Capture d’écran 2025-01-31 à 12.48.01-1.png deleted file mode 100644 index 72e584d..0000000 Binary files a/uploads/._Capture d’écran 2025-01-31 à 12.48.01-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-01-31 à 12.48.01.png b/uploads/._Capture d’écran 2025-01-31 à 12.48.01.png deleted file mode 100644 index 72e584d..0000000 Binary files a/uploads/._Capture d’écran 2025-01-31 à 12.48.01.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-03 à 13.21.51-1.png b/uploads/._Capture d’écran 2025-02-03 à 13.21.51-1.png deleted file mode 100644 index 80285b8..0000000 Binary files a/uploads/._Capture d’écran 2025-02-03 à 13.21.51-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-03 à 13.21.51.png b/uploads/._Capture d’écran 2025-02-03 à 13.21.51.png deleted file mode 100644 index 80285b8..0000000 Binary files a/uploads/._Capture d’écran 2025-02-03 à 13.21.51.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-08 à 21.22.43-1.png b/uploads/._Capture d’écran 2025-02-08 à 21.22.43-1.png deleted file mode 100644 index 5dac8d0..0000000 Binary files a/uploads/._Capture d’écran 2025-02-08 à 21.22.43-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-08 à 21.22.43.png b/uploads/._Capture d’écran 2025-02-08 à 21.22.43.png deleted file mode 100644 index 5dac8d0..0000000 Binary files a/uploads/._Capture d’écran 2025-02-08 à 21.22.43.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-09 à 15.55.53-1.png b/uploads/._Capture d’écran 2025-02-09 à 15.55.53-1.png deleted file mode 100644 index 6d5237b..0000000 Binary files a/uploads/._Capture d’écran 2025-02-09 à 15.55.53-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-09 à 15.55.53.png b/uploads/._Capture d’écran 2025-02-09 à 15.55.53.png deleted file mode 100644 index 6d5237b..0000000 Binary files a/uploads/._Capture d’écran 2025-02-09 à 15.55.53.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-19 à 12.26.10-1.png b/uploads/._Capture d’écran 2025-02-19 à 12.26.10-1.png deleted file mode 100644 index 89b7d3f..0000000 Binary files a/uploads/._Capture d’écran 2025-02-19 à 12.26.10-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-19 à 12.26.10.png b/uploads/._Capture d’écran 2025-02-19 à 12.26.10.png deleted file mode 100644 index 89b7d3f..0000000 Binary files a/uploads/._Capture d’écran 2025-02-19 à 12.26.10.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 12.56.42-1.png b/uploads/._Capture d’écran 2025-02-20 à 12.56.42-1.png deleted file mode 100644 index e647937..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 12.56.42-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 12.56.42.png b/uploads/._Capture d’écran 2025-02-20 à 12.56.42.png deleted file mode 100644 index e647937..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 12.56.42.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 12.58.58-1.png b/uploads/._Capture d’écran 2025-02-20 à 12.58.58-1.png deleted file mode 100644 index a48f23f..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 12.58.58-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 12.58.58.png b/uploads/._Capture d’écran 2025-02-20 à 12.58.58.png deleted file mode 100644 index a48f23f..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 12.58.58.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 14.19.14-1.png b/uploads/._Capture d’écran 2025-02-20 à 14.19.14-1.png deleted file mode 100644 index 800d222..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 14.19.14-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-20 à 14.19.14.png b/uploads/._Capture d’écran 2025-02-20 à 14.19.14.png deleted file mode 100644 index 800d222..0000000 Binary files a/uploads/._Capture d’écran 2025-02-20 à 14.19.14.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-25 à 00.57.42-1.png b/uploads/._Capture d’écran 2025-02-25 à 00.57.42-1.png deleted file mode 100644 index 870056d..0000000 Binary files a/uploads/._Capture d’écran 2025-02-25 à 00.57.42-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-02-25 à 00.57.42.png b/uploads/._Capture d’écran 2025-02-25 à 00.57.42.png deleted file mode 100644 index 870056d..0000000 Binary files a/uploads/._Capture d’écran 2025-02-25 à 00.57.42.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-06 à 11.31.52-1.png b/uploads/._Capture d’écran 2025-03-06 à 11.31.52-1.png deleted file mode 100644 index be19bd1..0000000 Binary files a/uploads/._Capture d’écran 2025-03-06 à 11.31.52-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-06 à 11.31.52.png b/uploads/._Capture d’écran 2025-03-06 à 11.31.52.png deleted file mode 100644 index be19bd1..0000000 Binary files a/uploads/._Capture d’écran 2025-03-06 à 11.31.52.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-11 à 20.39.17-1.png b/uploads/._Capture d’écran 2025-03-11 à 20.39.17-1.png deleted file mode 100644 index 2e83f01..0000000 Binary files a/uploads/._Capture d’écran 2025-03-11 à 20.39.17-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-11 à 20.39.17.png b/uploads/._Capture d’écran 2025-03-11 à 20.39.17.png deleted file mode 100644 index 2e83f01..0000000 Binary files a/uploads/._Capture d’écran 2025-03-11 à 20.39.17.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-19 à 09.32.37-1.png b/uploads/._Capture d’écran 2025-03-19 à 09.32.37-1.png deleted file mode 100644 index 0c54747..0000000 Binary files a/uploads/._Capture d’écran 2025-03-19 à 09.32.37-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-19 à 09.32.37.png b/uploads/._Capture d’écran 2025-03-19 à 09.32.37.png deleted file mode 100644 index 0c54747..0000000 Binary files a/uploads/._Capture d’écran 2025-03-19 à 09.32.37.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-19 à 11.08.14-1.png b/uploads/._Capture d’écran 2025-03-19 à 11.08.14-1.png deleted file mode 100644 index e36cccf..0000000 Binary files a/uploads/._Capture d’écran 2025-03-19 à 11.08.14-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-19 à 11.08.14.png b/uploads/._Capture d’écran 2025-03-19 à 11.08.14.png deleted file mode 100644 index e36cccf..0000000 Binary files a/uploads/._Capture d’écran 2025-03-19 à 11.08.14.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-20 à 12.04.00-1.png b/uploads/._Capture d’écran 2025-03-20 à 12.04.00-1.png deleted file mode 100644 index caaf1ff..0000000 Binary files a/uploads/._Capture d’écran 2025-03-20 à 12.04.00-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-20 à 12.04.00.png b/uploads/._Capture d’écran 2025-03-20 à 12.04.00.png deleted file mode 100644 index caaf1ff..0000000 Binary files a/uploads/._Capture d’écran 2025-03-20 à 12.04.00.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-29 à 22.46.10-1.png b/uploads/._Capture d’écran 2025-03-29 à 22.46.10-1.png deleted file mode 100644 index 64f5c51..0000000 Binary files a/uploads/._Capture d’écran 2025-03-29 à 22.46.10-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-29 à 22.46.10.png b/uploads/._Capture d’écran 2025-03-29 à 22.46.10.png deleted file mode 100644 index 64f5c51..0000000 Binary files a/uploads/._Capture d’écran 2025-03-29 à 22.46.10.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-29 à 22.46.29-1.png b/uploads/._Capture d’écran 2025-03-29 à 22.46.29-1.png deleted file mode 100644 index 9378382..0000000 Binary files a/uploads/._Capture d’écran 2025-03-29 à 22.46.29-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-03-29 à 22.46.29.png b/uploads/._Capture d’écran 2025-03-29 à 22.46.29.png deleted file mode 100644 index 9378382..0000000 Binary files a/uploads/._Capture d’écran 2025-03-29 à 22.46.29.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-07 à 08.53.37-1.png b/uploads/._Capture d’écran 2025-04-07 à 08.53.37-1.png deleted file mode 100644 index 8908126..0000000 Binary files a/uploads/._Capture d’écran 2025-04-07 à 08.53.37-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-07 à 08.53.37.png b/uploads/._Capture d’écran 2025-04-07 à 08.53.37.png deleted file mode 100644 index 8908126..0000000 Binary files a/uploads/._Capture d’écran 2025-04-07 à 08.53.37.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-09 à 13.36.19-1.png b/uploads/._Capture d’écran 2025-04-09 à 13.36.19-1.png deleted file mode 100644 index e0efb82..0000000 Binary files a/uploads/._Capture d’écran 2025-04-09 à 13.36.19-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-09 à 13.36.19.png b/uploads/._Capture d’écran 2025-04-09 à 13.36.19.png deleted file mode 100644 index e0efb82..0000000 Binary files a/uploads/._Capture d’écran 2025-04-09 à 13.36.19.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-09 à 13.40.31-1.png b/uploads/._Capture d’écran 2025-04-09 à 13.40.31-1.png deleted file mode 100644 index 992c886..0000000 Binary files a/uploads/._Capture d’écran 2025-04-09 à 13.40.31-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-09 à 13.40.31.png b/uploads/._Capture d’écran 2025-04-09 à 13.40.31.png deleted file mode 100644 index 992c886..0000000 Binary files a/uploads/._Capture d’écran 2025-04-09 à 13.40.31.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 09.34.27-1.png b/uploads/._Capture d’écran 2025-04-14 à 09.34.27-1.png deleted file mode 100644 index f7fd1e7..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 09.34.27-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 09.34.27.png b/uploads/._Capture d’écran 2025-04-14 à 09.34.27.png deleted file mode 100644 index f7fd1e7..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 09.34.27.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 09.42.44-1.png b/uploads/._Capture d’écran 2025-04-14 à 09.42.44-1.png deleted file mode 100644 index ed4a105..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 09.42.44-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 09.42.44.png b/uploads/._Capture d’écran 2025-04-14 à 09.42.44.png deleted file mode 100644 index ed4a105..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 09.42.44.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 11.13.06-1.png b/uploads/._Capture d’écran 2025-04-14 à 11.13.06-1.png deleted file mode 100644 index 6dc6796..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 11.13.06-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-04-14 à 11.13.06.png b/uploads/._Capture d’écran 2025-04-14 à 11.13.06.png deleted file mode 100644 index 6dc6796..0000000 Binary files a/uploads/._Capture d’écran 2025-04-14 à 11.13.06.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-19 à 09.53.35-1.png b/uploads/._Capture d’écran 2025-05-19 à 09.53.35-1.png deleted file mode 100644 index bef6e85..0000000 Binary files a/uploads/._Capture d’écran 2025-05-19 à 09.53.35-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-19 à 09.53.35.png b/uploads/._Capture d’écran 2025-05-19 à 09.53.35.png deleted file mode 100644 index bef6e85..0000000 Binary files a/uploads/._Capture d’écran 2025-05-19 à 09.53.35.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-22 à 11.24.11-1.png b/uploads/._Capture d’écran 2025-05-22 à 11.24.11-1.png deleted file mode 100644 index 3509671..0000000 Binary files a/uploads/._Capture d’écran 2025-05-22 à 11.24.11-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-22 à 11.24.11.png b/uploads/._Capture d’écran 2025-05-22 à 11.24.11.png deleted file mode 100644 index 3509671..0000000 Binary files a/uploads/._Capture d’écran 2025-05-22 à 11.24.11.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-23 à 13.13.50-1.png b/uploads/._Capture d’écran 2025-05-23 à 13.13.50-1.png deleted file mode 100644 index 7d3e669..0000000 Binary files a/uploads/._Capture d’écran 2025-05-23 à 13.13.50-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-23 à 13.13.50.png b/uploads/._Capture d’écran 2025-05-23 à 13.13.50.png deleted file mode 100644 index 7d3e669..0000000 Binary files a/uploads/._Capture d’écran 2025-05-23 à 13.13.50.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-28 à 11.10.04-1.png b/uploads/._Capture d’écran 2025-05-28 à 11.10.04-1.png deleted file mode 100644 index 21931ce..0000000 Binary files a/uploads/._Capture d’écran 2025-05-28 à 11.10.04-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-05-28 à 11.10.04.png b/uploads/._Capture d’écran 2025-05-28 à 11.10.04.png deleted file mode 100644 index 21931ce..0000000 Binary files a/uploads/._Capture d’écran 2025-05-28 à 11.10.04.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-03 à 17.26.41-1.png b/uploads/._Capture d’écran 2025-06-03 à 17.26.41-1.png deleted file mode 100644 index 4e6812a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-03 à 17.26.41-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-03 à 17.26.41.png b/uploads/._Capture d’écran 2025-06-03 à 17.26.41.png deleted file mode 100644 index 4e6812a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-03 à 17.26.41.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.06.23-1.png b/uploads/._Capture d’écran 2025-06-06 à 21.06.23-1.png deleted file mode 100644 index 28bf671..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.06.23-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.06.23.png b/uploads/._Capture d’écran 2025-06-06 à 21.06.23.png deleted file mode 100644 index 28bf671..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.06.23.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.06.39-1.png b/uploads/._Capture d’écran 2025-06-06 à 21.06.39-1.png deleted file mode 100644 index 90dcf8d..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.06.39-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.06.39.png b/uploads/._Capture d’écran 2025-06-06 à 21.06.39.png deleted file mode 100644 index 90dcf8d..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.06.39.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.25.37-1.png b/uploads/._Capture d’écran 2025-06-06 à 21.25.37-1.png deleted file mode 100644 index 0d5dcf6..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.25.37-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-06 à 21.25.37.png b/uploads/._Capture d’écran 2025-06-06 à 21.25.37.png deleted file mode 100644 index 0d5dcf6..0000000 Binary files a/uploads/._Capture d’écran 2025-06-06 à 21.25.37.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-10 à 17.02.57-1.png b/uploads/._Capture d’écran 2025-06-10 à 17.02.57-1.png deleted file mode 100644 index 5eabe0e..0000000 Binary files a/uploads/._Capture d’écran 2025-06-10 à 17.02.57-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-10 à 17.02.57.png b/uploads/._Capture d’écran 2025-06-10 à 17.02.57.png deleted file mode 100644 index 5eabe0e..0000000 Binary files a/uploads/._Capture d’écran 2025-06-10 à 17.02.57.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-11 à 19.08.50-1.png b/uploads/._Capture d’écran 2025-06-11 à 19.08.50-1.png deleted file mode 100644 index d83004a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-11 à 19.08.50-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-11 à 19.08.50.png b/uploads/._Capture d’écran 2025-06-11 à 19.08.50.png deleted file mode 100644 index d83004a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-11 à 19.08.50.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-11 à 19.09.38-1.png b/uploads/._Capture d’écran 2025-06-11 à 19.09.38-1.png deleted file mode 100644 index e9604ea..0000000 Binary files a/uploads/._Capture d’écran 2025-06-11 à 19.09.38-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-11 à 19.09.38.png b/uploads/._Capture d’écran 2025-06-11 à 19.09.38.png deleted file mode 100644 index e9604ea..0000000 Binary files a/uploads/._Capture d’écran 2025-06-11 à 19.09.38.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-13 à 13.04.47-1.png b/uploads/._Capture d’écran 2025-06-13 à 13.04.47-1.png deleted file mode 100644 index e90aff0..0000000 Binary files a/uploads/._Capture d’écran 2025-06-13 à 13.04.47-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-13 à 13.04.47.png b/uploads/._Capture d’écran 2025-06-13 à 13.04.47.png deleted file mode 100644 index e90aff0..0000000 Binary files a/uploads/._Capture d’écran 2025-06-13 à 13.04.47.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.26.43-1.png b/uploads/._Capture d’écran 2025-06-18 à 14.26.43-1.png deleted file mode 100644 index c297c41..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.26.43-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.26.43.png b/uploads/._Capture d’écran 2025-06-18 à 14.26.43.png deleted file mode 100644 index c297c41..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.26.43.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.37.48-1.png b/uploads/._Capture d’écran 2025-06-18 à 14.37.48-1.png deleted file mode 100644 index 4c9bb29..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.37.48-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.37.48.png b/uploads/._Capture d’écran 2025-06-18 à 14.37.48.png deleted file mode 100644 index 4c9bb29..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.37.48.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.47.05-1.png b/uploads/._Capture d’écran 2025-06-18 à 14.47.05-1.png deleted file mode 100644 index 0b0ce6a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.47.05-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 14.47.05.png b/uploads/._Capture d’écran 2025-06-18 à 14.47.05.png deleted file mode 100644 index 0b0ce6a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 14.47.05.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 16.07.14-1.png b/uploads/._Capture d’écran 2025-06-18 à 16.07.14-1.png deleted file mode 100644 index 9e9127a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 16.07.14-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 16.07.14.png b/uploads/._Capture d’écran 2025-06-18 à 16.07.14.png deleted file mode 100644 index 9e9127a..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 16.07.14.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 23.16.28-1.png b/uploads/._Capture d’écran 2025-06-18 à 23.16.28-1.png deleted file mode 100644 index 647e86c..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 23.16.28-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-18 à 23.16.28.png b/uploads/._Capture d’écran 2025-06-18 à 23.16.28.png deleted file mode 100644 index 647e86c..0000000 Binary files a/uploads/._Capture d’écran 2025-06-18 à 23.16.28.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-19 à 00.07.35-1.png b/uploads/._Capture d’écran 2025-06-19 à 00.07.35-1.png deleted file mode 100644 index b9b70db..0000000 Binary files a/uploads/._Capture d’écran 2025-06-19 à 00.07.35-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-19 à 00.07.35.png b/uploads/._Capture d’écran 2025-06-19 à 00.07.35.png deleted file mode 100644 index b9b70db..0000000 Binary files a/uploads/._Capture d’écran 2025-06-19 à 00.07.35.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 10.34.04-1.png b/uploads/._Capture d’écran 2025-06-24 à 10.34.04-1.png deleted file mode 100644 index cae08fa..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 10.34.04-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 10.34.04.png b/uploads/._Capture d’écran 2025-06-24 à 10.34.04.png deleted file mode 100644 index cae08fa..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 10.34.04.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.14.26-1.png b/uploads/._Capture d’écran 2025-06-24 à 21.14.26-1.png deleted file mode 100644 index e82a4a9..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.14.26-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.14.26.png b/uploads/._Capture d’écran 2025-06-24 à 21.14.26.png deleted file mode 100644 index e82a4a9..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.14.26.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.27.22-1.png b/uploads/._Capture d’écran 2025-06-24 à 21.27.22-1.png deleted file mode 100644 index 250f216..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.27.22-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.27.22.png b/uploads/._Capture d’écran 2025-06-24 à 21.27.22.png deleted file mode 100644 index 250f216..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.27.22.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.29.38-1.png b/uploads/._Capture d’écran 2025-06-24 à 21.29.38-1.png deleted file mode 100644 index e3f7bfc..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.29.38-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-24 à 21.29.38.png b/uploads/._Capture d’écran 2025-06-24 à 21.29.38.png deleted file mode 100644 index e3f7bfc..0000000 Binary files a/uploads/._Capture d’écran 2025-06-24 à 21.29.38.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-27 à 16.05.25-1.png b/uploads/._Capture d’écran 2025-06-27 à 16.05.25-1.png deleted file mode 100644 index 6cd6a34..0000000 Binary files a/uploads/._Capture d’écran 2025-06-27 à 16.05.25-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-27 à 16.05.25.png b/uploads/._Capture d’écran 2025-06-27 à 16.05.25.png deleted file mode 100644 index 6cd6a34..0000000 Binary files a/uploads/._Capture d’écran 2025-06-27 à 16.05.25.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-28 à 14.01.37-1.png b/uploads/._Capture d’écran 2025-06-28 à 14.01.37-1.png deleted file mode 100644 index f8ddd53..0000000 Binary files a/uploads/._Capture d’écran 2025-06-28 à 14.01.37-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-06-28 à 14.01.37.png b/uploads/._Capture d’écran 2025-06-28 à 14.01.37.png deleted file mode 100644 index f8ddd53..0000000 Binary files a/uploads/._Capture d’écran 2025-06-28 à 14.01.37.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-01 à 12.33.27-1.png b/uploads/._Capture d’écran 2025-07-01 à 12.33.27-1.png deleted file mode 100644 index 3b75adc..0000000 Binary files a/uploads/._Capture d’écran 2025-07-01 à 12.33.27-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-01 à 12.33.27.png b/uploads/._Capture d’écran 2025-07-01 à 12.33.27.png deleted file mode 100644 index 3b75adc..0000000 Binary files a/uploads/._Capture d’écran 2025-07-01 à 12.33.27.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-08 à 10.04.06-1.png b/uploads/._Capture d’écran 2025-07-08 à 10.04.06-1.png deleted file mode 100644 index 239f8b3..0000000 Binary files a/uploads/._Capture d’écran 2025-07-08 à 10.04.06-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-08 à 10.04.06.png b/uploads/._Capture d’écran 2025-07-08 à 10.04.06.png deleted file mode 100644 index 239f8b3..0000000 Binary files a/uploads/._Capture d’écran 2025-07-08 à 10.04.06.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-08 à 10.15.34-1.png b/uploads/._Capture d’écran 2025-07-08 à 10.15.34-1.png deleted file mode 100644 index e45bd1c..0000000 Binary files a/uploads/._Capture d’écran 2025-07-08 à 10.15.34-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-08 à 10.15.34.png b/uploads/._Capture d’écran 2025-07-08 à 10.15.34.png deleted file mode 100644 index e45bd1c..0000000 Binary files a/uploads/._Capture d’écran 2025-07-08 à 10.15.34.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-09 à 18.48.39-1.png b/uploads/._Capture d’écran 2025-07-09 à 18.48.39-1.png deleted file mode 100644 index edb8f2c..0000000 Binary files a/uploads/._Capture d’écran 2025-07-09 à 18.48.39-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-09 à 18.48.39.png b/uploads/._Capture d’écran 2025-07-09 à 18.48.39.png deleted file mode 100644 index edb8f2c..0000000 Binary files a/uploads/._Capture d’écran 2025-07-09 à 18.48.39.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-11 à 19.30.43-1.png b/uploads/._Capture d’écran 2025-07-11 à 19.30.43-1.png deleted file mode 100644 index 0d65a78..0000000 Binary files a/uploads/._Capture d’écran 2025-07-11 à 19.30.43-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-11 à 19.30.43.png b/uploads/._Capture d’écran 2025-07-11 à 19.30.43.png deleted file mode 100644 index 0d65a78..0000000 Binary files a/uploads/._Capture d’écran 2025-07-11 à 19.30.43.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-17 à 15.20.17-1.png b/uploads/._Capture d’écran 2025-07-17 à 15.20.17-1.png deleted file mode 100644 index 77396c2..0000000 Binary files a/uploads/._Capture d’écran 2025-07-17 à 15.20.17-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-17 à 15.20.17.png b/uploads/._Capture d’écran 2025-07-17 à 15.20.17.png deleted file mode 100644 index 77396c2..0000000 Binary files a/uploads/._Capture d’écran 2025-07-17 à 15.20.17.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-22 à 11.27.29-1.png b/uploads/._Capture d’écran 2025-07-22 à 11.27.29-1.png deleted file mode 100644 index 2096016..0000000 Binary files a/uploads/._Capture d’écran 2025-07-22 à 11.27.29-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-22 à 11.27.29.png b/uploads/._Capture d’écran 2025-07-22 à 11.27.29.png deleted file mode 100644 index 2096016..0000000 Binary files a/uploads/._Capture d’écran 2025-07-22 à 11.27.29.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-28 à 17.54.53-1.png b/uploads/._Capture d’écran 2025-07-28 à 17.54.53-1.png deleted file mode 100644 index 1d07105..0000000 Binary files a/uploads/._Capture d’écran 2025-07-28 à 17.54.53-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-07-28 à 17.54.53.png b/uploads/._Capture d’écran 2025-07-28 à 17.54.53.png deleted file mode 100644 index 1d07105..0000000 Binary files a/uploads/._Capture d’écran 2025-07-28 à 17.54.53.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-11 à 14.01.52-1.png b/uploads/._Capture d’écran 2025-08-11 à 14.01.52-1.png deleted file mode 100644 index 85986ef..0000000 Binary files a/uploads/._Capture d’écran 2025-08-11 à 14.01.52-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-11 à 14.01.52.png b/uploads/._Capture d’écran 2025-08-11 à 14.01.52.png deleted file mode 100644 index 85986ef..0000000 Binary files a/uploads/._Capture d’écran 2025-08-11 à 14.01.52.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-15 à 21.03.57-1.png b/uploads/._Capture d’écran 2025-08-15 à 21.03.57-1.png deleted file mode 100644 index 1124b37..0000000 Binary files a/uploads/._Capture d’écran 2025-08-15 à 21.03.57-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-15 à 21.03.57.png b/uploads/._Capture d’écran 2025-08-15 à 21.03.57.png deleted file mode 100644 index 1124b37..0000000 Binary files a/uploads/._Capture d’écran 2025-08-15 à 21.03.57.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-15 à 21.04.52-1.png b/uploads/._Capture d’écran 2025-08-15 à 21.04.52-1.png deleted file mode 100644 index 3d77c15..0000000 Binary files a/uploads/._Capture d’écran 2025-08-15 à 21.04.52-1.png and /dev/null differ diff --git a/uploads/._Capture d’écran 2025-08-15 à 21.04.52.png b/uploads/._Capture d’écran 2025-08-15 à 21.04.52.png deleted file mode 100644 index 3d77c15..0000000 Binary files a/uploads/._Capture d’écran 2025-08-15 à 21.04.52.png and /dev/null differ diff --git a/uploads/._logo 3F-1.png b/uploads/._logo 3F-1.png deleted file mode 100644 index 77caaf4..0000000 Binary files a/uploads/._logo 3F-1.png and /dev/null differ diff --git a/uploads/._logo 3F.png b/uploads/._logo 3F.png deleted file mode 100644 index 77caaf4..0000000 Binary files a/uploads/._logo 3F.png and /dev/null differ