BOContext.cs 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229
  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. }