diff --git a/Collaborateur_Epa_Back/.dockerignore b/Collaborateur_Epa_Back/.dockerignore new file mode 100644 index 0000000..3729ff0 --- /dev/null +++ b/Collaborateur_Epa_Back/.dockerignore @@ -0,0 +1,25 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md \ No newline at end of file diff --git a/Collaborateur_Epa_Back/.env b/Collaborateur_Epa_Back/.env new file mode 100644 index 0000000..91933b3 --- /dev/null +++ b/Collaborateur_Epa_Back/.env @@ -0,0 +1,6 @@ +DATABASE_HOSTNAME=localhost +DATABASE_PORT=3306 +DATABASE_NAME=collaborateur_epa +APP_DB_USERNAME=root +APP_DB_PASSWORD=root +APP_DB_ROOT_PASSWORD=root diff --git a/Collaborateur_Epa_Back/docker-compose.dcproj b/Collaborateur_Epa_Back/docker-compose.dcproj new file mode 100644 index 0000000..344a07b --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.dcproj @@ -0,0 +1,19 @@ + + + + 2.1 + Linux + 815b6abd-7550-4d79-a53b-e84f4d4a7475 + LaunchBrowser + {Scheme}://localhost:{ServicePort}/swagger + espacecollab.backend.api + + + + docker-compose.yml + + + + + + \ No newline at end of file diff --git a/Collaborateur_Epa_Back/docker-compose.override.yml b/Collaborateur_Epa_Back/docker-compose.override.yml new file mode 100644 index 0000000..3c5310e --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.override.yml @@ -0,0 +1,11 @@ +version: '3.4' + +services: + espacecollab.backend.api: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=https://+:443;http://+:80 + - ASPNETCORE_Kestrel__Certificates__Default__Password=password + - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx + volumes: + - ~/.aspnet/https:/https:ro \ No newline at end of file diff --git a/Collaborateur_Epa_Back/docker-compose.yml b/Collaborateur_Epa_Back/docker-compose.yml new file mode 100644 index 0000000..c9f180c --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.yml @@ -0,0 +1,37 @@ +version: '3.4' + +volumes: + data-volume: {} + +services: + + db: + image: "mariadb:10.7.1" + restart: always + environment: + - MYSQL_DATABASE=${DATABASE_NAME} + - MYSQL_USERNAME=${APP_DB_USERNAME} + - MYSQL_PASSWORD=${APP_DB_PASSWORD} + - MYSQL_ROOT_PASSWORD=${APP_DB_ROOT_PASSWORD} + volumes: + - data-volume:/var/lib/mysql + - ./init_db.sql:/docker-entrypoint-initdb.d/init.sql + + espacecollab.backend.api: + image: ${DOCKER_REGISTRY-}espacecollabbackendapi + build: + context: . + dockerfile: espacecollab.backend.api/Dockerfile + ports: + - "5000:80" + - "5001:443" + links: + - db + environment: + - DATABASE_HOSTNAME=db + - DATABASE_PORT=3306 + - DATABASE_NAME=${DATABASE_NAME} + - DATABASE_USERNAME=${APP_DB_USERNAME} + - DATABASE_PASSWORD=${APP_DB_PASSWORD} + + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile b/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile new file mode 100644 index 0000000..9d074f5 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile @@ -0,0 +1,29 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["espacecollab.backend.api/espacecollab.backend.api.csproj", "espacecollab.backend.api/"] +COPY ["espacecollab.backend.appservices/espacecollab.backend.appservices.csproj", "espacecollab.backend.appservices/"] +COPY ["espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj", "espacecollab.backend.appservices.dtos/"] +COPY ["espacecollab.backend.infrastructure.sql.dtos/espacecollab.backend.infrastructure.sql.dtos.csproj", "espacecollab.backend.infrastructure.sql.dtos/"] +COPY ["espacecollab.backend.appservices.interfaces/espacecollab.backend.appservices.interfaces.csproj", "espacecollab.backend.appservices.interfaces/"] +COPY ["espacecollab.backend.infrastructure.sql/espacecollab.backend.infrastructure.sql.csproj", "espacecollab.backend.infrastructure.sql/"] +COPY ["espacecollab.backend.infrastructure.interfaces/espacecollab.backend.infrastructure.interfaces.csproj", "espacecollab.backend.infrastructure.interfaces/"] +COPY ["espacecollab.backend.infrastructure.fake/espacecollab.backend.infrastructure.fake.csproj", "espacecollab.backend.infrastructure.fake/"] +RUN dotnet restore "espacecollab.backend.api/espacecollab.backend.api.csproj" +COPY . . +WORKDIR "/src/espacecollab.backend.api" +RUN dotnet build "espacecollab.backend.api.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "espacecollab.backend.api.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "espacecollab.backend.api.dll"] \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json index 631c563..8505599 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, @@ -11,13 +11,13 @@ "profiles": { "espacecollab.backend.api": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "https://localhost:7125;http://localhost:5125", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "applicationUrl": "https://localhost:8081;http://localhost:8080", + "dotnetRunMessages": true }, "IIS Express": { "commandName": "IISExpress", @@ -26,6 +26,13 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } + }, + "Docker": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "publishAllPorts": true, + "useSSL": true } } -} +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json index bc26e00..5e85baf 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json @@ -8,6 +8,7 @@ "AllowedHosts": "*", "Sql": { "LoadFake": false, - "ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" + "ConnectionString": "server=db;user=root;password=root;database=collaborateur_epa" + //"ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj index 0c9099a..c417134 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj @@ -4,10 +4,14 @@ net6.0 enable enable + 5a7cf5e2-2bf7-4dae-aea9-2522da3cf955 + Linux + ..\docker-compose.dcproj + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.sln b/Collaborateur_Epa_Back/espacecollab.backend.sln index cfbc75f..3def954 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.sln +++ b/Collaborateur_Epa_Back/espacecollab.backend.sln @@ -25,7 +25,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.infras EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.appservices.interfaces", "espacecollab.backend.appservices.interfaces\espacecollab.backend.appservices.interfaces.csproj", "{7872657E-46E2-44A1-AFA6-0D3B9E45084A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "espacecollab.backend.api.tests", "espacecollab.backend.api.tests\espacecollab.backend.api.tests.csproj", "{5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.api.tests", "espacecollab.backend.api.tests\espacecollab.backend.api.tests.csproj", "{5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}" +EndProject +Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{815B6ABD-7550-4D79-A53B-E84F4D4A7475}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "9 Database", "9 Database", "{4C74D622-BEC1-41C9-95F1-7C44375B531B}" + ProjectSection(SolutionItems) = preProject + init_db.sql = init_db.sql + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +76,10 @@ Global {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Release|Any CPU.Build.0 = Release|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Debug|Any CPU.Build.0 = Debug|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Release|Any CPU.ActiveCfg = Release|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Collaborateur_Epa_Back/init_db.sql b/Collaborateur_Epa_Back/init_db.sql new file mode 100644 index 0000000..4100fc7 --- /dev/null +++ b/Collaborateur_Epa_Back/init_db.sql @@ -0,0 +1,285 @@ +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; + + +CREATE SCHEMA IF NOT EXISTS `collaborateur_epa` DEFAULT CHARACTER SET latin1 ; +USE `collaborateur_epa` ; + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`agence` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`agence` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +AUTO_INCREMENT = 5 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`businessunit` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`businessunit` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `AgenceId` INT NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE, + INDEX `FK_BUSINESS_UNIT_AGENCE` (`AgenceId` ASC) VISIBLE, + CONSTRAINT `FK_BUSINESS_UNIT_AGENCE` + FOREIGN KEY (`AgenceId`) + REFERENCES `collaborateur_epa`.`agence` (`Id`)) +ENGINE = InnoDB +AUTO_INCREMENT = 2 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateur` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateur` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `FirstName` VARCHAR(100) NOT NULL, + `BirthDate` DATE NOT NULL, + `Gender` ENUM('masculin', 'feminin', 'autre') NOT NULL DEFAULT 'masculin', + `Status` ENUM('cadre', 'noncadre', 'alternant', 'stagiaire') NOT NULL DEFAULT 'noncadre', + `ChildrenNumber` SMALLINT NOT NULL, + `Address` VARCHAR(200) NOT NULL, + `Telephone` VARCHAR(15) NOT NULL, + `PersonalMail` VARCHAR(100) NOT NULL, + `ApsideMail` VARCHAR(100) NOT NULL, + `ResignationDate` DATE NULL DEFAULT NULL, + `BusinessUnitId` INT NOT NULL, + `ReferrerId` INT NULL DEFAULT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_BUSINESSUNIT` (`BusinessUnitId` ASC) VISIBLE, + INDEX `FK_COLLABORATEUR_PARRAIN` (`ReferrerId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_BUSINESSUNIT` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_PARRAIN` + FOREIGN KEY (`ReferrerId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +AUTO_INCREMENT = 13 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurappartientbusinessunit` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurappartientbusinessunit` ( + `CollaborateurId` INT NOT NULL, + `BusinessUnitId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `BusinessUnitId`), + INDEX `FK_BUSINESS_UNIT_COLLABORATEUR` (`BusinessUnitId` ASC) VISIBLE, + CONSTRAINT `FK_BUSINESS_UNIT_COLLABORATEUR` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_BUSINESS_UNIT` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`projet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`projet` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `Client` VARCHAR(100) NOT NULL, + `Description` VARCHAR(100) NOT NULL, + `StartingDate` DATE NOT NULL, + `EndingDate` DATE NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurcollaboreprojet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurcollaboreprojet` ( + `CollaborateurId` INT NOT NULL, + `ProjetId` INT NOT NULL, + `isManager` TINYINT(1) NOT NULL, + PRIMARY KEY (`CollaborateurId`, `ProjetId`), + INDEX `FK_PROJET_COLLABORE_COLLABORATEUR` (`ProjetId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_COLLABORE_PROJET` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_PROJET_COLLABORE_COLLABORATEUR` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`periodeessai` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`periodeessai` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `StartingDate` DATE NOT NULL, + `PlannedEndingDate` DATE NOT NULL, + `RealEndingDate` DATE NOT NULL, + `Comment` VARCHAR(100) NOT NULL, + `Issue` ENUM('VALIDEE', 'PROLONGEE_COLLAB', 'PROLONGEE_APSIDE', 'ARRETEE_COLLAB', 'ARRETEE_APSIDE') NOT NULL, + `CollaborateurId` INT NOT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_PERIODEESSAI` (`CollaborateurId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_PERIODEESSAI` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateureffectueperiodeessai` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateureffectueperiodeessai` ( + `CollaborateurId` INT NOT NULL, + `PeriodeEssaiId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `PeriodeEssaiId`), + INDEX `FK_PERIODE_ESSAI_COLLABORATEUR` (`PeriodeEssaiId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_PERIODE_ESSAI` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_PERIODE_ESSAI_COLLABORATEUR` + FOREIGN KEY (`PeriodeEssaiId`) + REFERENCES `collaborateur_epa`.`periodeessai` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`fonction` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`fonction` ( + `Id` INT NOT NULL, + `intitule` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Id` (`Id` ASC) VISIBLE, + UNIQUE INDEX `intitule` (`intitule` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurestfonction` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurestfonction` ( + `CollaborateurId` INT NOT NULL, + `FonctionId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `FonctionId`), + INDEX `FK_FONCTION_COLLABORATEUR` (`FonctionId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_FONCTION` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_FONCTION_COLLABORATEUR` + FOREIGN KEY (`FonctionId`) + REFERENCES `collaborateur_epa`.`fonction` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`technologie` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`technologie` ( + `Id` INT NOT NULL, + `Name` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Id` (`Id` ASC) VISIBLE, + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`projetutilisetechnologie` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`projetutilisetechnologie` ( + `ProjetId` INT NOT NULL, + `TechnologieId` INT NOT NULL, + PRIMARY KEY (`ProjetId`, `TechnologieId`), + INDEX `FK_TECHNOLOGIE_PROJET` (`TechnologieId` ASC) VISIBLE, + CONSTRAINT `FK_PROJET_TECHNOLOGIE` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`), + CONSTRAINT `FK_TECHNOLOGIE_PROJET` + FOREIGN KEY (`TechnologieId`) + REFERENCES `collaborateur_epa`.`technologie` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`referencement` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`referencement` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `StartingDate` DATE NOT NULL, + `EndingDate` DATE NOT NULL, + `ReferredId` INT NOT NULL, + `ReferrerId` INT NOT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_REFERE` (`ReferredId` ASC) VISIBLE, + INDEX `FK_COLLABORATEUR_REFERENT` (`ReferrerId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_REFERE` + FOREIGN KEY (`ReferredId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_REFERENT` + FOREIGN KEY (`ReferrerId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`site` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`site` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `Address` VARCHAR(200) NOT NULL, + `BusinessUnitId` INT NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE, + INDEX `FK_SITE_BUSINESS_UNIT` (`BusinessUnitId` ASC) VISIBLE, + CONSTRAINT `FK_SITE_BUSINESS_UNIT` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`sitedeveloppeprojet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`sitedeveloppeprojet` ( + `SiteId` INT NOT NULL, + `ProjetId` INT NOT NULL, + PRIMARY KEY (`SiteId`, `ProjetId`), + INDEX `FK_PROJET_SITE` (`ProjetId` ASC) VISIBLE, + CONSTRAINT `FK_PROJET_SITE` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`), + CONSTRAINT `FK_SITE_PROJET` + FOREIGN KEY (`SiteId`) + REFERENCES `collaborateur_epa`.`site` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; \ No newline at end of file