QLiberaceContext.cs 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. using System;
  2. using System.Collections.Generic;
  3. using Microsoft.EntityFrameworkCore;
  4. using Microsoft.EntityFrameworkCore.Metadata;
  5. namespace Workbench.Entity
  6. {
  7. public partial class QLiberaceContext : DbContext
  8. {
  9. public QLiberaceContext()
  10. {
  11. }
  12. public QLiberaceContext(DbContextOptions<QLiberaceContext> options)
  13. : base(options)
  14. {
  15. }
  16. public virtual DbSet<Contact> Contacts { get; set; } = null!;
  17. public virtual DbSet<Country> Countries { get; set; } = null!;
  18. public virtual DbSet<Currency> Currencies { get; set; } = null!;
  19. public virtual DbSet<Customer> Customers { get; set; } = null!;
  20. public virtual DbSet<CustomerUser> CustomerUsers { get; set; } = null!;
  21. public virtual DbSet<QueueDatum> QueueData { get; set; } = null!;
  22. public virtual DbSet<QueueDone> QueueDones { get; set; } = null!;
  23. public virtual DbSet<QueueFailed> QueueFaileds { get; set; } = null!;
  24. public virtual DbSet<QueuePending> QueuePendings { get; set; } = null!;
  25. public virtual DbSet<QueueProcessing> QueueProcessings { get; set; } = null!;
  26. public virtual DbSet<Setting> Settings { get; set; } = null!;
  27. public virtual DbSet<StatusHistory> StatusHistories { get; set; } = null!;
  28. public virtual DbSet<Tenant> Tenants { get; set; } = null!;
  29. public virtual DbSet<TenantCountry> TenantCountries { get; set; } = null!;
  30. public virtual DbSet<TenantCurrency> TenantCurrencies { get; set; } = null!;
  31. public virtual DbSet<TenantUser> TenantUsers { get; set; } = null!;
  32. public virtual DbSet<User> Users { get; set; } = null!;
  33. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  34. {
  35. if (!optionsBuilder.IsConfigured)
  36. {
  37. #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 http://go.microsoft.com/fwlink/?LinkId=723263.
  38. optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=QLiberace;Trusted_Connection=True;");
  39. }
  40. }
  41. protected override void OnModelCreating(ModelBuilder modelBuilder)
  42. {
  43. modelBuilder.Entity<Contact>(entity =>
  44. {
  45. entity.ToTable("Contact", "Customer");
  46. entity.Property(e => e.Id).HasComment("Contact primary key");
  47. entity.Property(e => e.Address)
  48. .HasMaxLength(100)
  49. .HasComment("Main address value. If phone, email, sms stores email address or telephone number.");
  50. entity.Property(e => e.Address1)
  51. .HasMaxLength(100)
  52. .HasComment("Secondary address value.");
  53. entity.Property(e => e.Caption)
  54. .HasMaxLength(100)
  55. .HasComment("Contact heading caption.");
  56. entity.Property(e => e.City)
  57. .HasMaxLength(50)
  58. .HasComment("Contact city.");
  59. entity.Property(e => e.CountryCode)
  60. .HasMaxLength(5)
  61. .HasComment("Contact country code.");
  62. entity.Property(e => e.Created)
  63. .HasColumnType("datetime")
  64. .HasDefaultValueSql("(getdate())")
  65. .HasComment("Record created timestamp");
  66. entity.Property(e => e.CustomerId).HasComment("Reference to customer that contact belongs");
  67. entity.Property(e => e.IsPreffered).HasComment("Flag if Contact is preffered.");
  68. entity.Property(e => e.Modified)
  69. .HasColumnType("datetime")
  70. .HasComment("Record modified timestamp");
  71. entity.Property(e => e.Modifier)
  72. .HasMaxLength(100)
  73. .HasComment("Record modifier signature");
  74. entity.Property(e => e.TenantCode)
  75. .HasMaxLength(20)
  76. .HasComment("Reference to tenant code that contact belongs");
  77. entity.Property(e => e.Type).HasComment("Contact type (0-Email, 1-Address, 2-Phone, 3-SMS)");
  78. entity.Property(e => e.Zip)
  79. .HasMaxLength(20)
  80. .HasColumnName("ZIP")
  81. .HasComment("Contact ZIP code.");
  82. entity.HasOne(d => d.Customer)
  83. .WithMany(p => p.Contacts)
  84. .HasForeignKey(d => d.CustomerId)
  85. .OnDelete(DeleteBehavior.ClientSetNull)
  86. .HasConstraintName("REL_CONTACT_CUSTOMER_ID");
  87. });
  88. modelBuilder.Entity<Country>(entity =>
  89. {
  90. entity.ToTable("Country", "base");
  91. entity.HasIndex(e => e.Code, "IDX_COUNTRY_CODE")
  92. .IsUnique();
  93. entity.Property(e => e.Id).HasComment("Country primary key");
  94. entity.Property(e => e.Code)
  95. .HasMaxLength(5)
  96. .HasComment("Country code. Main key to search.");
  97. entity.Property(e => e.Created)
  98. .HasColumnType("datetime")
  99. .HasDefaultValueSql("(getdate())")
  100. .HasComment("Record created timestamp");
  101. entity.Property(e => e.DefaultCurrencyId).HasComment("Default country currency");
  102. entity.Property(e => e.Modified)
  103. .HasColumnType("datetime")
  104. .HasComment("Record modified timestamp");
  105. entity.Property(e => e.Modifier)
  106. .HasMaxLength(100)
  107. .HasComment("Record modifier signature");
  108. entity.Property(e => e.Name)
  109. .HasMaxLength(50)
  110. .HasComment("Country name. Informational value.");
  111. entity.Property(e => e.Vat)
  112. .HasColumnName("VAT")
  113. .HasComment("Percentage VAT definition");
  114. entity.HasOne(d => d.DefaultCurrency)
  115. .WithMany(p => p.Countries)
  116. .HasForeignKey(d => d.DefaultCurrencyId)
  117. .OnDelete(DeleteBehavior.ClientSetNull)
  118. .HasConstraintName("REL_COUNTRY_CURRENCY_ID");
  119. });
  120. modelBuilder.Entity<Currency>(entity =>
  121. {
  122. entity.ToTable("Currency", "base");
  123. entity.HasIndex(e => e.Code, "IDX_CURRENCY_ID")
  124. .IsUnique();
  125. entity.Property(e => e.Id).HasComment("Currency primary key");
  126. entity.Property(e => e.Code)
  127. .HasMaxLength(5)
  128. .HasComment("Currency code. Main key to search.");
  129. entity.Property(e => e.Created)
  130. .HasColumnType("datetime")
  131. .HasDefaultValueSql("(getdate())")
  132. .HasComment("Record created timestamp");
  133. entity.Property(e => e.Modified)
  134. .HasColumnType("datetime")
  135. .HasComment("Record modified timestamp");
  136. entity.Property(e => e.Modifier)
  137. .HasMaxLength(100)
  138. .HasComment("Record modifier signature");
  139. entity.Property(e => e.Name)
  140. .HasMaxLength(50)
  141. .HasComment("Currency name. Informational value.");
  142. entity.Property(e => e.Sign)
  143. .HasMaxLength(3)
  144. .HasComment("Currency sign chars");
  145. });
  146. modelBuilder.Entity<Customer>(entity =>
  147. {
  148. entity.ToTable("Customer", "Customer");
  149. entity.HasIndex(e => e.Code, "IDX_CUSTOMER_CODE")
  150. .IsUnique();
  151. entity.Property(e => e.Id).HasComment("Setting primary key");
  152. entity.Property(e => e.Code)
  153. .HasMaxLength(20)
  154. .HasComment("Customer code. Main key to search.");
  155. entity.Property(e => e.Created)
  156. .HasColumnType("datetime")
  157. .HasDefaultValueSql("(getdate())")
  158. .HasComment("Record created timestamp");
  159. entity.Property(e => e.Modified)
  160. .HasColumnType("datetime")
  161. .HasComment("Record modified timestamp");
  162. entity.Property(e => e.Modifier)
  163. .HasMaxLength(100)
  164. .HasComment("Record modifier signature");
  165. entity.Property(e => e.Name)
  166. .HasMaxLength(100)
  167. .HasComment("Customer head name. For identification usage.");
  168. entity.Property(e => e.TaxCountryCode)
  169. .HasMaxLength(5)
  170. .HasComment("Tax country region code");
  171. entity.Property(e => e.TaxNumber)
  172. .HasMaxLength(20)
  173. .HasComment("Customer tax number (business identifier)");
  174. entity.Property(e => e.TenantCode)
  175. .HasMaxLength(20)
  176. .HasComment("Reference to tenant code that customer belongs");
  177. entity.Property(e => e.VatIncluded)
  178. .IsRequired()
  179. .HasDefaultValueSql("((1))")
  180. .HasComment("Flag if VAT calculation is allowed");
  181. entity.Property(e => e.VatNumber)
  182. .HasMaxLength(20)
  183. .HasComment("Customer VAT number (VAT identification)");
  184. });
  185. modelBuilder.Entity<CustomerUser>(entity =>
  186. {
  187. entity.HasNoKey();
  188. entity.ToTable("CustomerUser", "Customer");
  189. entity.Property(e => e.CustomerId).HasComment("Reference to customer");
  190. entity.Property(e => e.UserLoginName)
  191. .HasMaxLength(100)
  192. .HasComment("Reference to user");
  193. entity.HasOne(d => d.Customer)
  194. .WithMany()
  195. .HasForeignKey(d => d.CustomerId)
  196. .OnDelete(DeleteBehavior.ClientSetNull)
  197. .HasConstraintName("REL_CUSTOMETUSER_CUSTOMER_ID");
  198. });
  199. modelBuilder.Entity<QueueDatum>(entity =>
  200. {
  201. entity.ToTable("QueueData", "Processor");
  202. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  203. entity.Property(e => e.Code)
  204. .HasMaxLength(100)
  205. .HasComment("Data code. Main key to search.");
  206. entity.Property(e => e.IsInput).HasComment("Defines if data is input value");
  207. entity.Property(e => e.ParentId).HasComment("Reference to master (or group) record");
  208. entity.Property(e => e.SequenceNo).HasComment("Ordinal sequence number of processing related records");
  209. entity.Property(e => e.Value)
  210. .HasMaxLength(500)
  211. .HasComment("Data value");
  212. entity.Property(e => e.ValueTypeQualified)
  213. .HasMaxLength(500)
  214. .HasComment("Qualified name of value type");
  215. entity.HasOne(d => d.Parent)
  216. .WithMany(p => p.InverseParent)
  217. .HasForeignKey(d => d.ParentId)
  218. .OnDelete(DeleteBehavior.ClientSetNull)
  219. .HasConstraintName("REL_DATA_DATA_ID");
  220. });
  221. modelBuilder.Entity<QueueDone>(entity =>
  222. {
  223. entity.ToTable("QueueDone", "Processor");
  224. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  225. entity.Property(e => e.AffinityWorker)
  226. .HasMaxLength(64)
  227. .HasComment("Owner worker identifier who processing task");
  228. entity.Property(e => e.Attempt).HasComment("Attempt counter to process task");
  229. entity.Property(e => e.Created)
  230. .HasColumnType("datetime")
  231. .HasDefaultValueSql("(getdate())")
  232. .HasComment("Record created timestamp");
  233. entity.Property(e => e.DataId).HasComment("Reference to data collection");
  234. entity.Property(e => e.Finished)
  235. .HasColumnType("datetime")
  236. .HasComment("Record finished at");
  237. entity.Property(e => e.LastStatusChanged)
  238. .HasColumnType("datetime")
  239. .HasDefaultValueSql("(getdate())")
  240. .HasComment("Last status change timestamp");
  241. entity.Property(e => e.Owner)
  242. .HasMaxLength(50)
  243. .HasComment("Owner (abstract) key identifier. Usually entity code");
  244. entity.Property(e => e.StartFrom)
  245. .HasColumnType("datetime")
  246. .HasComment("Record processing from datetime");
  247. entity.Property(e => e.StartTo)
  248. .HasColumnType("datetime")
  249. .HasComment("Record processing to datetime. If overflow then record is expired.");
  250. entity.Property(e => e.Started)
  251. .HasColumnType("datetime")
  252. .HasDefaultValueSql("(getdate())")
  253. .HasComment("Record started processing at");
  254. entity.Property(e => e.Status).HasComment("Record status (Pending-0,Assigned-1,Working-2,Success-3,Failed-4,Expired-5)");
  255. entity.Property(e => e.StatusHistoryId).HasComment("Reference to status history collection");
  256. entity.Property(e => e.TenantCode)
  257. .HasMaxLength(20)
  258. .HasComment("Reference to tenant code that queue belongs");
  259. entity.HasOne(d => d.Data)
  260. .WithMany(p => p.QueueDones)
  261. .HasForeignKey(d => d.DataId)
  262. .OnDelete(DeleteBehavior.ClientSetNull)
  263. .HasConstraintName("REL_QDONE_DATA_ID");
  264. entity.HasOne(d => d.StatusHistory)
  265. .WithMany(p => p.QueueDones)
  266. .HasForeignKey(d => d.StatusHistoryId)
  267. .OnDelete(DeleteBehavior.ClientSetNull)
  268. .HasConstraintName("REL_QDONE_STATUSHISTORY_ID");
  269. });
  270. modelBuilder.Entity<QueueFailed>(entity =>
  271. {
  272. entity.ToTable("QueueFailed", "Processor");
  273. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  274. entity.Property(e => e.AffinityWorker)
  275. .HasMaxLength(64)
  276. .HasComment("Owner worker identifier who processing task");
  277. entity.Property(e => e.Attempt).HasComment("Attempt counter to process task");
  278. entity.Property(e => e.Created)
  279. .HasColumnType("datetime")
  280. .HasDefaultValueSql("(getdate())")
  281. .HasComment("Record created timestamp");
  282. entity.Property(e => e.DataId).HasComment("Reference to data collection");
  283. entity.Property(e => e.Finished)
  284. .HasColumnType("datetime")
  285. .HasComment("Record finished at");
  286. entity.Property(e => e.LastStatusChanged)
  287. .HasColumnType("datetime")
  288. .HasDefaultValueSql("(getdate())")
  289. .HasComment("Last status change timestamp");
  290. entity.Property(e => e.Owner)
  291. .HasMaxLength(50)
  292. .HasComment("Owner (abstract) key identifier. Usually entity code");
  293. entity.Property(e => e.StartFrom)
  294. .HasColumnType("datetime")
  295. .HasComment("Record processing from datetime");
  296. entity.Property(e => e.StartTo)
  297. .HasColumnType("datetime")
  298. .HasComment("Record processing to datetime. If overflow then record is expired.");
  299. entity.Property(e => e.Started)
  300. .HasColumnType("datetime")
  301. .HasDefaultValueSql("(getdate())")
  302. .HasComment("Record started processing at");
  303. entity.Property(e => e.Status).HasComment("Record status (Pending-0,Assigned-1,Working-2,Success-3,Failed-4,Expired-5)");
  304. entity.Property(e => e.StatusHistoryId).HasComment("Reference to status history collection");
  305. entity.Property(e => e.TenantCode)
  306. .HasMaxLength(20)
  307. .HasComment("Reference to tenant code that queue belongs");
  308. entity.HasOne(d => d.Data)
  309. .WithMany(p => p.QueueFaileds)
  310. .HasForeignKey(d => d.DataId)
  311. .OnDelete(DeleteBehavior.ClientSetNull)
  312. .HasConstraintName("REL_QFAILED_DATA_ID");
  313. entity.HasOne(d => d.StatusHistory)
  314. .WithMany(p => p.QueueFaileds)
  315. .HasForeignKey(d => d.StatusHistoryId)
  316. .OnDelete(DeleteBehavior.ClientSetNull)
  317. .HasConstraintName("REL_QFAILED_STATUSHISTORY_ID");
  318. });
  319. modelBuilder.Entity<QueuePending>(entity =>
  320. {
  321. entity.ToTable("QueuePending", "Processor");
  322. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  323. entity.Property(e => e.AffinityWorker)
  324. .HasMaxLength(64)
  325. .HasComment("Owner worker identifier who processing task");
  326. entity.Property(e => e.Created)
  327. .HasColumnType("datetime")
  328. .HasDefaultValueSql("(getdate())")
  329. .HasComment("Record created timestamp");
  330. entity.Property(e => e.DataId).HasComment("Reference to data collection");
  331. entity.Property(e => e.LastStatusChanged)
  332. .HasColumnType("datetime")
  333. .HasDefaultValueSql("(getdate())")
  334. .HasComment("Last status change timestamp");
  335. entity.Property(e => e.Owner)
  336. .HasMaxLength(50)
  337. .HasComment("Owner (abstract) key identifier. Usually entity code");
  338. entity.Property(e => e.StartFrom)
  339. .HasColumnType("datetime")
  340. .HasComment("Record processing from datetime");
  341. entity.Property(e => e.StartTo)
  342. .HasColumnType("datetime")
  343. .HasComment("Record processing to datetime. If overflow then record is expired.");
  344. entity.Property(e => e.Status).HasComment("Record status (Pending-0,Assigned-1,Working-2,Success-3,Failed-4,Expired-5)");
  345. entity.Property(e => e.StatusHistoryId).HasComment("Reference to status history collection");
  346. entity.Property(e => e.TenantCode)
  347. .HasMaxLength(20)
  348. .HasComment("Reference to tenant code that queue belongs");
  349. entity.HasOne(d => d.Data)
  350. .WithMany(p => p.QueuePendings)
  351. .HasForeignKey(d => d.DataId)
  352. .OnDelete(DeleteBehavior.ClientSetNull)
  353. .HasConstraintName("REL_QPENDING_DATA_ID");
  354. entity.HasOne(d => d.StatusHistory)
  355. .WithMany(p => p.QueuePendings)
  356. .HasForeignKey(d => d.StatusHistoryId)
  357. .OnDelete(DeleteBehavior.ClientSetNull)
  358. .HasConstraintName("REL_QPENDING_STATUSHISTORY_ID");
  359. });
  360. modelBuilder.Entity<QueueProcessing>(entity =>
  361. {
  362. entity.ToTable("QueueProcessing", "Processor");
  363. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  364. entity.Property(e => e.AffinityWorker)
  365. .HasMaxLength(64)
  366. .HasComment("Owner worker identifier who processing task");
  367. entity.Property(e => e.Attempt).HasComment("Attempt counter to process task");
  368. entity.Property(e => e.Created)
  369. .HasColumnType("datetime")
  370. .HasDefaultValueSql("(getdate())")
  371. .HasComment("Record created timestamp");
  372. entity.Property(e => e.DataId).HasComment("Reference to data collection");
  373. entity.Property(e => e.Finished)
  374. .HasColumnType("datetime")
  375. .HasComment("Record finished at");
  376. entity.Property(e => e.LastStatusChanged)
  377. .HasColumnType("datetime")
  378. .HasDefaultValueSql("(getdate())")
  379. .HasComment("Last status change timestamp");
  380. entity.Property(e => e.Owner)
  381. .HasMaxLength(50)
  382. .HasComment("Owner (abstract) key identifier. Usually entity code");
  383. entity.Property(e => e.StartFrom)
  384. .HasColumnType("datetime")
  385. .HasComment("Record processing from datetime");
  386. entity.Property(e => e.StartTo)
  387. .HasColumnType("datetime")
  388. .HasComment("Record processing to datetime. If overflow then record is expired.");
  389. entity.Property(e => e.Started)
  390. .HasColumnType("datetime")
  391. .HasDefaultValueSql("(getdate())")
  392. .HasComment("Record started processing at");
  393. entity.Property(e => e.Status).HasComment("Record status (Pending-0,Assigned-1,Working-2,Success-3,Failed-4,Expired-5)");
  394. entity.Property(e => e.StatusHistoryId).HasComment("Reference to status history collection");
  395. entity.Property(e => e.TenantCode)
  396. .HasMaxLength(20)
  397. .HasComment("Reference to tenant code that queue belongs");
  398. entity.HasOne(d => d.Data)
  399. .WithMany(p => p.QueueProcessings)
  400. .HasForeignKey(d => d.DataId)
  401. .OnDelete(DeleteBehavior.ClientSetNull)
  402. .HasConstraintName("REL_QPROCESSING_DATA_ID");
  403. entity.HasOne(d => d.StatusHistory)
  404. .WithMany(p => p.QueueProcessings)
  405. .HasForeignKey(d => d.StatusHistoryId)
  406. .OnDelete(DeleteBehavior.ClientSetNull)
  407. .HasConstraintName("REL_QPROCESSING_STATUSHISTORY_ID");
  408. });
  409. modelBuilder.Entity<Setting>(entity =>
  410. {
  411. entity.ToTable("Setting", "base");
  412. entity.HasIndex(e => new { e.TenantId, e.ModuleCode, e.Code }, "IDX_SETTING_TENANT_MCODE_CODE")
  413. .IsUnique();
  414. entity.Property(e => e.Id).HasComment("Setting primary key");
  415. entity.Property(e => e.Code)
  416. .HasMaxLength(100)
  417. .HasComment("Setting code. Main key to search.");
  418. entity.Property(e => e.Created)
  419. .HasColumnType("datetime")
  420. .HasDefaultValueSql("(getdate())")
  421. .HasComment("Record created timestamp");
  422. entity.Property(e => e.Description)
  423. .HasMaxLength(500)
  424. .HasComment("Setting value description");
  425. entity.Property(e => e.IsEnabled).HasComment("Flag if setting is enabled");
  426. entity.Property(e => e.Modified)
  427. .HasColumnType("datetime")
  428. .HasComment("Record modified timestamp");
  429. entity.Property(e => e.Modifier)
  430. .HasMaxLength(100)
  431. .HasComment("Record modifier signature");
  432. entity.Property(e => e.ModuleCode)
  433. .HasMaxLength(10)
  434. .HasComment("Module code that setting belongs. Secondary key");
  435. entity.Property(e => e.ParentId).HasComment("Reference to parent setting");
  436. entity.Property(e => e.SequenceNo).HasComment("Order number");
  437. entity.Property(e => e.TenantId).HasComment("Reference to tenant that setting belongs");
  438. entity.Property(e => e.Value).HasComment("Setting value");
  439. entity.Property(e => e.ValueTypeQualified)
  440. .HasMaxLength(500)
  441. .HasComment("Qualified name of value type");
  442. entity.HasOne(d => d.Parent)
  443. .WithMany(p => p.InverseParent)
  444. .HasForeignKey(d => d.ParentId)
  445. .HasConstraintName("REL_SETTING_SETTING_ID");
  446. entity.HasOne(d => d.Tenant)
  447. .WithMany(p => p.Settings)
  448. .HasForeignKey(d => d.TenantId)
  449. .OnDelete(DeleteBehavior.ClientSetNull)
  450. .HasConstraintName("REL_SETTING_TENANT_ID");
  451. });
  452. modelBuilder.Entity<StatusHistory>(entity =>
  453. {
  454. entity.ToTable("StatusHistory", "Processor");
  455. entity.Property(e => e.Id).HasComment("Record identifier. Primary key");
  456. entity.Property(e => e.Attempt)
  457. .HasDefaultValueSql("((0))")
  458. .HasComment("Actual attempt counter to process task");
  459. entity.Property(e => e.Created)
  460. .HasColumnType("datetime")
  461. .HasDefaultValueSql("(getdate())")
  462. .HasComment("Record created timestamp");
  463. entity.Property(e => e.ErrorMessage).HasComment("Last error message");
  464. entity.Property(e => e.ParentId).HasComment("Reference to master (or group) record");
  465. entity.Property(e => e.Status).HasComment("Record status (Pending-0,Assigned-1,Working-2,Success-3,Failed-4,Expired-5)");
  466. entity.HasOne(d => d.Parent)
  467. .WithMany(p => p.InverseParent)
  468. .HasForeignKey(d => d.ParentId)
  469. .OnDelete(DeleteBehavior.ClientSetNull)
  470. .HasConstraintName("REL_STATUSHISTORY_STATUSHISTORY_ID");
  471. });
  472. modelBuilder.Entity<Tenant>(entity =>
  473. {
  474. entity.ToTable("Tenant", "base");
  475. entity.HasIndex(e => e.Code, "IDX_TENANT_CODE")
  476. .IsUnique();
  477. entity.Property(e => e.Id).HasComment("Tenant primary key");
  478. entity.Property(e => e.Code)
  479. .HasMaxLength(20)
  480. .HasComment("Tenant code. Main key to search.");
  481. entity.Property(e => e.Created)
  482. .HasColumnType("datetime")
  483. .HasDefaultValueSql("(getdate())")
  484. .HasComment("Record created timestamp");
  485. entity.Property(e => e.IsLocked).HasComment("Flag if tenant locked (not accessable)");
  486. entity.Property(e => e.LastAccess)
  487. .HasColumnType("datetime")
  488. .HasComment("Last access (usage) timestamp.");
  489. entity.Property(e => e.Modified)
  490. .HasColumnType("datetime")
  491. .HasComment("Record modified timestamp");
  492. entity.Property(e => e.Modifier)
  493. .HasMaxLength(100)
  494. .HasComment("Record modifier signature");
  495. entity.Property(e => e.Name)
  496. .HasMaxLength(200)
  497. .HasComment("Tenant name. Informational value.");
  498. });
  499. modelBuilder.Entity<TenantCountry>(entity =>
  500. {
  501. entity.HasNoKey();
  502. entity.ToTable("TenantCountry", "base");
  503. entity.Property(e => e.CountryId).HasComment("Reference to country");
  504. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  505. entity.HasOne(d => d.Country)
  506. .WithMany()
  507. .HasForeignKey(d => d.CountryId)
  508. .OnDelete(DeleteBehavior.ClientSetNull)
  509. .HasConstraintName("REL_TENANTCOUNTRY_COUNTRY_ID");
  510. entity.HasOne(d => d.Tenant)
  511. .WithMany()
  512. .HasForeignKey(d => d.TenantId)
  513. .OnDelete(DeleteBehavior.ClientSetNull)
  514. .HasConstraintName("REL_TENANTCOUNTRY_TENANT_ID");
  515. });
  516. modelBuilder.Entity<TenantCurrency>(entity =>
  517. {
  518. entity.HasNoKey();
  519. entity.ToTable("TenantCurrency", "base");
  520. entity.Property(e => e.CurrencyId).HasComment("Reference to currency");
  521. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  522. entity.HasOne(d => d.Currency)
  523. .WithMany()
  524. .HasForeignKey(d => d.CurrencyId)
  525. .OnDelete(DeleteBehavior.ClientSetNull)
  526. .HasConstraintName("REL_TENANTCURRENCY_CURRENCY__ID");
  527. entity.HasOne(d => d.Tenant)
  528. .WithMany()
  529. .HasForeignKey(d => d.TenantId)
  530. .OnDelete(DeleteBehavior.ClientSetNull)
  531. .HasConstraintName("REL_TENANTCURRENCT_TENANT_ID");
  532. });
  533. modelBuilder.Entity<TenantUser>(entity =>
  534. {
  535. entity.HasNoKey();
  536. entity.ToTable("TenantUser", "base");
  537. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  538. entity.Property(e => e.UserId).HasComment("Reference to user");
  539. entity.HasOne(d => d.Tenant)
  540. .WithMany()
  541. .HasForeignKey(d => d.TenantId)
  542. .OnDelete(DeleteBehavior.ClientSetNull)
  543. .HasConstraintName("REL_TENANTUSER_TENANT_ID");
  544. entity.HasOne(d => d.User)
  545. .WithMany()
  546. .HasForeignKey(d => d.UserId)
  547. .OnDelete(DeleteBehavior.ClientSetNull)
  548. .HasConstraintName("REL_TENANTUSER_USER_ID");
  549. });
  550. modelBuilder.Entity<User>(entity =>
  551. {
  552. entity.ToTable("User", "base");
  553. entity.HasIndex(e => e.LoginName, "IDX_USER_LOGINNAME")
  554. .IsUnique();
  555. entity.Property(e => e.Id).HasComment("User primary key");
  556. entity.Property(e => e.Created)
  557. .HasColumnType("datetime")
  558. .HasDefaultValueSql("(getdate())")
  559. .HasComment("Record created timestamp");
  560. entity.Property(e => e.IsLocked).HasComment("Flag if user access locked (not accessable)");
  561. entity.Property(e => e.LoginName)
  562. .HasMaxLength(100)
  563. .HasComment("User login name name. Key search value");
  564. entity.Property(e => e.Modified)
  565. .HasColumnType("datetime")
  566. .HasComment("Record modified timestamp");
  567. entity.Property(e => e.Modifier)
  568. .HasMaxLength(100)
  569. .HasComment("Record modifier signature");
  570. });
  571. OnModelCreatingPartial(modelBuilder);
  572. }
  573. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  574. }
  575. }