Files
raven/server/AyaNova/models/AyContext.cs
2022-06-15 01:16:42 +00:00

215 lines
12 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
namespace AyaNova.Models
{
public partial class AyContext : DbContext
{
public virtual DbSet<SchemaVersion> SchemaVersion { get; set; }
public virtual DbSet<MetricMM> MetricMM { get; set; }
public virtual DbSet<MetricDD> MetricDD { get; set; }
public virtual DbSet<User> User { get; set; }
public virtual DbSet<UserOptions> UserOptions { get; set; }
public virtual DbSet<GlobalBizSettings> GlobalBizSettings { get; set; }
public virtual DbSet<GlobalOpsBackupSettings> GlobalOpsBackupSettings { get; set; }
public virtual DbSet<GlobalOpsNotificationSettings> GlobalOpsNotificationSettings { get; set; }
public virtual DbSet<Event> Event { get; set; }
public virtual DbSet<SearchDictionary> SearchDictionary { get; set; }
public virtual DbSet<SearchKey> SearchKey { get; set; }
public virtual DbSet<FileAttachment> FileAttachment { get; set; }
public virtual DbSet<OpsJob> OpsJob { get; set; }
public virtual DbSet<OpsJobLog> OpsJobLog { get; set; }
public virtual DbSet<Translation> Translation { get; set; }
public virtual DbSet<TranslationItem> TranslationItem { get; set; }
public virtual DbSet<DataListSavedFilter> DataListSavedFilter { get; set; }
public virtual DbSet<DataListColumnView> DataListColumnView { get; set; }
public virtual DbSet<Tag> Tag { get; set; }
public virtual DbSet<FormCustom> FormCustom { get; set; }
public virtual DbSet<FormUserOptions> FormUserOptions { get; set; }
public virtual DbSet<PickListTemplate> PickListTemplate { get; set; }
public virtual DbSet<License> License { get; set; }
public virtual DbSet<Memo> Memo { get; set; }
public virtual DbSet<Reminder> Reminder { get; set; }
public virtual DbSet<Review> Review { get; set; }
public virtual DbSet<Customer> Customer { get; set; }
public virtual DbSet<CustomerNote> CustomerNote { get; set; }
public virtual DbSet<Contract> Contract { get; set; }
public virtual DbSet<ContractPartOverride> ContractPartOverride { get; set; }
public virtual DbSet<ContractServiceRate> ContractServiceRate { get; set; }
public virtual DbSet<ContractServiceRateOverride> ContractServiceRateOverride { get; set; }
public virtual DbSet<ContractTravelRate> ContractTravelRate { get; set; }
public virtual DbSet<ContractTravelRateOverride> ContractTravelRateOverride { get; set; }
public virtual DbSet<HeadOffice> HeadOffice { get; set; }
public virtual DbSet<LoanUnit> LoanUnit { get; set; }
public virtual DbSet<NotifySubscription> NotifySubscription { get; set; }
public virtual DbSet<NotifyEvent> NotifyEvent { get; set; }
public virtual DbSet<InAppNotification> InAppNotification { get; set; }
public virtual DbSet<NotifyDeliveryLog> NotifyDeliveryLog { get; set; }
public virtual DbSet<Part> Part { get; set; }
public virtual DbSet<PartInventory> PartInventory { get; set; }
public virtual DbSet<PartWarehouse> PartWarehouse { get; set; }
public virtual DbSet<PartStockLevel> PartStockLevel { get; set; }
public virtual DbSet<PartSerial> PartSerial { get; set; }
public virtual DbSet<PartAssembly> PartAssembly { get; set; }
public virtual DbSet<PartAssemblyItem> PartAssemblyItem { get; set; }
public virtual DbSet<Project> Project { get; set; }
public virtual DbSet<PurchaseOrder> PurchaseOrder { get; set; }
public virtual DbSet<PurchaseOrderItem> PurchaseOrderItem { get; set; }
public virtual DbSet<Unit> Unit { get; set; }
public virtual DbSet<UnitModel> UnitModel { get; set; }
public virtual DbSet<UnitMeterReading> UnitMeterReading { get; set; }
public virtual DbSet<Vendor> Vendor { get; set; }
public virtual DbSet<TaxCode> TaxCode { get; set; }
public virtual DbSet<ServiceRate> ServiceRate { get; set; }
public virtual DbSet<TravelRate> TravelRate { get; set; }
public virtual DbSet<CustomerServiceRequest> CustomerServiceRequest { get; set; }
public virtual DbSet<TaskGroup> TaskGroup { get; set; }
public virtual DbSet<TaskGroupItem> TaskGroupItem { get; set; }
//WorkOrder
public virtual DbSet<WorkOrder> WorkOrder { get; set; }
public virtual DbSet<WorkOrderItem> WorkOrderItem { get; set; }
public virtual DbSet<WorkOrderState> WorkOrderState { get; set; }
public virtual DbSet<WorkOrderItemExpense> WorkOrderItemExpense { get; set; }
public virtual DbSet<WorkOrderItemLabor> WorkOrderItemLabor { get; set; }
public virtual DbSet<WorkOrderItemLoan> WorkOrderItemLoan { get; set; }
public virtual DbSet<WorkOrderItemPart> WorkOrderItemPart { get; set; }
public virtual DbSet<WorkOrderItemPartRequest> WorkOrderItemPartRequest { get; set; }
public virtual DbSet<WorkOrderItemScheduledUser> WorkOrderItemScheduledUser { get; set; }
public virtual DbSet<WorkOrderItemTask> WorkOrderItemTask { get; set; }
public virtual DbSet<WorkOrderItemTravel> WorkOrderItemTravel { get; set; }
public virtual DbSet<WorkOrderItemUnit> WorkOrderItemUnit { get; set; }
public virtual DbSet<WorkOrderItemOutsideService> WorkOrderItemOutsideService { get; set; }
public virtual DbSet<WorkOrderStatus> WorkOrderStatus { get; set; }
public virtual DbSet<WorkOrderItemPriority> WorkOrderItemPriority { get; set; }
public virtual DbSet<WorkOrderItemStatus> WorkOrderItemStatus { get; set; }
//Quote
public virtual DbSet<Quote> Quote { get; set; }
public virtual DbSet<QuoteItem> QuoteItem { get; set; }
public virtual DbSet<QuoteState> QuoteState { get; set; }
public virtual DbSet<QuoteItemExpense> QuoteItemExpense { get; set; }
public virtual DbSet<QuoteItemLabor> QuoteItemLabor { get; set; }
public virtual DbSet<QuoteItemLoan> QuoteItemLoan { get; set; }
public virtual DbSet<QuoteItemPart> QuoteItemPart { get; set; }
public virtual DbSet<QuoteItemScheduledUser> QuoteItemScheduledUser { get; set; }
public virtual DbSet<QuoteItemTask> QuoteItemTask { get; set; }
public virtual DbSet<QuoteItemTravel> QuoteItemTravel { get; set; }
public virtual DbSet<QuoteItemUnit> QuoteItemUnit { get; set; }
public virtual DbSet<QuoteItemOutsideService> QuoteItemOutsideService { get; set; }
public virtual DbSet<QuoteStatus> QuoteStatus { get; set; }
//PM
public virtual DbSet<PM> PM { get; set; }
public virtual DbSet<PMItem> PMItem { get; set; }
public virtual DbSet<PMItemExpense> PMItemExpense { get; set; }
public virtual DbSet<PMItemLabor> PMItemLabor { get; set; }
public virtual DbSet<PMItemLoan> PMItemLoan { get; set; }
public virtual DbSet<PMItemPart> PMItemPart { get; set; }
public virtual DbSet<PMItemScheduledUser> PMItemScheduledUser { get; set; }
public virtual DbSet<PMItemTask> PMItemTask { get; set; }
public virtual DbSet<PMItemTravel> PMItemTravel { get; set; }
public virtual DbSet<PMItemUnit> PMItemUnit { get; set; }
public virtual DbSet<PMItemOutsideService> PMItemOutsideService { get; set; }
public virtual DbSet<Logo> Logo { get; set; }
public virtual DbSet<Report> Report { get; set; }
public virtual DbSet<DashboardView> DashboardView { get; set; }
// public virtual DbSet<ServiceBank> ServiceBank { get; set; }
public virtual DbSet<ViewRestockRequired> ViewRestockRequired { get; set; }
public virtual DbSet<ViewPartInventoryList> ViewPartInventoryList { get; set; }
public virtual DbSet<ViewUnfulfilledPartRequestList> ViewUnfulfilledPartRequestList { get; set; }
public virtual DbSet<ViewPartInventoryRequestList> ViewPartInventoryRequestList { get; set; }
public virtual DbSet<ViewScheduleWorkOrder> ViewScheduleWorkOrder { get; set; }
public virtual DbSet<CustomerNotifySubscription> CustomerNotifySubscription { get; set; }
public virtual DbSet<CustomerNotifyEvent> CustomerNotifyEvent { get; set; }
public virtual DbSet<CustomerNotifyDeliveryLog> CustomerNotifyDeliveryLog { get; set; }
public virtual DbSet<Integration> Integration { get; set; }
public virtual DbSet<IntegrationItem> IntegrationItem { get; set; }
public virtual DbSet<IntegrationLog> IntegrationLog { get; set; }
//Note: had to add this constructor to work with the code in startup.cs that gets the connection string from the appsettings.json file
//and commented out the above on configuring
public AyContext(DbContextOptions<AyContext> options) : base(options)
{ }
//https://stackoverflow.com/a/64053832/8939
public void Replace<TEntity>(TEntity oldEntity, TEntity newEntity) where TEntity : class
{
ChangeTracker.TrackGraph(oldEntity, e => e.Entry.State = EntityState.Deleted);
ChangeTracker.TrackGraph(newEntity, e => e.Entry.State = e.Entry.IsKeySet ? EntityState.Modified : EntityState.Added);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//AUTOMATICALLY MATCH NAMES
//https://andrewlock.net/customising-asp-net-core-identity-ef-core-naming-conventions-for-postgresql/
foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
// Replace table names
var entityName = entity.GetTableName().ToLowerInvariant();
if (!entityName.StartsWith("view"))
entity.SetTableName("a" + entityName);
else
entity.SetTableName(entityName);
// Replace column names
foreach (var property in entity.GetProperties())
{
//Any object that has a concurrencytoken field
//set it up to work properly with PostgreSQL
if (property.Name == "Concurrency")
{
property.SetColumnName("xmin");
property.SetColumnType("xid");
property.ValueGenerated = ValueGenerated.OnAddOrUpdate;
property.IsConcurrencyToken = true;
}
else
property.SetColumnName(property.Name.ToLowerInvariant());
}
foreach (var key in entity.GetKeys())
key.SetName(key.GetName().ToLowerInvariant());
foreach (var key in entity.GetForeignKeys())
key.SetConstraintName(key.GetConstraintName().ToLowerInvariant());
foreach (var index in entity.GetIndexes())
index.SetDatabaseName(index.GetDatabaseName().ToLowerInvariant());
}
///////////////////////////////
//SERIALIZED OBJECTS
//
modelBuilder.Entity<PurchaseOrder>().Property(z => z.Serial).UseIdentityByDefaultColumn();
modelBuilder.Entity<WorkOrder>().Property(z => z.Serial).UseIdentityByDefaultColumn();
modelBuilder.Entity<Quote>().Property(z => z.Serial).UseIdentityByDefaultColumn();
modelBuilder.Entity<PM>().Property(z => z.Serial).UseIdentityByDefaultColumn();
//## NOTE: if more added here then must also update globalbizsettingscontroller.seeds and client
//////////////////////////////////////////////////////////////
//-----------
}
}
}