/
Egor1k
/
CompClubAPI
Обзор
Документация
Войти
/
Egor1k
/
CompClubAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ApplicationDbContext.cs
206 строк
8 KB
Dima Oshuev
заработал docker-compose между api и бд
27 мар 2025, 21:48
27 мар 2025, 21:48
b1486e6
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using CompClubAPI.Models; using Microsoft.EntityFrameworkCore; namespace CompClubAPI; public partial class ApplicationDbContext : DbContext { public ApplicationDbContext() { } public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } public virtual DbSet<Account> Accounts { get; set; } public virtual DbSet<Computer> Computers { get; set; } public virtual DbSet<Payment> Payments { get; set; } public virtual DbSet<PlayerSession> PlayerSessions { get; set; } public virtual DbSet<Promotion> Promotions { get; set; } public virtual DbSet<Tariff> Tariffs { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) #warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263. => optionsBuilder.UseNpgsql("Host=db;Database=gamecenter;Username=postgres;Password=root"); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Account>(entity => { entity.HasKey(e => e.UserId).HasName("account_pkey"); entity.ToTable("account", "gamecenterschema"); entity.HasIndex(e => e.Email, "account_email_key").IsUnique(); entity.Property(e => e.UserId).HasColumnName("user_id"); entity.Property(e => e.Balance).HasColumnName("balance"); entity.Property(e => e.Email) .HasMaxLength(100) .HasColumnName("email"); entity.Property(e => e.FirstName) .HasMaxLength(50) .HasColumnName("first_name"); entity.Property(e => e.LastName) .HasMaxLength(50) .HasColumnName("last_name"); entity.Property(e => e.Password) .HasMaxLength(255) .HasColumnName("password"); entity.Property(e => e.Role) .HasMaxLength(20) .HasDefaultValueSql("'User'::character varying") .HasColumnName("role"); }); modelBuilder.Entity<Computer>(entity => { entity.HasKey(e => e.ComputerId).HasName("computer_pkey"); entity.ToTable("computer", "gamecenterschema"); entity.Property(e => e.ComputerId).HasColumnName("computer_id"); entity.Property(e => e.Location) .HasMaxLength(30) .HasColumnName("location"); entity.Property(e => e.Specifications) .HasMaxLength(255) .HasColumnName("specifications"); entity.Property(e => e.Status) .HasMaxLength(20) .HasDefaultValueSql("'Доступный'::character varying") .HasColumnName("status"); }); modelBuilder.Entity<Payment>(entity => { entity.HasKey(e => e.PaymentId).HasName("payment_pkey"); entity.ToTable("payment", "gamecenterschema"); entity.Property(e => e.PaymentId).HasColumnName("payment_id"); entity.Property(e => e.AccountId).HasColumnName("account_id"); entity.Property(e => e.Amount) .HasPrecision(10, 2) .HasColumnName("amount"); entity.Property(e => e.PaymentDate) .HasColumnType("timestamp without time zone") .HasColumnName("payment_date"); entity.Property(e => e.PaymentMethod) .HasMaxLength(20) .HasDefaultValueSql("'Наличная оплата'::character varying") .HasColumnName("payment_method"); entity.Property(e => e.SessionId).HasColumnName("session_id"); entity.HasOne(d => d.Account).WithMany(p => p.Payments) .HasForeignKey(d => d.AccountId) .HasConstraintName("payment_account_id_fkey"); entity.HasOne(d => d.Session).WithMany(p => p.Payments) .HasForeignKey(d => d.SessionId) .HasConstraintName("payment_session_id_fkey"); }); modelBuilder.Entity<PlayerSession>(entity => { entity.HasKey(e => e.SessionId).HasName("player_session_pkey"); entity.ToTable("player_session", "gamecenterschema"); entity.Property(e => e.SessionId).HasColumnName("session_id"); entity.Property(e => e.AccountId).HasColumnName("account_id"); entity.Property(e => e.ComputerId).HasColumnName("computer_id"); entity.Property(e => e.PromotionId).HasColumnName("promotion_id"); entity.Property(e => e.Cost) .HasPrecision(10, 2) .HasColumnName("cost"); entity.Property(e => e.EndTime) .HasColumnType("timestamp without time zone") .HasColumnName("end_time"); entity.Property(e => e.StartTime) .HasColumnType("timestamp without time zone") .HasColumnName("start_time"); entity.Property(e => e.TariffId).HasColumnName("tariff_id"); entity.Property(e => e.TotalTime) .HasComputedColumnSql("(EXTRACT(epoch FROM (end_time - start_time)) / (60)::numeric)", true) .HasColumnName("total_time"); entity.HasOne(d => d.Account).WithMany(p => p.PlayerSessions) .HasForeignKey(d => d.AccountId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("player_session_account_id_fkey"); entity.HasOne(d => d.Computer).WithMany(p => p.PlayerSessions) .HasForeignKey(d => d.ComputerId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("player_session_computer_id_fkey"); entity.HasOne(d => d.Tariff).WithMany(p => p.PlayerSessions) .HasForeignKey(d => d.TariffId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("player_session_tariff_id_fkey"); entity.HasOne(d => d.Promotion) .WithMany() .HasForeignKey(d => d.PromotionId) .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("player_session_promotion_id_fkey"); }); modelBuilder.Entity<Promotion>(entity => { entity.HasKey(e => e.PromotionId).HasName("promotion_pkey"); entity.ToTable("promotion", "gamecenterschema"); entity.Property(e => e.PromotionId).HasColumnName("promotion_id"); entity.Property(e => e.BonusTime).HasColumnName("bonus_time"); entity.Property(e => e.BonusType) .HasMaxLength(50) .HasColumnName("bonus_type"); entity.Property(e => e.DiscountPercentage) .HasPrecision(5, 2) .HasColumnName("discount_percentage"); entity.Property(e => e.PromotionDescription) .HasMaxLength(255) .HasColumnName("promotion_description"); entity.Property(e => e.TariffId).HasColumnName("tariff_id"); entity.Property(e => e.ValidityPeriod).HasColumnName("validity_period"); entity.HasOne(d => d.Tariff).WithMany(p => p.Promotions) .HasForeignKey(d => d.TariffId) .HasConstraintName("promotion_tariff_id_fkey"); }); modelBuilder.Entity<Tariff>(entity => { entity.HasKey(e => e.TariffId).HasName("tariff_pkey"); entity.ToTable("tariff", "gamecenterschema"); entity.Property(e => e.TariffId).HasColumnName("tariff_id"); entity.Property(e => e.Description) .HasMaxLength(255) .HasColumnName("description"); entity.Property(e => e.HourlyRate) .HasPrecision(5, 2) .HasColumnName("hourly_rate"); entity.Property(e => e.TariffName) .HasMaxLength(50) .HasColumnName("tariff_name"); }); OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); }