AcaMate_API/Program/Common/Data/AppDbContext.cs
SEAN-59 82d8afcfb7 [] Class 관련 로직 추가
1. 컨트롤러, 서비스(인터페이스), 레포지토리(인터페이스) 추가
2. scoped 등록
3. 클래스 관련 모델 등록
4. ClassInfo API 등록
2025-06-20 17:59:03 +09:00

70 lines
2.3 KiB
C#

using Back.Program.Common.Model;
using Back.Program.Models.Entities;
using Microsoft.EntityFrameworkCore;
using Version = Back.Program.Models.Entities.Version;
namespace Back.Program.Common.Data
{
//database=AcaMate;
public class AppDbContext: DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
//MARK: API
public DbSet<APIHeader> APIHeader { get; set; }
//MARK: Program
public DbSet<Version> Version { get; set; }
public DbSet<Academy> Academy { get; set; }
public DbSet<RefreshToken> RefreshToken { get; set; }
//MARK: USER
public DbSet<Login> Login { get; set; }
public DbSet<User_Academy> UserAcademy { get; set; }
public DbSet<User> User { get; set; }
public DbSet<Permission> Permission { get; set; }
// public DbSet<Token> Token { get; set; }
public DbSet<Location> Location { get; set; }
public DbSet<Contact> Contact { get; set; }
//MARK: PUSH
public DbSet<DBPayload> DBPayload { get; set; }
public DbSet<PushCabinet> PushCabinet { get; set; }
//MARK: CLASS
public DbSet<Class_Info> Class_Info { get; set; }
public DbSet<Class_Attendance> Class_Attendance { get; set; }
public DbSet<Class_Map> Class_Map { get; set; }
//MARK: CHATTING
// public DbSet<>
//MARK: LOG
public DbSet<LogPush> LogPush { get; set; }
public DbSet<LogUser> LogUser { get; set; }
public DbSet<LogProject> LogProject { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User_Academy>()
.HasKey(ua => new { ua.uid, ua.bid });
// modelBuilder.Entity<PushCabinet>()
// .HasKey(c => new { c.uid, c.bid, c.pid });
modelBuilder.Entity<DBPayload>()
.HasKey(p => new { p.bid, p.pid });
// modelBuilder.Entity<LogPush>().HasNoKey();
modelBuilder.Entity<Class_Attendance>()
.HasKey(ca => new { ca.cid, ca.uid, ca.attendace_date});
modelBuilder.Entity<Class_Map>()
.HasKey(ca => new { ca.cid, ca.uid});
}
}
}