BOContext.cs 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. using System;
  2. using Microsoft.EntityFrameworkCore;
  3. using Quadarax.Foundation.Core.Data.Domain;
  4. #nullable disable
  5. namespace BO.AppServer.Data.Entity
  6. {
  7. public partial class BOContext : DataDomain
  8. {
  9. public BOContext(DbContextOptions<BOContext> options)
  10. : base(options)
  11. {
  12. }
  13. public virtual DbSet<Artifact> Artifacts { get; set; }
  14. public virtual DbSet<BillingInfo> BillingInfos { get; set; }
  15. public virtual DbSet<BillingPlan> BillingPlans { get; set; }
  16. public virtual DbSet<Invoice> Invoices { get; set; }
  17. public virtual DbSet<InvoiceIssuer> InvoiceIssuers { get; set; }
  18. public virtual DbSet<InvoiceItem> InvoiceItems { get; set; }
  19. public virtual DbSet<Metadocument> Metadocuments { get; set; }
  20. public virtual DbSet<MetadocumentBilling> MetadocumentBillings { get; set; }
  21. public virtual DbSet<MetadocumentTag> MetadocumentTags { get; set; }
  22. public virtual DbSet<MimeType> MimeTypes { get; set; }
  23. public virtual DbSet<Registration> Registrations { get; set; }
  24. public virtual DbSet<Statistic> Statistics { get; set; }
  25. public virtual DbSet<StatusHistory> StatusHistories { get; set; }
  26. public virtual DbSet<Structure> Structures { get; set; }
  27. public virtual DbSet<Tag> Tags { get; set; }
  28. public virtual DbSet<User> Users { get; set; }
  29. public virtual DbSet<UserWorkspace> UserWorkspaces { get; set; }
  30. public virtual DbSet<Workspace> Workspaces { get; set; }
  31. public virtual DbSet<WorkspaceBilling> WorkspaceBillings { get; set; }
  32. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  33. {
  34. if (!optionsBuilder.IsConfigured)
  35. {
  36. #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.
  37. optionsBuilder.UseSqlServer("Server=(local);Database=BO;Trusted_Connection=True;");
  38. }
  39. }
  40. protected override void OnModelCreating(ModelBuilder modelBuilder)
  41. {
  42. modelBuilder.HasAnnotation("Relational:Collation", "Czech_CI_AS");
  43. modelBuilder.Entity<Artifact>(entity =>
  44. {
  45. entity.ToTable("Artifact");
  46. entity.HasComment("Stores single part of metadocument (called artifact). Refresents fingle physical file included for processing.");
  47. entity.Property(e => e.Id).HasComment("Primary key of artifact record");
  48. entity.Property(e => e.Created)
  49. .HasColumnType("datetime")
  50. .HasDefaultValueSql("(getdate())")
  51. .HasComment("Timestamp when artifact was created (uploaded)");
  52. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) artifact");
  53. entity.Property(e => e.Extension)
  54. .HasMaxLength(10)
  55. .HasComment("Artifact file extension");
  56. entity.Property(e => e.Length).HasComment("Defines file content length in bytes");
  57. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  58. entity.Property(e => e.MimeTypeId).HasComment("Reference to MIME Type enumeration");
  59. entity.Property(e => e.Name)
  60. .IsRequired()
  61. .HasMaxLength(200)
  62. .HasComment("Artifact file name without extension");
  63. entity.Property(e => e.Type).HasComment("Defines type of artifact. 0 - Input, 1 - Output");
  64. entity.HasOne(d => d.CreatedByUser)
  65. .WithMany(p => p.Artifacts)
  66. .HasForeignKey(d => d.CreatedByUserId)
  67. .OnDelete(DeleteBehavior.ClientSetNull)
  68. .HasConstraintName("REL_Artifact_User_Created");
  69. entity.HasOne(d => d.Metadocument)
  70. .WithMany(p => p.Artifacts)
  71. .HasForeignKey(d => d.MetadocumentId)
  72. .OnDelete(DeleteBehavior.ClientSetNull)
  73. .HasConstraintName("REL_Artifact_Metadocument");
  74. entity.HasOne(d => d.MimeType)
  75. .WithMany(p => p.Artifacts)
  76. .HasForeignKey(d => d.MimeTypeId)
  77. .OnDelete(DeleteBehavior.ClientSetNull)
  78. .HasConstraintName("REL_Artifact_MimeType");
  79. });
  80. modelBuilder.Entity<BillingInfo>(entity =>
  81. {
  82. entity.ToTable("BillingInfo");
  83. entity.HasComment("Workspace billing information for invoicing");
  84. entity.Property(e => e.Id).HasComment("Primary key of billing information record");
  85. entity.Property(e => e.Address1)
  86. .IsRequired()
  87. .HasMaxLength(200)
  88. .HasComment("Billing Address line 1");
  89. entity.Property(e => e.Address2)
  90. .HasMaxLength(200)
  91. .HasComment("Billing Address line 2");
  92. entity.Property(e => e.City)
  93. .IsRequired()
  94. .HasMaxLength(100)
  95. .HasComment("Billing Address city");
  96. entity.Property(e => e.Country)
  97. .IsRequired()
  98. .HasMaxLength(50)
  99. .HasComment("Billing Address country");
  100. entity.Property(e => e.Created)
  101. .HasColumnType("datetime")
  102. .HasDefaultValueSql("(getdate())")
  103. .HasComment("Timestamp when billing info was created");
  104. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  105. entity.Property(e => e.Email)
  106. .IsRequired()
  107. .HasMaxLength(20)
  108. .HasComment("Billing email");
  109. entity.Property(e => e.Modified)
  110. .HasColumnType("datetime")
  111. .HasComment("Timestamp when billing info was modified");
  112. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  113. entity.Property(e => e.Phone)
  114. .HasMaxLength(20)
  115. .HasComment("Billing phone with format +XXXXXXXXX");
  116. entity.Property(e => e.SubjectName)
  117. .IsRequired()
  118. .HasMaxLength(200)
  119. .HasComment("Billing Subject name");
  120. entity.Property(e => e.TaxNumber)
  121. .IsRequired()
  122. .HasMaxLength(20)
  123. .HasComment("Billing Tax number");
  124. entity.Property(e => e.Vatnumber)
  125. .HasMaxLength(20)
  126. .HasColumnName("VATNumber")
  127. .HasComment("Billing VAT number");
  128. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  129. entity.Property(e => e.Zip)
  130. .IsRequired()
  131. .HasMaxLength(20)
  132. .HasColumnName("ZIP")
  133. .HasComment("Billing Address ZIP");
  134. entity.HasOne(d => d.CreatedByUser)
  135. .WithMany(p => p.BillingInfoCreatedByUsers)
  136. .HasForeignKey(d => d.CreatedByUserId)
  137. .OnDelete(DeleteBehavior.ClientSetNull)
  138. .HasConstraintName("REL_BillingInfo_User_Created");
  139. entity.HasOne(d => d.ModifiedByUser)
  140. .WithMany(p => p.BillingInfoModifiedByUsers)
  141. .HasForeignKey(d => d.ModifiedByUserId)
  142. .HasConstraintName("REL_BillingInfo_User_Modified");
  143. //entity.HasOne(d => d.Workspace)
  144. // .WithMany(p => p.BillingInfos)
  145. // .HasForeignKey(d => d.WorkspaceId)
  146. // .OnDelete(DeleteBehavior.ClientSetNull)
  147. // .HasConstraintName("REL_BillingInfo_Workspace");
  148. });
  149. modelBuilder.Entity<BillingPlan>(entity =>
  150. {
  151. entity.ToTable("BillingPlan");
  152. entity.HasComment("Defines global Billing plan strategies (how to bill document processing in workspace). This table is managed only with administrator.");
  153. entity.Property(e => e.Id).HasComment("Primary key of BillingPlan record");
  154. entity.Property(e => e.Code)
  155. .IsRequired()
  156. .HasMaxLength(10)
  157. .HasComment("Billing plan short code");
  158. entity.Property(e => e.Created)
  159. .HasColumnType("datetime")
  160. .HasDefaultValueSql("(getdate())")
  161. .HasComment("Timestamp when metadocument was created (uploaded)");
  162. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  163. entity.Property(e => e.Currency)
  164. .IsRequired()
  165. .HasMaxLength(3)
  166. .IsUnicode(false)
  167. .HasComment("Billing plan price currency");
  168. entity.Property(e => e.Description)
  169. .IsRequired()
  170. .HasMaxLength(200)
  171. .HasComment("Billing plan short description");
  172. entity.Property(e => e.IsCustom).HasComment("Flag if billing plan is custom dependent");
  173. entity.Property(e => e.IsEnabled).HasComment("Flag if record is active, otherwise shuld be delete");
  174. entity.Property(e => e.IsHidden).HasComment("Flag if billing plan is private for use, only SuperAdmin can use it");
  175. entity.Property(e => e.Modified)
  176. .HasColumnType("datetime")
  177. .HasComment("Timestamp when metadocument was modified");
  178. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated metadocument");
  179. entity.Property(e => e.Name)
  180. .IsRequired()
  181. .HasMaxLength(200)
  182. .HasComment("Billing plan name");
  183. entity.Property(e => e.Price)
  184. .HasColumnType("decimal(18, 0)")
  185. .HasComment("Billing plan price");
  186. entity.Property(e => e.PstcreditsPerItem)
  187. .HasColumnName("PSTCreditsPerItem")
  188. .HasComment("Preset - single item credit cost");
  189. entity.Property(e => e.PstinitialCredits)
  190. .HasColumnName("PSTInitialCredits")
  191. .HasComment("Preset - initial credit amount");
  192. entity.Property(e => e.PstprocessProfile)
  193. .HasMaxLength(5)
  194. .IsUnicode(false)
  195. .HasColumnName("PSTProcessProfile")
  196. .HasComment("Preset - processing profile code");
  197. entity.Property(e => e.Pstquality)
  198. .HasColumnName("PSTQuality")
  199. .HasComment("Preset - process quality 0 = lowest");
  200. entity.Property(e => e.Psttest)
  201. .HasColumnName("PSTTest")
  202. .HasComment("Preset - testing mode");
  203. entity.Property(e => e.Pstwatermark)
  204. .HasColumnName("PSTWatermark")
  205. .HasComment("Preset - watermarked");
  206. entity.HasOne(d => d.CreatedByUser)
  207. .WithMany(p => p.BillingPlanCreatedByUsers)
  208. .HasForeignKey(d => d.CreatedByUserId)
  209. .OnDelete(DeleteBehavior.ClientSetNull)
  210. .HasConstraintName("REL_BillingPlan_User_Created");
  211. entity.HasOne(d => d.ModifiedByUser)
  212. .WithMany(p => p.BillingPlanModifiedByUsers)
  213. .HasForeignKey(d => d.ModifiedByUserId)
  214. .HasConstraintName("REL_BillingPlan_User_Modified");
  215. });
  216. modelBuilder.Entity<Invoice>(entity =>
  217. {
  218. entity.ToTable("Invoice");
  219. entity.HasComment("Stores invoice information of Workspace BusinessPlan ");
  220. entity.Property(e => e.Id).HasComment("Primary key of invoice record");
  221. entity.Property(e => e.Address1)
  222. .IsRequired()
  223. .HasMaxLength(200)
  224. .HasComment("Billing Address line 1");
  225. entity.Property(e => e.Address2)
  226. .HasMaxLength(200)
  227. .HasComment("Billing Address line 2");
  228. entity.Property(e => e.Channel)
  229. .IsRequired()
  230. .HasMaxLength(20)
  231. .HasComment("Pay channel");
  232. entity.Property(e => e.ChannelReference)
  233. .IsRequired()
  234. .HasMaxLength(50)
  235. .HasComment("Pay channel reference (account number)");
  236. entity.Property(e => e.City)
  237. .IsRequired()
  238. .HasMaxLength(100)
  239. .HasComment("Billing Address city");
  240. entity.Property(e => e.Code)
  241. .IsRequired()
  242. .HasMaxLength(12)
  243. .IsUnicode(false)
  244. .HasComment("Invoice number");
  245. entity.Property(e => e.Country)
  246. .IsRequired()
  247. .HasMaxLength(50)
  248. .HasComment("Billing Address country");
  249. entity.Property(e => e.Created)
  250. .HasColumnType("datetime")
  251. .HasDefaultValueSql("(getdate())")
  252. .HasComment("Timestamp when billing info was created");
  253. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  254. entity.Property(e => e.DueDate)
  255. .HasColumnType("datetime")
  256. .HasComment("Due date");
  257. entity.Property(e => e.Email)
  258. .IsRequired()
  259. .HasMaxLength(20)
  260. .HasComment("Billing email");
  261. entity.Property(e => e.InvoiceIssuerId).HasComment("Reference to invoice issuer record");
  262. entity.Property(e => e.Modified)
  263. .HasColumnType("datetime")
  264. .HasComment("Timestamp when billing info was modified");
  265. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  266. entity.Property(e => e.Phone)
  267. .HasMaxLength(20)
  268. .HasComment("Billing phone with format +XXXXXXXXX");
  269. entity.Property(e => e.SubjectName)
  270. .IsRequired()
  271. .HasMaxLength(200)
  272. .HasComment("Billing Subject name");
  273. entity.Property(e => e.TaxDate)
  274. .HasColumnType("datetime")
  275. .HasComment("Tax date");
  276. entity.Property(e => e.TaxNumber)
  277. .IsRequired()
  278. .HasMaxLength(20)
  279. .HasComment("Billing Tax number");
  280. entity.Property(e => e.TotalBaseCurrency)
  281. .IsRequired()
  282. .HasMaxLength(3)
  283. .IsUnicode(false)
  284. .HasComment("Total base price currency (w/o VAT)");
  285. entity.Property(e => e.TotalBasePrice)
  286. .HasColumnType("decimal(16, 4)")
  287. .HasComment("Total base price (w/o VAT)");
  288. entity.Property(e => e.Vatnumber)
  289. .HasMaxLength(20)
  290. .HasColumnName("VATNumber")
  291. .HasComment("Billing VAT number");
  292. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  293. entity.Property(e => e.Zip)
  294. .IsRequired()
  295. .HasMaxLength(20)
  296. .HasColumnName("ZIP")
  297. .HasComment("Billing Address ZIP");
  298. entity.HasOne(d => d.CreatedByUser)
  299. .WithMany(p => p.InvoiceCreatedByUsers)
  300. .HasForeignKey(d => d.CreatedByUserId)
  301. .OnDelete(DeleteBehavior.ClientSetNull)
  302. .HasConstraintName("REL_Invoice_User_Created");
  303. entity.HasOne(d => d.InvoiceIssuer)
  304. .WithMany(p => p.Invoices)
  305. .HasForeignKey(d => d.InvoiceIssuerId)
  306. .OnDelete(DeleteBehavior.ClientSetNull)
  307. .HasConstraintName("REL_Invoice_InvoiceIssuer");
  308. entity.HasOne(d => d.ModifiedByUser)
  309. .WithMany(p => p.InvoiceModifiedByUsers)
  310. .HasForeignKey(d => d.ModifiedByUserId)
  311. .HasConstraintName("REL_Invoice_User_Modified");
  312. entity.HasOne(d => d.Workspace)
  313. .WithMany(p => p.Invoices)
  314. .HasForeignKey(d => d.WorkspaceId)
  315. .OnDelete(DeleteBehavior.ClientSetNull)
  316. .HasConstraintName("REL_Invoice_Workspace");
  317. });
  318. modelBuilder.Entity<InvoiceIssuer>(entity =>
  319. {
  320. entity.ToTable("InvoiceIssuer");
  321. entity.HasComment("Defines information about Invoice Issuer and its contacts information (used in invoice header)");
  322. entity.Property(e => e.Id).HasComment("Primary key of invoice issuer record");
  323. entity.Property(e => e.Address1)
  324. .IsRequired()
  325. .HasMaxLength(200)
  326. .HasComment("Billing Address line 1");
  327. entity.Property(e => e.Address2)
  328. .HasMaxLength(200)
  329. .HasComment("Billing Address line 2");
  330. entity.Property(e => e.City)
  331. .IsRequired()
  332. .HasMaxLength(100)
  333. .HasComment("Billing Address city");
  334. entity.Property(e => e.Country)
  335. .IsRequired()
  336. .HasMaxLength(50)
  337. .HasComment("Billing Address country");
  338. entity.Property(e => e.Created)
  339. .HasColumnType("datetime")
  340. .HasDefaultValueSql("(getdate())")
  341. .HasComment("Timestamp when billing info was created");
  342. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  343. entity.Property(e => e.Email)
  344. .IsRequired()
  345. .HasMaxLength(20)
  346. .HasComment("Billing email");
  347. entity.Property(e => e.IsEnabled).HasComment("Flag if record is enabled");
  348. entity.Property(e => e.Modified)
  349. .HasColumnType("datetime")
  350. .HasComment("Timestamp when billing info was modified");
  351. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  352. entity.Property(e => e.Phone)
  353. .HasMaxLength(20)
  354. .HasComment("Billing phone with format +XXXXXXXXX");
  355. entity.Property(e => e.SubjectName)
  356. .IsRequired()
  357. .HasMaxLength(200)
  358. .HasComment("Billing Subject name");
  359. entity.Property(e => e.TaxNumber)
  360. .IsRequired()
  361. .HasMaxLength(20)
  362. .HasComment("Billing Tax number");
  363. entity.Property(e => e.Vatnumber)
  364. .HasMaxLength(20)
  365. .HasColumnName("VATNumber")
  366. .HasComment("Billing VAT number");
  367. entity.Property(e => e.Zip)
  368. .IsRequired()
  369. .HasMaxLength(20)
  370. .HasColumnName("ZIP")
  371. .HasComment("Billing Address ZIP");
  372. entity.HasOne(d => d.CreatedByUser)
  373. .WithMany(p => p.InvoiceIssuerCreatedByUsers)
  374. .HasForeignKey(d => d.CreatedByUserId)
  375. .OnDelete(DeleteBehavior.ClientSetNull)
  376. .HasConstraintName("REL_InvoiceIssuer_User_Created");
  377. entity.HasOne(d => d.ModifiedByUser)
  378. .WithMany(p => p.InvoiceIssuerModifiedByUsers)
  379. .HasForeignKey(d => d.ModifiedByUserId)
  380. .HasConstraintName("REL_InvoiceIssuer_User_Modified");
  381. });
  382. modelBuilder.Entity<InvoiceItem>(entity =>
  383. {
  384. entity.ToTable("InvoiceItem");
  385. entity.HasComment("Invoice item");
  386. entity.Property(e => e.Id).HasComment("Primary key of invoice item record");
  387. entity.Property(e => e.BillingPlanCode)
  388. .IsRequired()
  389. .HasMaxLength(10)
  390. .HasComment("Billing plan short code");
  391. entity.Property(e => e.BillingPlanId).HasComment("Reference to billing plan");
  392. entity.Property(e => e.Created)
  393. .HasColumnType("datetime")
  394. .HasDefaultValueSql("(getdate())")
  395. .HasComment("Timestamp when billing info was created");
  396. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  397. entity.Property(e => e.InvoiceId).HasComment("Reference to owning invoice");
  398. entity.Property(e => e.Modified)
  399. .HasColumnType("datetime")
  400. .HasComment("Timestamp when billing info was modified");
  401. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  402. entity.Property(e => e.UnitBaseCurrency)
  403. .IsRequired()
  404. .HasMaxLength(3)
  405. .IsUnicode(false)
  406. .HasComment("Unit base price currency (w/o VAT)");
  407. entity.Property(e => e.UnitBasePrice)
  408. .HasColumnType("decimal(16, 4)")
  409. .HasComment("Unit base price (w/o VAT)");
  410. entity.Property(e => e.UnitQuantity)
  411. .HasDefaultValueSql("((1))")
  412. .HasComment("Unit quantity");
  413. entity.HasOne(d => d.BillingPlan)
  414. .WithMany(p => p.InvoiceItems)
  415. .HasForeignKey(d => d.BillingPlanId)
  416. .OnDelete(DeleteBehavior.ClientSetNull)
  417. .HasConstraintName("REL_InvoiceItem_BillingPlan");
  418. entity.HasOne(d => d.CreatedByUser)
  419. .WithMany(p => p.InvoiceItemCreatedByUsers)
  420. .HasForeignKey(d => d.CreatedByUserId)
  421. .OnDelete(DeleteBehavior.ClientSetNull)
  422. .HasConstraintName("REL_InvoiceItem_User_Created");
  423. entity.HasOne(d => d.Invoice)
  424. .WithMany(p => p.InvoiceItems)
  425. .HasForeignKey(d => d.InvoiceId)
  426. .OnDelete(DeleteBehavior.ClientSetNull)
  427. .HasConstraintName("REL_InvoiceItem_Invoice");
  428. entity.HasOne(d => d.ModifiedByUser)
  429. .WithMany(p => p.InvoiceItemModifiedByUsers)
  430. .HasForeignKey(d => d.ModifiedByUserId)
  431. .HasConstraintName("REL_InvoiceItem_User_Modified");
  432. });
  433. modelBuilder.Entity<Metadocument>(entity =>
  434. {
  435. entity.ToTable("Metadocument");
  436. entity.HasComment("Abstract single document header to process. Has setting parameters for computing and status");
  437. entity.Property(e => e.Id).HasComment("Primary key of metadocument record");
  438. entity.Property(e => e.Created)
  439. .HasColumnType("datetime")
  440. .HasDefaultValueSql("(getdate())")
  441. .HasComment("Timestamp when metadocument was created (uploaded)");
  442. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  443. entity.Property(e => e.LastDowloaded)
  444. .HasColumnType("datetime")
  445. .HasComment("Timestamp when metadocument was last downloaded");
  446. entity.Property(e => e.LastDownloadedByUserId).HasComment("Reference to user who last metadocument dowloaded");
  447. entity.Property(e => e.Modified)
  448. .HasColumnType("datetime")
  449. .HasComment("Timestamp when metadocument was modified");
  450. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated metadocument");
  451. entity.Property(e => e.Name)
  452. .IsRequired()
  453. .HasMaxLength(200)
  454. .HasComment("Metadocument name");
  455. entity.Property(e => e.Status).HasComment("Metadocument status");
  456. entity.Property(e => e.StructureId).HasComment("Reference to owning structure (workspace)");
  457. entity.HasOne(d => d.CreatedByUser)
  458. .WithMany(p => p.MetadocumentCreatedByUsers)
  459. .HasForeignKey(d => d.CreatedByUserId)
  460. .OnDelete(DeleteBehavior.ClientSetNull)
  461. .HasConstraintName("REL_Metadocument_User_Created");
  462. entity.HasOne(d => d.LastDownloadedByUser)
  463. .WithMany(p => p.MetadocumentLastDownloadedByUsers)
  464. .HasForeignKey(d => d.LastDownloadedByUserId)
  465. .HasConstraintName("REL_Metadocument_User_Downloaded");
  466. entity.HasOne(d => d.ModifiedByUser)
  467. .WithMany(p => p.MetadocumentModifiedByUsers)
  468. .HasForeignKey(d => d.ModifiedByUserId)
  469. .HasConstraintName("REL_Metadocument_User_Modified");
  470. entity.HasOne(d => d.Structure)
  471. .WithMany(p => p.Metadocuments)
  472. .HasForeignKey(d => d.StructureId)
  473. .OnDelete(DeleteBehavior.ClientSetNull)
  474. .HasConstraintName("REL_Metadocument_Structure");
  475. });
  476. modelBuilder.Entity<MetadocumentBilling>(entity =>
  477. {
  478. entity.HasNoKey();
  479. entity.ToTable("MetadocumentBilling");
  480. entity.HasComment("Association of metadocument and billing plan with properties. Stores information about processed documents (name, status timestamps, etc.) relates to workspace billing plan selection.");
  481. entity.Property(e => e.Created)
  482. .HasColumnType("datetime")
  483. .HasDefaultValueSql("(getdate())")
  484. .HasComment("Timestamp when billing was created");
  485. entity.Property(e => e.CreditCost).HasComment("Numeric value of billing plan spending. Depends on BillingPlan.");
  486. entity.Property(e => e.Downloaded)
  487. .HasColumnType("datetime")
  488. .HasComment("Timestamp when document was last downloaded");
  489. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  490. entity.Property(e => e.Modified)
  491. .HasColumnType("datetime")
  492. .HasComment("Timestamp when billing was modified");
  493. entity.Property(e => e.Procesed)
  494. .HasColumnType("datetime")
  495. .HasComment("Timestamp when document was processed");
  496. entity.Property(e => e.ProcessProfile)
  497. .HasMaxLength(5)
  498. .IsUnicode(false)
  499. .HasComment("Processing profile code");
  500. entity.Property(e => e.ProcessStart)
  501. .HasColumnType("datetime")
  502. .HasComment("Timestamp when document set to processing state");
  503. entity.Property(e => e.ProcessState).HasComment("Last state of processing (OK,Fail)");
  504. entity.Property(e => e.Psinstance)
  505. .HasMaxLength(100)
  506. .IsUnicode(false)
  507. .HasColumnName("PSInstance")
  508. .HasComment("Process server instance identifier");
  509. entity.Property(e => e.Quality).HasComment("Process quality 0 = lowest");
  510. entity.Property(e => e.Test).HasComment("Flag if testing mode");
  511. entity.Property(e => e.Watermark).HasComment("Flag if watermarked");
  512. entity.Property(e => e.WorkspaceBillingId).HasComment("Reference to workspace billing plan");
  513. entity.HasOne(d => d.Metadocument)
  514. .WithMany()
  515. .HasForeignKey(d => d.MetadocumentId)
  516. .HasConstraintName("REL_MetadocumentBilling_Metadocument");
  517. entity.HasOne(d => d.WorkspaceBilling)
  518. .WithMany()
  519. .HasForeignKey(d => d.WorkspaceBillingId)
  520. .OnDelete(DeleteBehavior.ClientSetNull)
  521. .HasConstraintName("REL_MetadocumentBilling_WorkspaceBilling");
  522. });
  523. modelBuilder.Entity<MetadocumentTag>(entity =>
  524. {
  525. entity.HasNoKey();
  526. entity.ToTable("MetadocumentTag");
  527. entity.HasComment("Association of metadocument and tag");
  528. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  529. entity.Property(e => e.TagId).HasComment("Reference to Tag");
  530. entity.HasOne(d => d.Metadocument)
  531. .WithMany()
  532. .HasForeignKey(d => d.MetadocumentId)
  533. .OnDelete(DeleteBehavior.ClientSetNull)
  534. .HasConstraintName("REL_MetadocumentTag_Metadocument");
  535. entity.HasOne(d => d.Tag)
  536. .WithMany()
  537. .HasForeignKey(d => d.TagId)
  538. .OnDelete(DeleteBehavior.ClientSetNull)
  539. .HasConstraintName("REL_MetadocumentTag_Tag");
  540. });
  541. modelBuilder.Entity<MimeType>(entity =>
  542. {
  543. entity.ToTable("MimeType");
  544. entity.HasComment("MIME Types global enumeration. Defines file extension and MIME type association, This table is managed only with administrator.");
  545. entity.Property(e => e.Id).HasComment("Primary key of MIMEType record");
  546. entity.Property(e => e.Created)
  547. .HasColumnType("datetime")
  548. .HasDefaultValueSql("(getdate())")
  549. .HasComment("Timestamp when metadocument was created (uploaded)");
  550. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  551. entity.Property(e => e.Description)
  552. .IsRequired()
  553. .HasMaxLength(200)
  554. .HasComment("Short description of MIMEType");
  555. entity.Property(e => e.Extensions)
  556. .IsRequired()
  557. .HasMaxLength(500)
  558. .HasComment("Extensions for mime type separated by semicolomn (example cad; cat; txt)");
  559. entity.Property(e => e.IsEnabled).HasComment("Flag if record is active, otherwise shuld be delete");
  560. entity.Property(e => e.Mimetype1)
  561. .IsRequired()
  562. .HasMaxLength(500)
  563. .HasColumnName("MIMEType")
  564. .HasComment("MIMEType code");
  565. entity.Property(e => e.Modified)
  566. .HasColumnType("datetime")
  567. .HasComment("Timestamp when metadocument was modified");
  568. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated metadocument");
  569. entity.HasOne(d => d.CreatedByUser)
  570. .WithMany(p => p.MimeTypeCreatedByUsers)
  571. .HasForeignKey(d => d.CreatedByUserId)
  572. .OnDelete(DeleteBehavior.ClientSetNull)
  573. .HasConstraintName("REL_MimeType_User_Created");
  574. entity.HasOne(d => d.ModifiedByUser)
  575. .WithMany(p => p.MimeTypeModifiedByUsers)
  576. .HasForeignKey(d => d.ModifiedByUserId)
  577. .HasConstraintName("REL_MimeType_User_Modified");
  578. });
  579. modelBuilder.Entity<Registration>(entity =>
  580. {
  581. entity.ToTable("Registration");
  582. entity.HasComment("Holds Process Server registrations");
  583. entity.Property(e => e.Id).HasComment("Primary key of Registration record");
  584. entity.Property(e => e.Created)
  585. .HasColumnType("datetime")
  586. .HasDefaultValueSql("(getdate())")
  587. .HasComment("Timestamp when registration was created");
  588. entity.Property(e => e.DocumentFailedCnt).HasComment("# of failed documents");
  589. entity.Property(e => e.DocumentProcessedCnt).HasComment("# of new processed documents");
  590. entity.Property(e => e.LastActivity)
  591. .HasColumnType("datetime")
  592. .HasComment("Timestamp latest activity");
  593. entity.Property(e => e.LocationIp)
  594. .HasMaxLength(100)
  595. .IsUnicode(false)
  596. .HasColumnName("LocationIP")
  597. .HasComment("Process server instance identifier");
  598. entity.Property(e => e.Modified)
  599. .HasColumnType("datetime")
  600. .HasComment("Timestamp when registration was modified");
  601. entity.Property(e => e.Psinstance)
  602. .HasMaxLength(100)
  603. .IsUnicode(false)
  604. .HasColumnName("PSInstance")
  605. .HasComment("Process server instance identifier");
  606. });
  607. modelBuilder.Entity<Statistic>(entity =>
  608. {
  609. entity.ToTable("Statistic");
  610. entity.HasComment("Holds statistics information on daily base");
  611. entity.HasIndex(e => new { e.Year, e.Month, e.Day }, "IDX_DATE")
  612. .IsUnique();
  613. entity.Property(e => e.Id).HasComment("Primary key of Statistic record");
  614. entity.Property(e => e.Created)
  615. .HasColumnType("datetime")
  616. .HasDefaultValueSql("(getdate())")
  617. .HasComment("Timestamp when billing info was created");
  618. entity.Property(e => e.Day).HasComment("Day number");
  619. entity.Property(e => e.DocumentDownloadedCnt).HasComment("# of downloaded documents");
  620. entity.Property(e => e.DocumentFailedCnt).HasComment("# of failed documents");
  621. entity.Property(e => e.DocumentNewCnt).HasComment("# of new created/uploaded documents");
  622. entity.Property(e => e.DocumentProcessedCnt).HasComment("# of processed documents");
  623. entity.Property(e => e.DocumentTotalCnt).HasComment("# of all available documents");
  624. entity.Property(e => e.InvoiceNewCnt).HasComment("# of new created invoices");
  625. entity.Property(e => e.Modified)
  626. .HasColumnType("datetime")
  627. .HasComment("Timestamp when billing info was modified");
  628. entity.Property(e => e.Month).HasComment("Month number");
  629. entity.Property(e => e.PsactiveCnt)
  630. .HasColumnName("PSActiveCnt")
  631. .HasComment("# of active ProcessServer instances");
  632. entity.Property(e => e.UserLoginB2bcnt)
  633. .HasColumnName("UserLoginB2BCnt")
  634. .HasComment("# of logged B2B users");
  635. entity.Property(e => e.UserLoginCnt).HasComment("# of logged users (incl B2B)");
  636. entity.Property(e => e.UserNewCnt).HasComment("# of new created users");
  637. entity.Property(e => e.UserTotalCnt).HasComment("# of all users (incl system)");
  638. entity.Property(e => e.WorkspaceNewCnt).HasComment("# of new created workspaces");
  639. entity.Property(e => e.WorkspaceTotalCnt).HasComment("# of all workspaces");
  640. entity.Property(e => e.Year).HasComment("Year number");
  641. entity.Property(e => e.YieldWorthCurrency)
  642. .IsRequired()
  643. .HasMaxLength(3)
  644. .IsUnicode(false)
  645. .HasComment("currency code of yieldworth");
  646. entity.Property(e => e.YieldWorthSum)
  647. .HasColumnType("decimal(16, 4)")
  648. .HasComment("sum of daily yield worth");
  649. entity.Property(e => e.YieldWorthTotalCurrency)
  650. .IsRequired()
  651. .HasMaxLength(3)
  652. .IsUnicode(false)
  653. .HasComment("currency code of yieldworth");
  654. entity.Property(e => e.YieldWorthTotalSum)
  655. .HasColumnType("decimal(16, 4)")
  656. .HasComment("sum of daily yield worth");
  657. });
  658. modelBuilder.Entity<StatusHistory>(entity =>
  659. {
  660. entity.ToTable("StatusHistory");
  661. entity.HasComment("Stores metadocument status changing log with messages");
  662. entity.Property(e => e.Id).HasComment("Primary key of metadocument status history record");
  663. entity.Property(e => e.Created)
  664. .HasColumnType("datetime")
  665. .HasDefaultValueSql("(getdate())")
  666. .HasComment("Timestamp when metadocument was created (uploaded)");
  667. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  668. entity.Property(e => e.Message)
  669. .HasMaxLength(4000)
  670. .HasComment("Status change message or error message. This value is optional.");
  671. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  672. entity.Property(e => e.Status).HasComment("Metadocument status");
  673. entity.HasOne(d => d.CreatedByUser)
  674. .WithMany(p => p.StatusHistories)
  675. .HasForeignKey(d => d.CreatedByUserId)
  676. .OnDelete(DeleteBehavior.ClientSetNull)
  677. .HasConstraintName("REL_StatusHistory_User_Created");
  678. entity.HasOne(d => d.Metadocument)
  679. .WithMany(p => p.StatusHistories)
  680. .HasForeignKey(d => d.MetadocumentId)
  681. .OnDelete(DeleteBehavior.ClientSetNull)
  682. .HasConstraintName("REL_StatusHistory_Metadocument");
  683. });
  684. modelBuilder.Entity<Structure>(entity =>
  685. {
  686. entity.ToTable("Structure");
  687. entity.HasComment("Abstract repository structure (folder-like) where documents are assignig");
  688. entity.Property(e => e.Id).HasComment("Structure primary key");
  689. entity.Property(e => e.Created)
  690. .HasColumnType("datetime")
  691. .HasDefaultValueSql("(getdate())")
  692. .HasComment("Timestamp when workspace was created");
  693. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created workspace");
  694. entity.Property(e => e.Modified)
  695. .HasColumnType("datetime")
  696. .HasComment("Timestamp when workspace was modified");
  697. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated workspace");
  698. entity.Property(e => e.Name)
  699. .IsRequired()
  700. .HasMaxLength(200)
  701. .HasComment("Structure name");
  702. entity.Property(e => e.ParentId).HasComment("Reference to parent structure (folder). If null then record is root");
  703. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  704. entity.HasOne(d => d.Parent)
  705. .WithMany(p => p.InverseParent)
  706. .HasForeignKey(d => d.ParentId)
  707. .HasConstraintName("REL_Structure_Structure_Parent");
  708. entity.HasOne(d => d.Workspace)
  709. .WithMany(p => p.Structures)
  710. .HasForeignKey(d => d.WorkspaceId)
  711. .OnDelete(DeleteBehavior.ClientSetNull)
  712. .HasConstraintName("REL_Structure_Workspace");
  713. });
  714. modelBuilder.Entity<Tag>(entity =>
  715. {
  716. entity.ToTable("Tag");
  717. entity.HasComment("Declares tag for workspace scope. Tag is used on metadocument.");
  718. entity.Property(e => e.Id).HasComment("Primary key of tag record");
  719. entity.Property(e => e.Created)
  720. .HasColumnType("datetime")
  721. .HasDefaultValueSql("(getdate())")
  722. .HasComment("Timestamp when billing info was created");
  723. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  724. entity.Property(e => e.Modified)
  725. .HasColumnType("datetime")
  726. .HasComment("Timestamp when billing info was modified");
  727. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  728. entity.Property(e => e.Name)
  729. .IsRequired()
  730. .HasMaxLength(50)
  731. .HasComment("Tag name");
  732. entity.Property(e => e.Rgb)
  733. .IsRequired()
  734. .HasMaxLength(50)
  735. .IsUnicode(false)
  736. .HasColumnName("RGB")
  737. .HasComment("Tag color in RGB format");
  738. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  739. entity.HasOne(d => d.CreatedByUser)
  740. .WithMany(p => p.TagCreatedByUsers)
  741. .HasForeignKey(d => d.CreatedByUserId)
  742. .OnDelete(DeleteBehavior.ClientSetNull)
  743. .HasConstraintName("REL_Tag_User_Created");
  744. entity.HasOne(d => d.ModifiedByUser)
  745. .WithMany(p => p.TagModifiedByUsers)
  746. .HasForeignKey(d => d.ModifiedByUserId)
  747. .HasConstraintName("REL_Tag_User_Modified");
  748. entity.HasOne(d => d.Workspace)
  749. .WithMany(p => p.Tags)
  750. .HasForeignKey(d => d.WorkspaceId)
  751. .OnDelete(DeleteBehavior.ClientSetNull)
  752. .HasConstraintName("REL_Tag_Workspace");
  753. });
  754. modelBuilder.Entity<User>(entity =>
  755. {
  756. entity.ToTable("User");
  757. entity.HasComment("User identity with properties");
  758. entity.HasIndex(e => e.Ifreference, "IDX_IFREFERENCE")
  759. .IsUnique();
  760. entity.HasIndex(e => e.Name, "IDX_USER_NAME")
  761. .IsUnique();
  762. entity.Property(e => e.Id).HasComment("User primary key");
  763. entity.Property(e => e.Created)
  764. .HasColumnType("datetime")
  765. .HasDefaultValueSql("(getdate())")
  766. .HasComment("Timestamp when user was created");
  767. entity.Property(e => e.Ifreference)
  768. .IsRequired()
  769. .HasMaxLength(50)
  770. .IsUnicode(false)
  771. .HasColumnName("IFReference")
  772. .HasComment("Reference to Identity framework IdentityUser.Id");
  773. entity.Property(e => e.IsEnabled).HasComment("Flag if user can sign on");
  774. entity.Property(e => e.IsSystem).HasComment("Flag if user is system only account. Cannot log in.");
  775. entity.Property(e => e.LangLcid)
  776. .HasColumnName("LangLCID")
  777. .HasDefaultValueSql("((1033))")
  778. .HasComment("LCID of preffered user language");
  779. entity.Property(e => e.LastDisabled)
  780. .HasColumnType("datetime")
  781. .HasComment("Timestamp of last user set to be disabled");
  782. entity.Property(e => e.LastEnabled)
  783. .HasColumnType("datetime")
  784. .HasComment("Timestamp of last user set to be enabled");
  785. entity.Property(e => e.LastLogged)
  786. .HasColumnType("datetime")
  787. .HasComment("Timestamp of user last successful login");
  788. entity.Property(e => e.Modified)
  789. .HasColumnType("datetime")
  790. .HasComment("Timestamp when user was modified");
  791. entity.Property(e => e.Name)
  792. .IsRequired()
  793. .HasMaxLength(200)
  794. .HasComment("Full user name");
  795. });
  796. modelBuilder.Entity<UserWorkspace>(entity =>
  797. {
  798. // entity.HasNoKey();
  799. entity.ToTable("UserWorkspace");
  800. entity.HasComment("Association between User and Workspace. Which Workspace is assigned to user.");
  801. entity.Property(e => e.IsDefault).HasComment("Flag if relation is default");
  802. entity.Property(e => e.UserId).HasComment("Reference to user record");
  803. entity.Property(e => e.WorkspaceId).HasComment("Reference to workspace record");
  804. entity.HasOne(d => d.User)
  805. .WithMany()
  806. .HasForeignKey(d => d.UserId)
  807. .OnDelete(DeleteBehavior.ClientSetNull)
  808. .HasConstraintName("REL_UserWorkspace_User");
  809. entity.HasOne(d => d.Workspace)
  810. .WithMany()
  811. .HasForeignKey(d => d.WorkspaceId)
  812. .OnDelete(DeleteBehavior.ClientSetNull)
  813. .HasConstraintName("REL_UserWorkspace_Workspace");
  814. });
  815. modelBuilder.Entity<Workspace>(entity =>
  816. {
  817. entity.ToTable("Workspace");
  818. entity.HasComment("Main workspace root structure holds information about working space (set of documents) and their business plan");
  819. entity.Property(e => e.Id).HasComment("Workspace primary key");
  820. entity.Property(e => e.Apikey)
  821. .HasColumnName("APIKey")
  822. .HasDefaultValueSql("(newid())")
  823. .HasComment("API Key for access to workspace via B2B interface");
  824. entity.Property(e => e.Apipassword)
  825. .IsRequired()
  826. .HasMaxLength(50)
  827. .HasColumnName("APIPassword")
  828. .HasComment("API Key Password for access to workspace via B2B interface");
  829. entity.Property(e => e.BillingInfoId).HasComment("Reference to current billing info record");
  830. entity.Property(e => e.BillingPlanId).HasComment("Reference to current billing plan record");
  831. entity.Property(e => e.Created)
  832. .HasColumnType("datetime")
  833. .HasDefaultValueSql("(getdate())")
  834. .HasComment("Timestamp when workspace was created");
  835. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created workspace");
  836. entity.Property(e => e.IsGold).HasComment("Define if workspace is GOLD mode (has custom billing plan)");
  837. entity.Property(e => e.Modified)
  838. .HasColumnType("datetime")
  839. .HasComment("Timestamp when workspace was modified");
  840. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated workspace");
  841. entity.Property(e => e.Name)
  842. .IsRequired()
  843. .HasMaxLength(200)
  844. .HasComment("Workspace name");
  845. //entity.HasOne(d => d.BillingInfo)
  846. // .WithMany(p => p.Workspaces)
  847. // .HasForeignKey(d => d.BillingInfoId)
  848. // .HasConstraintName("REL_Workspace_BillingInfo");
  849. entity.HasOne(d => d.CreatedByUser)
  850. .WithMany(p => p.WorkspaceCreatedByUsers)
  851. .HasForeignKey(d => d.CreatedByUserId)
  852. .OnDelete(DeleteBehavior.ClientSetNull)
  853. .HasConstraintName("REL_Workspace_User_Created");
  854. entity.HasOne(d => d.ModifiedByUser)
  855. .WithMany(p => p.WorkspaceModifiedByUsers)
  856. .HasForeignKey(d => d.ModifiedByUserId)
  857. .HasConstraintName("REL_Workspace_User_Modified");
  858. });
  859. modelBuilder.Entity<WorkspaceBilling>(entity =>
  860. {
  861. entity.ToTable("WorkspaceBilling");
  862. entity.HasComment("Deffines current state of billing plan for workspace");
  863. entity.Property(e => e.Id).HasComment("Primary key of WorkspaceBilling record");
  864. entity.Property(e => e.BillingPlanId).HasComment("Reference to billing plan");
  865. entity.Property(e => e.Created)
  866. .HasColumnType("datetime")
  867. .HasDefaultValueSql("(getdate())")
  868. .HasComment("Timestamp when billing was created");
  869. entity.Property(e => e.CustomPstcreditsPerItem)
  870. .HasColumnName("CustomPSTCreditsPerItem")
  871. .HasComment("Custom Preset Override - single item credit cost");
  872. entity.Property(e => e.CustomPstinitialCredits)
  873. .HasColumnName("CustomPSTInitialCredits")
  874. .HasComment("Custom Preset Override - initial credit amount");
  875. entity.Property(e => e.CustomPstprocessProfile)
  876. .HasMaxLength(5)
  877. .IsUnicode(false)
  878. .HasColumnName("CustomPSTProcessProfile")
  879. .HasComment("Custom Preset Override - processing profile code");
  880. entity.Property(e => e.CustomPstquality)
  881. .HasColumnName("CustomPSTQuality")
  882. .HasComment("Custom Preset Override - process quality 0 = lowest");
  883. entity.Property(e => e.CustomPsttest)
  884. .HasColumnName("CustomPSTTest")
  885. .HasComment("Custom Preset Override - testing mode");
  886. entity.Property(e => e.CustomPstwatermark)
  887. .HasColumnName("CustomPSTWatermark")
  888. .HasComment("Custom Preset Override - watermarked");
  889. entity.Property(e => e.Modified)
  890. .HasColumnType("datetime")
  891. .HasComment("Timestamp when billing was modified");
  892. entity.Property(e => e.ValueDate)
  893. .HasColumnType("datetime")
  894. .HasComment("DateTime value of billing plan spending. Depends on BillingPlan");
  895. entity.Property(e => e.ValueNumber)
  896. .HasColumnType("decimal(16, 4)")
  897. .HasComment("Numeric value of billing plan spending. Depends on BillingPlan.");
  898. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  899. entity.HasOne(d => d.BillingPlan)
  900. .WithMany(p => p.WorkspaceBillings)
  901. .HasForeignKey(d => d.BillingPlanId)
  902. .OnDelete(DeleteBehavior.ClientSetNull)
  903. .HasConstraintName("REL_WorkspaceBilling_BillingPlan");
  904. entity.HasOne(d => d.Workspace)
  905. .WithMany(p => p.WorkspaceBillings)
  906. .HasForeignKey(d => d.WorkspaceId)
  907. .OnDelete(DeleteBehavior.ClientSetNull)
  908. .HasConstraintName("REL_WorkspaceBilling_Workspace");
  909. });
  910. OnModelCreatingPartial(modelBuilder);
  911. }
  912. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  913. }
  914. }