// <auto-generated />
using System;
using FamilyBudget.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

namespace FamilyBudget.Data.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    [Migration("20250326005057_mig6")]
    partial class mig6
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .UseIdentityColumns()
                .HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS")
                .HasAnnotation("Relational:MaxIdentifierLength", 128)
                .HasAnnotation("ProductVersion", "5.0.1");

            modelBuilder.Entity("FamilyBudget.Models.Bugdet", b =>
                {
                    b.Property<int>("IdBudget")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_budget")
                        .UseIdentityColumn();

                    b.Property<string>("Categorie")
                        .IsRequired()
                        .HasMaxLength(128)
                        .IsUnicode(false)
                        .HasColumnType("varchar(128)")
                        .HasColumnName("categorie");

                    b.Property<int>("IdUtilisateur")
                        .HasColumnType("int")
                        .HasColumnName("id_utilisateur");

                    b.Property<decimal>("MontantAlloue")
                        .HasColumnType("decimal(10,2)")
                        .HasColumnName("montant_alloue");

                    b.HasKey("IdBudget");

                    b.HasIndex("IdUtilisateur");

                    b.ToTable("bugdet");
                });

            modelBuilder.Entity("FamilyBudget.Models.Compte", b =>
                {
                    b.Property<int>("IdCompte")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_compte")
                        .UseIdentityColumn();

                    b.Property<int>("IdUtilisateur")
                        .HasColumnType("int")
                        .HasColumnName("id_utilisateur");

                    b.Property<decimal>("Solde")
                        .HasColumnType("decimal(10,2)")
                        .HasColumnName("solde");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(128)
                        .IsUnicode(false)
                        .HasColumnType("varchar(128)")
                        .HasColumnName("type");

                    b.HasKey("IdCompte");

                    b.HasIndex("IdUtilisateur");

                    b.ToTable("compte");
                });

            modelBuilder.Entity("FamilyBudget.Models.Depense", b =>
                {
                    b.Property<int>("IdDepenses")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_depenses")
                        .UseIdentityColumn();

                    b.Property<DateTime>("DateDepense")
                        .HasColumnType("date")
                        .HasColumnName("date_depense");

                    b.Property<int>("IdBudget")
                        .HasColumnType("int")
                        .HasColumnName("id_budget");

                    b.Property<int>("IdCompte")
                        .HasColumnType("int")
                        .HasColumnName("id_compte");

                    b.Property<int>("IdUtilisateur")
                        .HasColumnType("int")
                        .HasColumnName("id_utilisateur");

                    b.Property<decimal>("Montant")
                        .HasColumnType("decimal(10,2)")
                        .HasColumnName("Montant");

                    b.HasKey("IdDepenses");

                    b.HasIndex("IdBudget");

                    b.HasIndex("IdCompte");

                    b.HasIndex("IdUtilisateur");

                    b.ToTable("depense");
                });

            modelBuilder.Entity("FamilyBudget.Models.Facture", b =>
                {
                    b.Property<int>("IdFacture")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_facture")
                        .UseIdentityColumn();

                    b.Property<string>("CategorieFacture")
                        .IsRequired()
                        .HasMaxLength(32)
                        .IsUnicode(false)
                        .HasColumnType("char(32)")
                        .HasColumnName("categorie_facture")
                        .IsFixedLength(true);

                    b.Property<DateTime>("DateFacture")
                        .HasColumnType("date")
                        .HasColumnName("date_facture");

                    b.Property<int>("IdCompte")
                        .HasColumnType("int")
                        .HasColumnName("id_compte");

                    b.Property<decimal>("Montant")
                        .HasColumnType("decimal(10,2)")
                        .HasColumnName("montant");

                    b.HasKey("IdFacture");

                    b.HasIndex("IdCompte");

                    b.ToTable("facture");
                });

            modelBuilder.Entity("FamilyBudget.Models.Revenu", b =>
                {
                    b.Property<int>("IdRevenu")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_revenu")
                        .UseIdentityColumn();

                    b.Property<DateTime>("DateRevenu")
                        .HasColumnType("date")
                        .HasColumnName("date_revenu");

                    b.Property<int>("IdCompte")
                        .HasColumnType("int")
                        .HasColumnName("id_compte");

                    b.Property<decimal>("Montant")
                        .HasColumnType("decimal(10,2)")
                        .HasColumnName("montant");

                    b.Property<string>("SourceRevenu")
                        .IsRequired()
                        .HasMaxLength(32)
                        .IsUnicode(false)
                        .HasColumnType("char(32)")
                        .HasColumnName("source_revenu")
                        .IsFixedLength(true);

                    b.HasKey("IdRevenu");

                    b.HasIndex("IdCompte");

                    b.ToTable("revenu");
                });

            modelBuilder.Entity("FamilyBudget.Models.Utilisateur", b =>
                {
                    b.Property<int>("IdUtilisateur")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int")
                        .HasColumnName("id_utilisateur")
                        .UseIdentityColumn();

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(128)
                        .IsUnicode(false)
                        .HasColumnType("varchar(128)")
                        .HasColumnName("email");

                    b.Property<string>("MotDePasse")
                        .IsRequired()
                        .HasMaxLength(32)
                        .IsUnicode(false)
                        .HasColumnType("char(32)")
                        .HasColumnName("mot_de_passe")
                        .IsFixedLength(true);

                    b.Property<string>("Nom")
                        .IsRequired()
                        .HasMaxLength(128)
                        .IsUnicode(false)
                        .HasColumnType("varchar(128)")
                        .HasColumnName("nom");

                    b.HasKey("IdUtilisateur");

                    b.ToTable("utilisateur");
                });

            modelBuilder.Entity("FamilyBudget.Models.Bugdet", b =>
                {
                    b.HasOne("FamilyBudget.Models.Utilisateur", "IdUtilisateurNavigation")
                        .WithMany("Bugdets")
                        .HasForeignKey("IdUtilisateur")
                        .HasConstraintName("FK_bugdet_utilisateur")
                        .IsRequired();

                    b.Navigation("IdUtilisateurNavigation");
                });

            modelBuilder.Entity("FamilyBudget.Models.Compte", b =>
                {
                    b.HasOne("FamilyBudget.Models.Utilisateur", "IdUtilisateurNavigation")
                        .WithMany("Comptes")
                        .HasForeignKey("IdUtilisateur")
                        .HasConstraintName("FK_compte_utilisateur")
                        .IsRequired();

                    b.Navigation("IdUtilisateurNavigation");
                });

            modelBuilder.Entity("FamilyBudget.Models.Depense", b =>
                {
                    b.HasOne("FamilyBudget.Models.Bugdet", "IdBudgetNavigation")
                        .WithMany("Depenses")
                        .HasForeignKey("IdBudget")
                        .HasConstraintName("FK_depense_bugdet")
                        .IsRequired();

                    b.HasOne("FamilyBudget.Models.Compte", "Compte")
                        .WithMany("Depenses")
                        .HasForeignKey("IdCompte")
                        .HasConstraintName("FK_depense_compte")
                        .IsRequired();

                    b.HasOne("FamilyBudget.Models.Utilisateur", "IdUtilisateurNavigation")
                        .WithMany("Depenses")
                        .HasForeignKey("IdUtilisateur")
                        .HasConstraintName("FK_depense_utilisateur")
                        .IsRequired();

                    b.Navigation("Compte");

                    b.Navigation("IdBudgetNavigation");

                    b.Navigation("IdUtilisateurNavigation");
                });

            modelBuilder.Entity("FamilyBudget.Models.Facture", b =>
                {
                    b.HasOne("FamilyBudget.Models.Compte", "Compte")
                        .WithMany("Factures")
                        .HasForeignKey("IdCompte")
                        .HasConstraintName("FK_facture_compte")
                        .IsRequired();

                    b.Navigation("Compte");
                });

            modelBuilder.Entity("FamilyBudget.Models.Revenu", b =>
                {
                    b.HasOne("FamilyBudget.Models.Compte", "IdCompteNavigation")
                        .WithMany("Revenus")
                        .HasForeignKey("IdCompte")
                        .HasConstraintName("FK_revenu_compte")
                        .IsRequired();

                    b.Navigation("IdCompteNavigation");
                });

            modelBuilder.Entity("FamilyBudget.Models.Bugdet", b =>
                {
                    b.Navigation("Depenses");
                });

            modelBuilder.Entity("FamilyBudget.Models.Compte", b =>
                {
                    b.Navigation("Depenses");

                    b.Navigation("Factures");

                    b.Navigation("Revenus");
                });

            modelBuilder.Entity("FamilyBudget.Models.Utilisateur", b =>
                {
                    b.Navigation("Bugdets");

                    b.Navigation("Comptes");

                    b.Navigation("Depenses");
                });
#pragma warning restore 612, 618
        }
    }
}
