u
This commit is contained in:
@@ -11,11 +11,11 @@ digraph schema {
|
||||
fontcolor="#1a365d"; margin=14;
|
||||
meta [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>meta</B></FONT></TD></TR><TR><TD PORT="key" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">key</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="value" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">value</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(MAX)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
customergroup [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in1" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="2" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>customergroup</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="company_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>company_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="name" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">name</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
company [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in1" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in2" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="3" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>company</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="default_language_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>default_language_id</B>?</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="root_category_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>root_category_id</B>?</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="name" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">name</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
numbers [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>numbers</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="company_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>company_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="type" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">type</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(100)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="prefix" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">prefix</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(50)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="padding" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">padding</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="next" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">next</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
entity [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>entity</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="customergroup_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>customergroup_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="firstname" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">firstname</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="lastname" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">lastname</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
company [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in1" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in2" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in3" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="4" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>company</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="default_language_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>default_language_id</B>?</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="root_category_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>root_category_id</B>?</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="name" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">name</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(255)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
companyuser [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>companyuser</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="company_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>company_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="google_auth_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>google_auth_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
google_auth [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="1" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>google_auth</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="email" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">email</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(320)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="created_at" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">created_at</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">DATETIME2</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
google_auth [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="1" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>google_auth</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="selected_company" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>selected_company</B>?</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="email" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">email</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(320)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="created_at" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">created_at</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">DATETIME2</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
}
|
||||
subgraph cluster_i18n {
|
||||
label="Localization"; labeljust="l"; fontsize=15;
|
||||
@@ -47,8 +47,8 @@ digraph schema {
|
||||
fontcolor="#1a365d"; margin=14;
|
||||
categorypic [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>categorypic</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="category_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>category_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="pic_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>pic_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="sort" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">sort</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
articlepic [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>articlepic</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="article_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>article_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="pic_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>pic_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="sort" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">sort</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
brandpic [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>brandpic</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="brand_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>brand_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="pic_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>pic_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="sort" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">sort</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
pic [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="1" BORDER="1"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD PORT="in0" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in1" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD><TD PORT="in2" BGCOLOR="#bee3f8" BORDER="0" WIDTH="10" HEIGHT="4" CELLPADDING="0"></TD></TR><TR><TD COLSPAN="3" ALIGN="CENTER" CELLPADDING="3"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>pic</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="w" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">w</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="h" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">h</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="size" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">size</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">BIGINT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="hash" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">hash</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(64)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="thumbw" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">thumbw</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="thumbh" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">thumbh</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="thumbhash" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">thumbhash</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(64)</FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="source" COLSPAN="2" BGCOLOR="#ffffff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">source</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">NVARCHAR(MAX)</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
brandpic [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8" ALIGN="CENTER" CELLPADDING="4" BORDER="1"><FONT COLOR="#1a365d" POINT-SIZE="12"><B>brandpic</B></FONT></TD></TR><TR><TD PORT="id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>PK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="brand_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>brand_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="pic_id" COLSPAN="2" BGCOLOR="#ebf8ff" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748"><B>pic_id</B></FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT <B>FK</B></FONT></TD></TR></TABLE></TD></TR><TR><TD PORT="sort" COLSPAN="2" BGCOLOR="#f7fafc" BORDER="1" CELLPADDING="0"><TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" FIXEDSIZE="FALSE"><TR><TD ALIGN="LEFT" CELLPADDING="4"><FONT COLOR="#2d3748">sort</FONT></TD><TD ALIGN="RIGHT" CELLPADDING="4"><FONT COLOR="#718096" POINT-SIZE="9">INT</FONT></TD></TR></TABLE></TD></TR></TABLE>>];
|
||||
}
|
||||
subgraph cluster_commerce {
|
||||
label="Pricing & Documents"; labeljust="l"; fontsize=15;
|
||||
@@ -68,43 +68,44 @@ digraph schema {
|
||||
|
||||
__legend [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" COLOR="#a0aec0" BGCOLOR="#ffffff"><TR><TD COLSPAN="2" BGCOLOR="#bee3f8"><FONT COLOR="#1a365d" POINT-SIZE="11"><B>Legend</B></FONT></TD></TR><TR><TD ALIGN="LEFT"><FONT COLOR="#2d3748"><B>PK</B></FONT></TD><TD ALIGN="LEFT"><FONT COLOR="#2d3748" POINT-SIZE="9">primary key</FONT></TD></TR><TR><TD ALIGN="LEFT"><FONT COLOR="#2d3748"><B>FK</B></FONT></TD><TD ALIGN="LEFT"><FONT COLOR="#2d3748" POINT-SIZE="9">foreign key</FONT></TD></TR><TR><TD ALIGN="LEFT"><FONT COLOR="#2d3748"><B>?</B></FONT></TD><TD ALIGN="LEFT"><FONT COLOR="#2d3748" POINT-SIZE="9">nullable column</FONT></TD></TR><TR><TD ALIGN="LEFT"><FONT COLOR="#718096">—</FONT></TD><TD ALIGN="LEFT"><FONT COLOR="#2d3748" POINT-SIZE="9">FOREIGN KEY constraint</FONT></TD></TR><TR><TD ALIGN="LEFT"><FONT COLOR="#718096">- -</FONT></TD><TD ALIGN="LEFT"><FONT COLOR="#2d3748" POINT-SIZE="9">naming convention only, no constraint</FONT></TD></TR></TABLE>>];
|
||||
|
||||
category:parent_id:e -> category:in3:n [color="#c53030", fontcolor="#c53030", tooltip="FK_category_parent"];
|
||||
company:root_category_id:e -> category:in0:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_company_root_category"];
|
||||
company:default_language_id:e -> language:in0:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_company_default_language"];
|
||||
customergroup:company_id:se -> company:in0:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_customergroup_company"];
|
||||
entity:customergroup_id:sw -> customergroup:in0:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_entity_customergroup"];
|
||||
unittext:unit_id:se -> unit:in0:n [color="#c05621", fontcolor="#c05621", tooltip="FK_unittext_unit"];
|
||||
unittext:language_id:se -> language:in1:n [color="#319795", fontcolor="#319795", tooltip="FK_unittext_language"];
|
||||
article:unit_id:w -> unit:in1:n [color="#97266d", fontcolor="#97266d", tooltip="FK_article_unit"];
|
||||
article:brand_id:se -> brand:in0:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_article_brand"];
|
||||
article:articlelist_id:se -> articlelist:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_article_articlelist"];
|
||||
article:optionslist_id:se -> optionslist:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_article_optionslist"];
|
||||
article:fatherarticle_id:e -> article:in3:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_article_fatherarticle"];
|
||||
articlehistory:article_id:se -> article:in2:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_articlehistory_article"];
|
||||
articleean:article_id:sw -> article:in4:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_articleean_article"];
|
||||
articlepic:article_id:w -> article:in9:n [color="#22543d", fontcolor="#22543d", tooltip="FK_articlepic_article"];
|
||||
articlepic:pic_id:se -> pic:in1:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_articlepic_pic"];
|
||||
brandpic:brand_id:w -> brand:in1:n [color="#702459", fontcolor="#702459", tooltip="FK_brandpic_brand"];
|
||||
brandpic:pic_id:se -> pic:in2:n [color="#744210", fontcolor="#744210", tooltip="FK_brandpic_pic"];
|
||||
articlelistarticle:articlelist_id:sw -> articlelist:in1:n [color="#285e61", fontcolor="#285e61", tooltip="FK_articlelistarticle_articlelist"];
|
||||
articlelistarticle:article_id:sw -> article:in5:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_articlelistarticle_article"];
|
||||
optionslistarticle:optionslist_id:sw -> optionslist:in1:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_optionslistarticle_optionslist"];
|
||||
optionslistarticle:article_id:sw -> article:in6:n [color="#38a169", fontcolor="#38a169", tooltip="FK_optionslistarticle_article"];
|
||||
categoryarticle:category_id:sw -> category:in2:n [color="#3182ce", fontcolor="#3182ce", tooltip="FK_categoryarticle_category"];
|
||||
categoryarticle:article_id:se -> article:in1:n [color="#805ad5", fontcolor="#805ad5", tooltip="FK_categoryarticle_article"];
|
||||
categorypic:category_id:w -> category:in4:n [color="#c53030", fontcolor="#c53030", tooltip="FK_categorypic_category"];
|
||||
categorypic:pic_id:se -> pic:in0:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_categorypic_pic"];
|
||||
categorytext:category_id:se -> category:in1:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_categorytext_category"];
|
||||
categorytext:language_id:sw -> language:in3:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_categorytext_language"];
|
||||
articletext:article_id:e -> article:in0:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_articletext_article"];
|
||||
articletext:language_id:sw -> language:in2:n [color="#c05621", fontcolor="#c05621", tooltip="FK_articletext_language"];
|
||||
price:tax_id:se -> tax:in0:n [color="#319795", fontcolor="#319795", tooltip="FK_price_tax"];
|
||||
price:article_id:sw -> article:in7:n [color="#97266d", fontcolor="#97266d", tooltip="FK_price_article"];
|
||||
price:customergroup_id:w -> customergroup:in1:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_price_customergroup"];
|
||||
manifestarticle:manifest_id:sw -> manifest:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_manifestarticle_manifest"];
|
||||
manifestarticle:article_id:w -> article:in8:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_manifestarticle_article"];
|
||||
manifestarticle:tax_id:se -> tax:in1:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_manifestarticle_tax"];
|
||||
numbers:company_id:sw -> company:in1:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_numbers_company"];
|
||||
companyuser:google_auth_id:se -> google_auth:in0:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_companyuser_google_auth"];
|
||||
companyuser:company_id:sw -> company:in2:n [color="#22543d", fontcolor="#22543d", tooltip="FK_companyuser_company"];
|
||||
google_auth:selected_company:sw -> company:in3:n [color="#c53030", fontcolor="#c53030", tooltip="FK_google_auth_selected_company"];
|
||||
category:parent_id:e -> category:in3:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_category_parent"];
|
||||
company:root_category_id:e -> category:in0:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_company_root_category"];
|
||||
company:default_language_id:e -> language:in0:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_company_default_language"];
|
||||
customergroup:company_id:se -> company:in0:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_customergroup_company"];
|
||||
entity:customergroup_id:sw -> customergroup:in0:n [color="#c05621", fontcolor="#c05621", tooltip="FK_entity_customergroup"];
|
||||
unittext:unit_id:e -> unit:in0:n [color="#319795", fontcolor="#319795", tooltip="FK_unittext_unit"];
|
||||
unittext:language_id:se -> language:in1:n [color="#97266d", fontcolor="#97266d", tooltip="FK_unittext_language"];
|
||||
article:unit_id:w -> unit:in1:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_article_unit"];
|
||||
article:brand_id:se -> brand:in0:n [color="#276749", fontcolor="#276749", tooltip="FK_article_brand"];
|
||||
article:articlelist_id:se -> articlelist:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_article_articlelist"];
|
||||
article:optionslist_id:se -> optionslist:in0:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_article_optionslist"];
|
||||
article:fatherarticle_id:e -> article:in3:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_article_fatherarticle"];
|
||||
articlehistory:article_id:se -> article:in2:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_articlehistory_article"];
|
||||
articleean:article_id:sw -> article:in4:n [color="#22543d", fontcolor="#22543d", tooltip="FK_articleean_article"];
|
||||
articlepic:article_id:w -> article:in9:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_articlepic_article"];
|
||||
articlepic:pic_id:se -> pic:in1:n [color="#702459", fontcolor="#702459", tooltip="FK_articlepic_pic"];
|
||||
brandpic:brand_id:w -> brand:in1:n [color="#744210", fontcolor="#744210", tooltip="FK_brandpic_brand"];
|
||||
brandpic:pic_id:sw -> pic:in2:n [color="#285e61", fontcolor="#285e61", tooltip="FK_brandpic_pic"];
|
||||
articlelistarticle:articlelist_id:sw -> articlelist:in1:n [color="#d53f8c", fontcolor="#d53f8c", tooltip="FK_articlelistarticle_articlelist"];
|
||||
articlelistarticle:article_id:sw -> article:in5:n [color="#dd6b20", fontcolor="#dd6b20", tooltip="FK_articlelistarticle_article"];
|
||||
optionslistarticle:optionslist_id:sw -> optionslist:in1:n [color="#38a169", fontcolor="#38a169", tooltip="FK_optionslistarticle_optionslist"];
|
||||
optionslistarticle:article_id:sw -> article:in6:n [color="#3182ce", fontcolor="#3182ce", tooltip="FK_optionslistarticle_article"];
|
||||
categoryarticle:category_id:sw -> category:in2:n [color="#805ad5", fontcolor="#805ad5", tooltip="FK_categoryarticle_category"];
|
||||
categoryarticle:article_id:se -> article:in1:n [color="#c53030", fontcolor="#c53030", tooltip="FK_categoryarticle_article"];
|
||||
categorypic:category_id:w -> category:in4:n [color="#2f855a", fontcolor="#2f855a", tooltip="FK_categorypic_category"];
|
||||
categorypic:pic_id:se -> pic:in0:n [color="#2b6cb0", fontcolor="#2b6cb0", tooltip="FK_categorypic_pic"];
|
||||
categorytext:category_id:se -> category:in1:n [color="#b7791f", fontcolor="#b7791f", tooltip="FK_categorytext_category"];
|
||||
categorytext:language_id:sw -> language:in3:n [color="#6b46c1", fontcolor="#6b46c1", tooltip="FK_categorytext_language"];
|
||||
articletext:article_id:e -> article:in0:n [color="#c05621", fontcolor="#c05621", tooltip="FK_articletext_article"];
|
||||
articletext:language_id:sw -> language:in2:n [color="#319795", fontcolor="#319795", tooltip="FK_articletext_language"];
|
||||
price:tax_id:se -> tax:in0:n [color="#97266d", fontcolor="#97266d", tooltip="FK_price_tax"];
|
||||
price:article_id:sw -> article:in7:n [color="#4c51bf", fontcolor="#4c51bf", tooltip="FK_price_article"];
|
||||
price:customergroup_id:w -> customergroup:in1:n [color="#276749", fontcolor="#276749", tooltip="FK_price_customergroup"];
|
||||
manifestarticle:manifest_id:sw -> manifest:in0:n [color="#9c4221", fontcolor="#9c4221", tooltip="FK_manifestarticle_manifest"];
|
||||
manifestarticle:article_id:w -> article:in8:n [color="#0987a0", fontcolor="#0987a0", tooltip="FK_manifestarticle_article"];
|
||||
manifestarticle:tax_id:se -> tax:in1:n [color="#553c9a", fontcolor="#553c9a", tooltip="FK_manifestarticle_tax"];
|
||||
numbers:company_id:se -> company:in1:n [color="#742a2a", fontcolor="#742a2a", tooltip="FK_numbers_company"];
|
||||
companyuser:google_auth_id:se -> google_auth:in0:n [color="#22543d", fontcolor="#22543d", tooltip="FK_companyuser_google_auth"];
|
||||
companyuser:company_id:sw -> company:in2:n [color="#1a365d", fontcolor="#1a365d", tooltip="FK_companyuser_company"];
|
||||
}
|
||||
1776
schema-graph.svg
1776
schema-graph.svg
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 130 KiB |
@@ -49,35 +49,93 @@ async function shutdown(pool, code = 0) {
|
||||
process.exit(code);
|
||||
}
|
||||
|
||||
const METHODS = [
|
||||
{
|
||||
value: 'setup.company',
|
||||
label: chalk.cyan('setup company'),
|
||||
hint: 'email + name + lang',
|
||||
const MENU = {
|
||||
setup: {
|
||||
label: chalk.cyan('setup'),
|
||||
hint: 'guided flows',
|
||||
items: [
|
||||
{ value: 'setup.company', label: 'company', hint: 'email + name + lang' },
|
||||
],
|
||||
},
|
||||
{ value: 'company.create', label: 'company.create', hint: '{name} → id' },
|
||||
{ value: 'company.list', label: 'company.list', hint: '→ rows' },
|
||||
{ value: 'company.setDefaultLang', label: 'company.setDefaultLang', hint: 'companyId, langId' },
|
||||
{ value: 'company.setRootCategory', label: 'company.setRootCategory', hint: 'companyId, categoryId' },
|
||||
{ value: 'company.delete', label: 'company.delete', hint: 'companyId' },
|
||||
{ value: 'company.getByCompanyUserId', label: 'company.getByCompanyUserId', hint: 'id → tuple' },
|
||||
{ value: 'lang.create', label: 'lang.create', hint: 'iso639 → id' },
|
||||
{ value: 'lang.list', label: 'lang.list', hint: '→ rows' },
|
||||
{ value: 'lang.delete', label: 'lang.delete', hint: 'id' },
|
||||
{ value: 'category.create', label: 'category.create', hint: '{parent_id, sort} → id' },
|
||||
{ value: 'category.updateParentId', label: 'category.updateParentId', hint: 'id, parentId' },
|
||||
{ value: 'category.delete', label: 'category.delete', hint: 'id' },
|
||||
{ value: 'category.getTree', label: 'category.getTree', hint: 'rootId → rows' },
|
||||
{ value: 'companyuser.add', label: 'companyuser.add', hint: 'companyId, authId → id' },
|
||||
{ value: 'companyuser.delete', label: 'companyuser.delete', hint: 'id' },
|
||||
{ value: 'companyuser.getByEmail', label: 'companyuser.getByEmail', hint: 'email → ids' },
|
||||
{ value: 'google_auth.add', label: 'google_auth.add', hint: 'email → authId' },
|
||||
{ value: 'google_auth.list', label: 'google_auth.list', hint: '→ rows' },
|
||||
{ value: 'google_auth.del', label: 'google_auth.del', hint: 'id' },
|
||||
{ value: 'initialize', label: 'initialize', hint: 'ensure schema (no purge)' },
|
||||
{ value: 'purge', label: chalk.red('purge'), hint: 'drop all · exit' },
|
||||
{ value: 'exit', label: 'exit', hint: 'quit without purge' },
|
||||
];
|
||||
company: {
|
||||
label: 'company',
|
||||
items: [
|
||||
{ value: 'company.create', label: 'create', hint: '{name} → id' },
|
||||
{ value: 'company.list', label: 'list', hint: '→ rows' },
|
||||
{ value: 'company.setDefaultLang', label: 'setDefaultLang', hint: 'companyId, langId' },
|
||||
{ value: 'company.setRootCategory', label: 'setRootCategory', hint: 'companyId, categoryId' },
|
||||
{ value: 'company.delete', label: 'delete', hint: 'companyId' },
|
||||
{ value: 'company.getByCompanyUserId', label: 'getByCompanyUserId', hint: 'id → tuple' },
|
||||
],
|
||||
},
|
||||
lang: {
|
||||
label: 'lang',
|
||||
items: [
|
||||
{ value: 'lang.create', label: 'create', hint: 'iso639 → id' },
|
||||
{ value: 'lang.list', label: 'list', hint: '→ rows' },
|
||||
{ value: 'lang.delete', label: 'delete', hint: 'id' },
|
||||
],
|
||||
},
|
||||
category: {
|
||||
label: 'category',
|
||||
items: [
|
||||
{ value: 'category.create', label: 'create', hint: '{parent_id, sort} → id' },
|
||||
{ value: 'category.updateParentId', label: 'updateParentId', hint: 'id, parentId' },
|
||||
{ value: 'category.delete', label: 'delete', hint: 'id' },
|
||||
{ value: 'category.getTree', label: 'getTree', hint: 'rootId → rows' },
|
||||
],
|
||||
},
|
||||
companyuser: {
|
||||
label: 'companyuser',
|
||||
items: [
|
||||
{ value: 'companyuser.add', label: 'add', hint: 'companyId, authId → id' },
|
||||
{ value: 'companyuser.delete', label: 'delete', hint: 'id' },
|
||||
{ value: 'companyuser.getByEmail', label: 'getByEmail', hint: 'email → ids' },
|
||||
],
|
||||
},
|
||||
google_auth: {
|
||||
label: 'google_auth',
|
||||
items: [
|
||||
{ value: 'google_auth.add', label: 'add', hint: 'email → authId' },
|
||||
{ value: 'google_auth.list', label: 'list', hint: '→ rows' },
|
||||
{ value: 'google_auth.del', label: 'del', hint: 'id' },
|
||||
],
|
||||
},
|
||||
schema: {
|
||||
label: 'schema',
|
||||
items: [
|
||||
{ value: 'initialize', label: 'initialize', hint: 'ensure schema (no purge)' },
|
||||
{ value: 'purge', label: chalk.red('purge'), hint: 'drop all · exit' },
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
async function pickAction() {
|
||||
const group = await p.select({
|
||||
message: 'Group',
|
||||
options: [
|
||||
...Object.entries(MENU).map(([value, group]) => ({
|
||||
value,
|
||||
label: group.label,
|
||||
hint: group.hint,
|
||||
})),
|
||||
{ value: 'exit', label: 'exit', hint: 'quit without purge' },
|
||||
],
|
||||
});
|
||||
|
||||
if (p.isCancel(group) || group === 'exit') return 'exit';
|
||||
|
||||
const action = await p.select({
|
||||
message: MENU[group].label,
|
||||
options: [
|
||||
...MENU[group].items,
|
||||
{ value: 'back', label: chalk.dim('← back') },
|
||||
],
|
||||
});
|
||||
|
||||
if (p.isCancel(action) || action === 'back') return null;
|
||||
return action;
|
||||
}
|
||||
|
||||
async function runMethod(client, action) {
|
||||
switch (action) {
|
||||
@@ -308,16 +366,15 @@ async function main() {
|
||||
);
|
||||
|
||||
while (true) {
|
||||
const action = await p.select({
|
||||
message: 'API method',
|
||||
options: METHODS,
|
||||
});
|
||||
const action = await pickAction();
|
||||
|
||||
if (p.isCancel(action) || action === 'exit') {
|
||||
if (action === 'exit') {
|
||||
p.outro(chalk.dim('Bye'));
|
||||
await shutdown(pool, 0);
|
||||
}
|
||||
|
||||
if (action == null) continue;
|
||||
|
||||
if (action === 'purge') {
|
||||
const confirm1 = await p.confirm({
|
||||
message: chalk.red('Drop ALL tables?'),
|
||||
|
||||
@@ -22,7 +22,9 @@ BEGIN
|
||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||
email NVARCHAR(320) NOT NULL,
|
||||
created_at DATETIME2 NOT NULL CONSTRAINT DF_google_auth_created_at DEFAULT SYSUTCDATETIME(),
|
||||
CONSTRAINT UQ_google_auth_email UNIQUE (email)
|
||||
selected_company INT NULL,
|
||||
CONSTRAINT UQ_google_auth_email UNIQUE (email),
|
||||
CONSTRAINT FK_google_auth_selected_company FOREIGN KEY (selected_company) REFERENCES company(id) ON DELETE SET NULL
|
||||
);
|
||||
END
|
||||
`;
|
||||
@@ -501,12 +503,12 @@ END
|
||||
/** DDL scripts in dependency order for schema init. */
|
||||
export const SCHEMA_SCRIPTS = [
|
||||
INIT_META,
|
||||
INIT_GOOGLE_AUTH,
|
||||
INIT_LANGUAGE,
|
||||
INIT_TAX,
|
||||
INIT_CATEGORY,
|
||||
INIT_PIC,
|
||||
INIT_COMPANY,
|
||||
INIT_GOOGLE_AUTH,
|
||||
INIT_CUSTOMERGROUP,
|
||||
INIT_ENTITY,
|
||||
INIT_UNIT,
|
||||
|
||||
@@ -5,7 +5,7 @@ VALUES (@email)
|
||||
`;
|
||||
|
||||
export const LIST = `
|
||||
SELECT id, email, created_at
|
||||
SELECT id, email, created_at, selected_company
|
||||
FROM google_auth
|
||||
ORDER BY id
|
||||
`;
|
||||
|
||||
@@ -23,12 +23,12 @@ export const TABLES = [
|
||||
'unit',
|
||||
'entity',
|
||||
'customergroup',
|
||||
'google_auth',
|
||||
'company',
|
||||
'pic',
|
||||
'category',
|
||||
'tax',
|
||||
'language',
|
||||
'google_auth',
|
||||
'meta',
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user