ajout de la fonctionnalité login et modification profil

This commit is contained in:
2026-03-23 23:06:33 +01:00
parent eb9d1f496b
commit a7ac890c17
20 changed files with 867 additions and 67 deletions
@@ -0,0 +1,122 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
// Créer la table Role
Schema::create('roles', function (Blueprint $table) {
$table->id('ID_Role');
$table->string('Nom', 100)->unique();
});
// Créer la table Utilisateur
Schema::create('utilisateurs', function (Blueprint $table) {
$table->id('ID_Utilisateur');
$table->string('Email', 255)->unique();
$table->string('MotDePasse', 255);
$table->string('Pseudo', 100)->unique()->nullable();
$table->timestamp('DateInscription')->useCurrent();
$table->enum('Statut', ['Actif', 'Inactif'])->default('Actif');
$table->foreignId('ID_Role')->constrained('roles', 'ID_Role');
});
// Créer la table Type_Ressource
Schema::create('type_ressources', function (Blueprint $table) {
$table->id('ID_Type_Ressource');
$table->string('Format', 100)->unique();
});
// Créer la table Categorie
Schema::create('categories', function (Blueprint $table) {
$table->id('ID_Categorie');
$table->string('Nom', 100);
$table->text('Description')->nullable();
});
// Créer la table Ressource
Schema::create('ressources', function (Blueprint $table) {
$table->id('ID_Ressource');
$table->string('Titre', 255);
$table->text('Contenu')->nullable();
$table->string('URL', 2048)->nullable();
$table->timestamp('DateCreation')->useCurrent();
$table->enum('Visibilite', ['Privée', 'Partagée', 'Publique'])->default('Privée');
$table->enum('Statut', ['En attente', 'Publiée', 'Suspendue', 'Rejetée'])->default('En attente');
$table->foreignId('ID_Type_Ressource')->constrained('type_ressources', 'ID_Type_Ressource');
$table->foreignId('ID_Moderateur_Validation')->nullable()->constrained('utilisateurs', 'ID_Utilisateur');
$table->foreignId('ID_Utilisateur_Createur')->constrained('utilisateurs', 'ID_Utilisateur');
});
// Créer la table Commentaire
Schema::create('commentaires', function (Blueprint $table) {
$table->id('ID_Commentaire');
$table->text('Texte');
$table->timestamp('DatePublication')->useCurrent();
$table->enum('Statut', ['En attente', 'Approuvé', 'Rejeté'])->default('En attente');
$table->foreignId('ID_Parent_Commentaire')->nullable()->constrained('commentaires', 'ID_Commentaire');
$table->foreignId('ID_Utilisateur')->constrained('utilisateurs', 'ID_Utilisateur');
$table->foreignId('ID_Ressource')->constrained('ressources', 'ID_Ressource');
});
// Créer la table Activite
Schema::create('activites', function (Blueprint $table) {
$table->id('ID_Instance');
$table->timestamp('DateDebut')->useCurrent();
$table->timestamp('DateFin')->useCurrent();
$table->foreignId('ID_Utilisateur_Hote')->constrained('utilisateurs', 'ID_Utilisateur');
$table->foreignId('ID_Ressource')->constrained('ressources', 'ID_Ressource');
});
// Créer la table Activite_Message
Schema::create('activite_messages', function (Blueprint $table) {
$table->id('ID_Message');
$table->text('Message');
$table->timestamp('Timestamp')->useCurrent();
$table->foreignId('ID_Utilisateur_Emetteur')->constrained('utilisateurs', 'ID_Utilisateur');
$table->foreignId('ID_Instance')->constrained('activites', 'ID_Instance');
});
// Créer la table Ressource_Categorie
Schema::create('ressource_categories', function (Blueprint $table) {
$table->foreignId('ID_Ressource')->constrained('ressources', 'ID_Ressource');
$table->foreignId('ID_Categorie')->constrained('categories', 'ID_Categorie');
$table->primary(['ID_Ressource', 'ID_Categorie']);
});
// Créer la table Utilisateur_Progression
Schema::create('utilisateur_progressions', function (Blueprint $table) {
$table->foreignId('ID_Utilisateur')->constrained('utilisateurs', 'ID_Utilisateur');
$table->foreignId('ID_Ressource')->constrained('ressources', 'ID_Ressource');
$table->enum('Statut_Exploitation', ['Non commencé', 'Exploitée', 'Mis de côté'])->default('Non commencé');
$table->boolean('Est_Favori')->default(false);
$table->primary(['ID_Utilisateur', 'ID_Ressource']);
});
// Créer la table Activite_Participant
Schema::create('activite_participants', function (Blueprint $table) {
$table->foreignId('ID_Instance')->constrained('activites', 'ID_Instance');
$table->foreignId('ID_Utilisateur_Participant')->constrained('utilisateurs', 'ID_Utilisateur');
$table->primary(['ID_Instance', 'ID_Utilisateur_Participant']);
});
}
public function down(): void
{
Schema::dropIfExists('activite_participants');
Schema::dropIfExists('utilisateur_progressions');
Schema::dropIfExists('ressource_categories');
Schema::dropIfExists('activite_messages');
Schema::dropIfExists('activites');
Schema::dropIfExists('commentaires');
Schema::dropIfExists('ressources');
Schema::dropIfExists('categories');
Schema::dropIfExists('type_ressources');
Schema::dropIfExists('utilisateurs');
Schema::dropIfExists('roles');
}
};