Skip to content

Diagrammes de Classes

Structure du Système

classDiagram
    %% Controllers
    class PartnerController {
        -OrganizationService organizationService
        -EstablishmentService establishmentService
        +addOrganization(Organization)
        +updateOrganization(String, Organization)
        +deleteOrganization(String)
        +getOrganization(String)
        +listOrganizations(Integer, Integer)
        +activateOrganization(String)
        +deactivateOrganization(String)
        +addEstablishment(Establishment)
        +updateEstablishment(String, Establishment)
        +deleteEstablishment(String)
        +getEstablishment(String)
        +listEstablishments(String, Integer, Integer)
    }

    %% Services
    class OrganizationService {
        -CommonService commonService
        -OrganizationRepository organizationRepository
        -EstablishmentRepository establishmentRepository
        +addOrganization(Organization)
        +updateOrganization(String, Organization)
        +deleteOrganization(String)
        +activateOrganization(String)
        +deactivateOrganization(String)
        +getOrganization(String)
        +listOrganizations(Integer, Integer)
    }

    class EstablishmentService {
        -CommonService commonService
        -EstablishmentRepository establishmentRepository
        +addEstablishment(Establishment)
        +updateEstablishment(String, Establishment)
        +deleteEstablishment(String)
        +getEstablishment(String)
        +listEstablishmentsByOrganization(String, Integer, Integer)
    }

    class CommonService {
        -TripsApiWebClient tripsApiWebClient
        -OrganizationRepository organizationRepository
        +getOrganizationActiveById(String)
        +getOrganizationDeactivatedById(String)
        +getTripsIdsByEstablishmentId(String)
        +deleteTripsByEstablishmentId(String, boolean)
        +archivePublications(List~String~)
    }

    %% Entities
    class OrganizationEntity {
        -String id
        -String name
        -String picture
        -AddressEntity address
        -StatusEnum status
        -boolean isDeleted
        -boolean isActive
    }

    class EstablishmentEntity {
        -String id
        -String parentOrganism
        -String name
        -String picture
        -String supportingDocumentsID
        -LegalStatusEnum legalStatus
        -AddressEntity address
        -StatusEnum status
        -List~ExtensionAttributEntity~ companyInformation
        -List~ActivitiesEnum~ activities
        -boolean isDeleted
        -boolean isActive
    }

    class AddressEntity {
        -String id
        -String number
        -String route
        -String zipPostal
        -String city
        -String country
        -String complement
        -String stage
        -boolean isDeleted
    }

    class ExtensionAttributEntity {
        -String id
        -String name
        -String value
        -boolean isDeleted
    }

    %% Repositories
    class OrganizationRepository {
        +findByIdAndIsDeletedFalseAndIsActiveTrue(String)
        +findByIdAndIsDeletedFalseAndIsActiveFalse(String)
    }

    class EstablishmentRepository {
        +findByParentOrganism(String, Pageable)
        +findByParentOrganism(String)
    }

    class AddressRepository {
    }

    %% Mappers
    class OrganizationMapper {
        +dtoToEntity(OrganizationEntity, Organization)
        +dtoToEntity(Organization)
        +entityToRepresentation(OrganizationEntity)
        +entityToDto(OrganizationEntity)
    }

    class EstablishmentMapper {
        +dtoToEntity(EstablishmentEntity, Establishment)
        +dtoToEntity(Establishment)
        +entityToRepresentation(EstablishmentEntity)
        +entityToDto(EstablishmentEntity)
    }

    class AddressMapper {
        +mapAddressEntityToAddress(Address, AddressEntity)
        +mapAddressDtoToAddressEntity(AddressEntity, Address)
    }

    %% Relationships
    PartnerController --> OrganizationService
    PartnerController --> EstablishmentService
    OrganizationService --> CommonService
    OrganizationService --> OrganizationRepository
    EstablishmentService --> CommonService
    EstablishmentService --> EstablishmentRepository
    OrganizationEntity --> AddressEntity
    EstablishmentEntity --> AddressEntity
    EstablishmentEntity --> ExtensionAttributEntity
    OrganizationRepository --|> JpaRepository
    EstablishmentRepository --|> JpaRepository
    AddressRepository --|> JpaRepository