BOContext.cs 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163
  1. using System;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.EntityFrameworkCore.Metadata;
  4. using Quadarax.Foundation.Core.Data.Domain;
  5. #nullable disable
  6. namespace BO.AppServer.Data.Entity
  7. {
  8. public partial class BOContext : DataDomain
  9. {
  10. public BOContext(DbContextOptions<BOContext> options)
  11. : base(options)
  12. {
  13. }
  14. public virtual DbSet<Artifact> Artifacts { get; set; }
  15. public virtual DbSet<BillingInfo> BillingInfos { get; set; }
  16. public virtual DbSet<BillingPlan> BillingPlans { get; set; }
  17. public virtual DbSet<Invoice> Invoices { get; set; }
  18. public virtual DbSet<InvoiceIssuer> InvoiceIssuers { get; set; }
  19. public virtual DbSet<InvoiceItem> InvoiceItems { get; set; }
  20. public virtual DbSet<Metadocument> Metadocuments { get; set; }
  21. public virtual DbSet<MetadocumentBilling> MetadocumentBillings { get; set; }
  22. public virtual DbSet<MetadocumentTag> MetadocumentTags { get; set; }
  23. public virtual DbSet<MimeType> MimeTypes { 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");
  481. entity.Property(e => e.BillingPlanId).HasComment("Reference to billing plan");
  482. entity.Property(e => e.Created)
  483. .HasColumnType("datetime")
  484. .HasDefaultValueSql("(getdate())")
  485. .HasComment("Timestamp when billing was created");
  486. entity.Property(e => e.CreditCost).HasComment("Numeric value of billing plan spending. Depends on BillingPlan.");
  487. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  488. entity.Property(e => e.Modified)
  489. .HasColumnType("datetime")
  490. .HasComment("Timestamp when billing was modified");
  491. entity.Property(e => e.ProcessProfile)
  492. .HasMaxLength(5)
  493. .IsUnicode(false)
  494. .HasComment("Processing profile code");
  495. entity.Property(e => e.Quality).HasComment("Process quality 0 = lowest");
  496. entity.Property(e => e.Test).HasComment("Flag if testing mode");
  497. entity.Property(e => e.Watermark).HasComment("Flag if watermarked");
  498. entity.HasOne(d => d.BillingPlan)
  499. .WithMany()
  500. .HasForeignKey(d => d.BillingPlanId)
  501. .OnDelete(DeleteBehavior.ClientSetNull)
  502. .HasConstraintName("REL_MetadocumentBilling_BillingPlan");
  503. entity.HasOne(d => d.Metadocument)
  504. .WithMany()
  505. .HasForeignKey(d => d.MetadocumentId)
  506. .OnDelete(DeleteBehavior.ClientSetNull)
  507. .HasConstraintName("REL_MetadocumentBilling_Metadocument");
  508. });
  509. modelBuilder.Entity<MetadocumentTag>(entity =>
  510. {
  511. entity.HasNoKey();
  512. entity.ToTable("MetadocumentTag");
  513. entity.HasComment("Association of metadocument and tag");
  514. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  515. entity.Property(e => e.TagId).HasComment("Reference to Tag");
  516. entity.HasOne(d => d.Metadocument)
  517. .WithMany()
  518. .HasForeignKey(d => d.MetadocumentId)
  519. .OnDelete(DeleteBehavior.ClientSetNull)
  520. .HasConstraintName("REL_MetadocumentTag_Metadocument");
  521. entity.HasOne(d => d.Tag)
  522. .WithMany()
  523. .HasForeignKey(d => d.TagId)
  524. .OnDelete(DeleteBehavior.ClientSetNull)
  525. .HasConstraintName("REL_MetadocumentTag_Tag");
  526. });
  527. modelBuilder.Entity<MimeType>(entity =>
  528. {
  529. entity.ToTable("MimeType");
  530. entity.HasComment("MIME Types global enumeration. Defines file extension and MIME type association, This table is managed only with administrator.");
  531. entity.Property(e => e.Id).HasComment("Primary key of MIMEType record");
  532. entity.Property(e => e.Created)
  533. .HasColumnType("datetime")
  534. .HasDefaultValueSql("(getdate())")
  535. .HasComment("Timestamp when metadocument was created (uploaded)");
  536. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  537. entity.Property(e => e.Description)
  538. .IsRequired()
  539. .HasMaxLength(200)
  540. .HasComment("Short description of MIMEType");
  541. entity.Property(e => e.Extensions)
  542. .IsRequired()
  543. .HasMaxLength(500)
  544. .HasComment("Extensions for mime type separated by semicolomn (example cad; cat; txt)");
  545. entity.Property(e => e.IsEnabled).HasComment("Flag if record is active, otherwise shuld be delete");
  546. entity.Property(e => e.Mimetype1)
  547. .IsRequired()
  548. .HasMaxLength(500)
  549. .HasColumnName("MIMEType")
  550. .HasComment("MIMEType code");
  551. entity.Property(e => e.Modified)
  552. .HasColumnType("datetime")
  553. .HasComment("Timestamp when metadocument was modified");
  554. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated metadocument");
  555. entity.HasOne(d => d.CreatedByUser)
  556. .WithMany(p => p.MimeTypeCreatedByUsers)
  557. .HasForeignKey(d => d.CreatedByUserId)
  558. .OnDelete(DeleteBehavior.ClientSetNull)
  559. .HasConstraintName("REL_MimeType_User_Created");
  560. entity.HasOne(d => d.ModifiedByUser)
  561. .WithMany(p => p.MimeTypeModifiedByUsers)
  562. .HasForeignKey(d => d.ModifiedByUserId)
  563. .HasConstraintName("REL_MimeType_User_Modified");
  564. });
  565. modelBuilder.Entity<Statistic>(entity =>
  566. {
  567. entity.ToTable("Statistic");
  568. entity.HasComment("Holds statistics information on daily base");
  569. entity.Property(e => e.Id).HasComment("Primary key of Statistic record");
  570. entity.Property(e => e.Created)
  571. .HasColumnType("datetime")
  572. .HasDefaultValueSql("(getdate())")
  573. .HasComment("Timestamp when billing info was created");
  574. entity.Property(e => e.Day).HasComment("Day number");
  575. entity.Property(e => e.DocumentDownloadedCnt).HasComment("# of downloaded documents");
  576. entity.Property(e => e.DocumentFailedCnt).HasComment("# of failed documents");
  577. entity.Property(e => e.DocumentNewCnt).HasComment("# of new created/uploaded documents");
  578. entity.Property(e => e.DocumentProcessedCnt).HasComment("# of processed documents");
  579. entity.Property(e => e.DocumentTotalCnt).HasComment("# of all available documents");
  580. entity.Property(e => e.InvoiceNewCnt).HasComment("# of new created invoices");
  581. entity.Property(e => e.Modified)
  582. .HasColumnType("datetime")
  583. .HasComment("Timestamp when billing info was modified");
  584. entity.Property(e => e.Month).HasComment("Month number");
  585. entity.Property(e => e.PsactiveCnt)
  586. .HasColumnName("PSActiveCnt")
  587. .HasComment("# of active ProcessServer instances");
  588. entity.Property(e => e.UserLoginB2bcnt)
  589. .HasColumnName("UserLoginB2BCnt")
  590. .HasComment("# of logged B2B users");
  591. entity.Property(e => e.UserLoginCnt).HasComment("# of logged users (incl B2B)");
  592. entity.Property(e => e.UserNewCnt).HasComment("# of new created users");
  593. entity.Property(e => e.UserTotalCnt).HasComment("# of all users (incl system)");
  594. entity.Property(e => e.WorkspaceNewCnt).HasComment("# of new created workspaces");
  595. entity.Property(e => e.WorkspaceTotalCnt).HasComment("# of all workspaces");
  596. entity.Property(e => e.Year).HasComment("Year number");
  597. entity.Property(e => e.YieldWorthCurrency)
  598. .IsRequired()
  599. .HasMaxLength(3)
  600. .IsUnicode(false)
  601. .HasComment("currency code of yieldworth");
  602. entity.Property(e => e.YieldWorthSum)
  603. .HasColumnType("decimal(16, 4)")
  604. .HasComment("sum of daily yield worth");
  605. entity.Property(e => e.YieldWorthTotalCurrency)
  606. .IsRequired()
  607. .HasMaxLength(3)
  608. .IsUnicode(false)
  609. .HasComment("currency code of yieldworth");
  610. entity.Property(e => e.YieldWorthTotalSum)
  611. .HasColumnType("decimal(16, 4)")
  612. .HasComment("sum of daily yield worth");
  613. });
  614. modelBuilder.Entity<StatusHistory>(entity =>
  615. {
  616. entity.ToTable("StatusHistory");
  617. entity.HasComment("Stores metadocument status changing log with messages");
  618. entity.Property(e => e.Id).HasComment("Primary key of metadocument status history record");
  619. entity.Property(e => e.Created)
  620. .HasColumnType("datetime")
  621. .HasDefaultValueSql("(getdate())")
  622. .HasComment("Timestamp when metadocument was created (uploaded)");
  623. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created (uploaded) metadocument");
  624. entity.Property(e => e.Message)
  625. .HasMaxLength(4000)
  626. .HasComment("Status change message or error message. This value is optional.");
  627. entity.Property(e => e.MetadocumentId).HasComment("Reference to owning metadocument");
  628. entity.Property(e => e.Status).HasComment("Metadocument status");
  629. entity.HasOne(d => d.CreatedByUser)
  630. .WithMany(p => p.StatusHistories)
  631. .HasForeignKey(d => d.CreatedByUserId)
  632. .OnDelete(DeleteBehavior.ClientSetNull)
  633. .HasConstraintName("REL_StatusHistory_User_Created");
  634. entity.HasOne(d => d.Metadocument)
  635. .WithMany(p => p.StatusHistories)
  636. .HasForeignKey(d => d.MetadocumentId)
  637. .OnDelete(DeleteBehavior.ClientSetNull)
  638. .HasConstraintName("REL_StatusHistory_Metadocument");
  639. });
  640. modelBuilder.Entity<Structure>(entity =>
  641. {
  642. entity.ToTable("Structure");
  643. entity.HasComment("Abstract repository structure (folder-like) where documents are assignig");
  644. entity.Property(e => e.Id).HasComment("Structure primary key");
  645. entity.Property(e => e.Created)
  646. .HasColumnType("datetime")
  647. .HasDefaultValueSql("(getdate())")
  648. .HasComment("Timestamp when workspace was created");
  649. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created workspace");
  650. entity.Property(e => e.Modified)
  651. .HasColumnType("datetime")
  652. .HasComment("Timestamp when workspace was modified");
  653. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated workspace");
  654. entity.Property(e => e.Name)
  655. .IsRequired()
  656. .HasMaxLength(200)
  657. .HasComment("Structure name");
  658. entity.Property(e => e.ParentId).HasComment("Reference to parent structure (folder). If null then record is root");
  659. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  660. entity.HasOne(d => d.Parent)
  661. .WithMany(p => p.InverseParent)
  662. .HasForeignKey(d => d.ParentId)
  663. .HasConstraintName("REL_Structure_Structure_Parent");
  664. entity.HasOne(d => d.Workspace)
  665. .WithMany(p => p.Structures)
  666. .HasForeignKey(d => d.WorkspaceId)
  667. .OnDelete(DeleteBehavior.ClientSetNull)
  668. .HasConstraintName("REL_Structure_Workspace");
  669. });
  670. modelBuilder.Entity<Tag>(entity =>
  671. {
  672. entity.ToTable("Tag");
  673. entity.HasComment("Declares tag for workspace scope. Tag is used on metadocument.");
  674. entity.Property(e => e.Id).HasComment("Primary key of tag record");
  675. entity.Property(e => e.Created)
  676. .HasColumnType("datetime")
  677. .HasDefaultValueSql("(getdate())")
  678. .HasComment("Timestamp when billing info was created");
  679. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created billing info");
  680. entity.Property(e => e.Modified)
  681. .HasColumnType("datetime")
  682. .HasComment("Timestamp when billing info was modified");
  683. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated billing info");
  684. entity.Property(e => e.Name)
  685. .IsRequired()
  686. .HasMaxLength(50)
  687. .HasComment("Tag name");
  688. entity.Property(e => e.Rgb)
  689. .IsRequired()
  690. .HasMaxLength(50)
  691. .IsUnicode(false)
  692. .HasColumnName("RGB")
  693. .HasComment("Tag color in RGB format");
  694. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  695. entity.HasOne(d => d.CreatedByUser)
  696. .WithMany(p => p.TagCreatedByUsers)
  697. .HasForeignKey(d => d.CreatedByUserId)
  698. .OnDelete(DeleteBehavior.ClientSetNull)
  699. .HasConstraintName("REL_Tag_User_Created");
  700. entity.HasOne(d => d.ModifiedByUser)
  701. .WithMany(p => p.TagModifiedByUsers)
  702. .HasForeignKey(d => d.ModifiedByUserId)
  703. .HasConstraintName("REL_Tag_User_Modified");
  704. entity.HasOne(d => d.Workspace)
  705. .WithMany(p => p.Tags)
  706. .HasForeignKey(d => d.WorkspaceId)
  707. .OnDelete(DeleteBehavior.ClientSetNull)
  708. .HasConstraintName("REL_Tag_Workspace");
  709. });
  710. modelBuilder.Entity<User>(entity =>
  711. {
  712. entity.ToTable("User");
  713. entity.HasComment("User identity with properties");
  714. entity.Property(e => e.Id).HasComment("User primary key");
  715. entity.Property(e => e.Created)
  716. .HasColumnType("datetime")
  717. .HasDefaultValueSql("(getdate())")
  718. .HasComment("Timestamp when user was created");
  719. entity.Property(e => e.Ifreference)
  720. .IsRequired()
  721. .HasMaxLength(50)
  722. .IsUnicode(false)
  723. .HasColumnName("IFReference")
  724. .HasComment("Reference to Identity framework IdentityUser.Id");
  725. entity.Property(e => e.IsEnabled).HasComment("Flag if user can sign on");
  726. entity.Property(e => e.IsSystem).HasComment("Flag if user is system only account. Cannot log in.");
  727. entity.Property(e => e.LangLcid)
  728. .HasColumnName("LangLCID")
  729. .HasDefaultValueSql("((1033))")
  730. .HasComment("LCID of preffered user language");
  731. entity.Property(e => e.LastDisabled)
  732. .HasColumnType("datetime")
  733. .HasComment("Timestamp of last user set to be disabled");
  734. entity.Property(e => e.LastEnabled)
  735. .HasColumnType("datetime")
  736. .HasComment("Timestamp of last user set to be enabled");
  737. entity.Property(e => e.LastLogged)
  738. .HasColumnType("datetime")
  739. .HasComment("Timestamp of user last successful login");
  740. entity.Property(e => e.Modified)
  741. .HasColumnType("datetime")
  742. .HasComment("Timestamp when user was modified");
  743. entity.Property(e => e.Name)
  744. .IsRequired()
  745. .HasMaxLength(200)
  746. .HasComment("Full user name");
  747. });
  748. modelBuilder.Entity<UserWorkspace>(entity =>
  749. {
  750. entity.HasNoKey();
  751. entity.ToTable("UserWorkspace");
  752. entity.HasComment("Association between User and Workspace. Which Workspace is assigned to user.");
  753. entity.Property(e => e.IsDefault).HasComment("Flag if relation is default");
  754. entity.Property(e => e.UserId).HasComment("Reference to user record");
  755. entity.Property(e => e.WorkspaceId).HasComment("Reference to workspace record");
  756. entity.HasOne(d => d.User)
  757. .WithMany()
  758. .HasForeignKey(d => d.UserId)
  759. .OnDelete(DeleteBehavior.ClientSetNull)
  760. .HasConstraintName("REL_UserWorkspace_User");
  761. entity.HasOne(d => d.Workspace)
  762. .WithMany()
  763. .HasForeignKey(d => d.WorkspaceId)
  764. .OnDelete(DeleteBehavior.ClientSetNull)
  765. .HasConstraintName("REL_UserWorkspace_Workspace");
  766. });
  767. modelBuilder.Entity<Workspace>(entity =>
  768. {
  769. entity.ToTable("Workspace");
  770. entity.HasComment("Main workspace root structure holds information about working space (set of documents) and their business plan");
  771. entity.Property(e => e.Id).HasComment("Workspace primary key");
  772. entity.Property(e => e.Apikey)
  773. .HasColumnName("APIKey")
  774. .HasDefaultValueSql("(newid())")
  775. .HasComment("API Key for access to workspace via B2B interface");
  776. entity.Property(e => e.Apipassword)
  777. .IsRequired()
  778. .HasMaxLength(50)
  779. .HasColumnName("APIPassword")
  780. .HasComment("API Key Password for access to workspace via B2B interface");
  781. entity.Property(e => e.BillingInfoId).HasComment("Reference to current billing info record");
  782. entity.Property(e => e.BillingPlanId).HasComment("Reference to current billing plan record");
  783. entity.Property(e => e.Created)
  784. .HasColumnType("datetime")
  785. .HasDefaultValueSql("(getdate())")
  786. .HasComment("Timestamp when workspace was created");
  787. entity.Property(e => e.CreatedByUserId).HasComment("Reference to user who created workspace");
  788. entity.Property(e => e.IsGold).HasComment("Define if workspace is GOLD mode (has custom billing plan)");
  789. entity.Property(e => e.Modified)
  790. .HasColumnType("datetime")
  791. .HasComment("Timestamp when workspace was modified");
  792. entity.Property(e => e.ModifiedByUserId).HasComment("Reference to user who updated workspace");
  793. entity.Property(e => e.Name)
  794. .IsRequired()
  795. .HasMaxLength(200)
  796. .HasComment("Workspace name");
  797. entity.HasOne(d => d.BillingInfo)
  798. .WithMany(p => p.Workspaces)
  799. .HasForeignKey(d => d.BillingInfoId)
  800. .OnDelete(DeleteBehavior.ClientSetNull)
  801. .HasConstraintName("REL_Workspace_BillingInfo");
  802. entity.HasOne(d => d.CreatedByUser)
  803. .WithMany(p => p.WorkspaceCreatedByUsers)
  804. .HasForeignKey(d => d.CreatedByUserId)
  805. .OnDelete(DeleteBehavior.ClientSetNull)
  806. .HasConstraintName("REL_Workspace_User_Created");
  807. entity.HasOne(d => d.ModifiedByUser)
  808. .WithMany(p => p.WorkspaceModifiedByUsers)
  809. .HasForeignKey(d => d.ModifiedByUserId)
  810. .HasConstraintName("REL_Workspace_User_Modified");
  811. });
  812. modelBuilder.Entity<WorkspaceBilling>(entity =>
  813. {
  814. entity.HasNoKey();
  815. entity.ToTable("WorkspaceBilling");
  816. entity.HasComment("Deffines current state of billing plan for workspace");
  817. entity.Property(e => e.BillingPlanId).HasComment("Reference to billing plan");
  818. entity.Property(e => e.Created)
  819. .HasColumnType("datetime")
  820. .HasDefaultValueSql("(getdate())")
  821. .HasComment("Timestamp when billing was created");
  822. entity.Property(e => e.CustomPstcreditsPerItem)
  823. .HasColumnName("CustomPSTCreditsPerItem")
  824. .HasComment("Custom Preset Override - single item credit cost");
  825. entity.Property(e => e.CustomPstinitialCredits)
  826. .HasColumnName("CustomPSTInitialCredits")
  827. .HasComment("Custom Preset Override - initial credit amount");
  828. entity.Property(e => e.CustomPstprocessProfile)
  829. .HasMaxLength(5)
  830. .IsUnicode(false)
  831. .HasColumnName("CustomPSTProcessProfile")
  832. .HasComment("Custom Preset Override - processing profile code");
  833. entity.Property(e => e.CustomPstquality)
  834. .HasColumnName("CustomPSTQuality")
  835. .HasComment("Custom Preset Override - process quality 0 = lowest");
  836. entity.Property(e => e.CustomPsttest)
  837. .HasColumnName("CustomPSTTest")
  838. .HasComment("Custom Preset Override - testing mode");
  839. entity.Property(e => e.CustomPstwatermark)
  840. .HasColumnName("CustomPSTWatermark")
  841. .HasComment("Custom Preset Override - watermarked");
  842. entity.Property(e => e.Modified)
  843. .HasColumnType("datetime")
  844. .HasComment("Timestamp when billing was modified");
  845. entity.Property(e => e.ValueDate)
  846. .HasColumnType("datetime")
  847. .HasComment("DateTime value of billing plan spending. Depends on BillingPlan");
  848. entity.Property(e => e.ValueNumber)
  849. .HasColumnType("decimal(16, 4)")
  850. .HasComment("Numeric value of billing plan spending. Depends on BillingPlan.");
  851. entity.Property(e => e.WorkspaceId).HasComment("Reference to owning workspace");
  852. entity.HasOne(d => d.BillingPlan)
  853. .WithMany()
  854. .HasForeignKey(d => d.BillingPlanId)
  855. .OnDelete(DeleteBehavior.ClientSetNull)
  856. .HasConstraintName("REL_WorkspaceBilling_BillingPlan");
  857. entity.HasOne(d => d.Workspace)
  858. .WithMany()
  859. .HasForeignKey(d => d.WorkspaceId)
  860. .OnDelete(DeleteBehavior.ClientSetNull)
  861. .HasConstraintName("REL_WorkspaceBilling_Workspace");
  862. });
  863. OnModelCreatingPartial(modelBuilder);
  864. }
  865. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  866. }
  867. }