doc/model/Data-Model.uxf

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
  <help_text>// fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced

//////////////////////////////////////////////////////////////////////////////////////////////
// Shop Data model
//
//////////////////////////////////////////////////////////////////////////////////////////////
</help_text>
  <zoom_level>6</zoom_level>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>294</x>
      <y>312</y>
      <w>90</w>
      <h>54</h>
    </coordinates>
    <panel_attributes>Pluf_User
--
+id: int
+login: string
+email: string
--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>210</x>
      <y>336</y>
      <w>96</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
contacts</panel_attributes>
    <additional_attributes>140.0;20.0;10.0;20.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>90</x>
      <y>294</y>
      <w>126</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>bg=orange
&lt;&lt;Route&amp;Notification&gt;&gt;
Shop::Contact
--
+id: int
+contact: string
+type: string
+creation_dtime: DateTime
--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>732</x>
      <y>378</y>
      <w>60</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>Bank_Payment</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>480</x>
      <y>264</y>
      <w>126</w>
      <h>186</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Order&gt;&gt;
Shop::Order
--
+id: int
+secure_id: string
+title: string
+full_name: string
+phone: string
+email: string
+province: string
+city: string
+address: string
+point: POINT
+description: string
+manager: string
+state: string
+creation_dtime: DateTime
+modif_dtime: DateTime</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>378</x>
      <y>330</y>
      <w>114</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..1
m2=0..n
customer</panel_attributes>
    <additional_attributes>10.0;20.0;170.0;20.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>330</x>
      <y>174</y>
      <w>48</w>
      <h>150</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
adresses</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;230.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>600</x>
      <y>378</y>
      <w>144</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..1
m2=0..1
payment</panel_attributes>
    <additional_attributes>10.0;20.0;220.0;20.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>612</x>
      <y>702</y>
      <w>126</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Service&gt;&gt;
Shop::Service
--
+properties
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>336</x>
      <y>702</y>
      <w>126</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Product&gt;&gt;
Shop::Product
--
+manuficturer: string
+brand
+model: string
// یه مدل داده‌ای کلید مقدار برای نگهداری سایر خصوصیت‌ها
+properties
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>480</x>
      <y>888</y>
      <w>126</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>// Tax Class
//
// Defines tax class to applay for service and products
// with a rate.
//
&lt;&lt;Tax&gt;&gt;
Shop::TaxClass
--
+title: string
+rate: double
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>534</x>
      <y>444</y>
      <w>36</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;&lt;-
m1=1
m2=0..n
items</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;120.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>558</x>
      <y>780</y>
      <w>132</w>
      <h>120</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
tax class</panel_attributes>
    <additional_attributes>200.0;10.0;10.0;180.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>402</x>
      <y>786</y>
      <w>132</w>
      <h>114</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
tax class</panel_attributes>
    <additional_attributes>10.0;10.0;200.0;170.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>498</x>
      <y>42</y>
      <w>126</w>
      <h>156</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Order&gt;&gt;
Shop::OrderHistory
--
+id: int
+object_id: int
+object_type:string
+subject_id: int
+subject_type: string
+action: string
+state: string
+workflow: string
+description: string
+creation_dtime: DateTime
+modif_dtime: DateTime
--
Responsibilities
-- Order history</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>174</x>
      <y>498</y>
      <w>126</w>
      <h>54</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Order&gt;&gt;
Shop::DeliverType
--

--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>294</x>
      <y>360</y>
      <w>198</w>
      <h>174</h>
    </coordinates>
    <panel_attributes>lt=-
m1=1..1
m2=0..1
deliver type</panel_attributes>
    <additional_attributes>310.0;10.0;10.0;270.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>558</x>
      <y>192</y>
      <w>42</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..1
m2=0..*
history</panel_attributes>
    <additional_attributes>10.0;120.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>6</x>
      <y>1050</y>
      <w>126</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>bg=blue
// از این کلاس به عنوان پایه‌ای برای توصیف موجودیت
// استفاده می‌شود.
&lt;&lt;Util&gt;&gt;
DetailedObject
--
+id: int
+title: string
// یه url برای تصویر ممکن هست که محتوی باشه
+avatar: string
+description: string
+creation_dtime: DateTime
+modif_dtime: DateTime
--
+toString()</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>240</x>
      <y>786</y>
      <w>150</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;100.0;230.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>126</x>
      <y>984</y>
      <w>420</w>
      <h>132</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;200.0;680.0;200.0;680.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>306</x>
      <y>780</y>
      <w>342</w>
      <h>132</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;200.0;550.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>186</x>
      <y>846</y>
      <w>126</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>bg=blue
&lt;&lt;Util&gt;&gt;
Shop::PricedObject
--
+price: int
+off: int
+deleted
--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>72</x>
      <y>894</y>
      <w>126</w>
      <h>168</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;260.0;10.0;10.0;190.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>102</x>
      <y>198</y>
      <w>132</w>
      <h>42</h>
    </coordinates>
    <panel_attributes>bg=orange
این کلاس‌ها multitenant نیستند

multitenant = false</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>738</x>
      <y>96</y>
      <w>126</w>
      <h>114</h>
    </coordinates>
    <panel_attributes>// Extends from DetailedObject
&lt;&lt;Order&gt;&gt;
Shop::Zone
--
+province: string
+city: string
+address: string
// یه ارایه از ارایه‌های دوتایی که نقطه‌هستن
+polygon: POLYGON
+creation_dtime: DateTime
+modif_dtime: DateTime
--
Extends from DetailedObject</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>900</x>
      <y>96</y>
      <w>126</w>
      <h>108</h>
    </coordinates>
    <panel_attributes>// Extends from DetailedObject
&lt;&lt;Order&gt;&gt;
Shop::Agency
--
+province: string
+city: string
+address: string
+point: POINT
+creation_dtime: DateTime
+modif_dtime: DateTime
--
Extends from DetailedObject</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>600</x>
      <y>204</y>
      <w>216</w>
      <h>132</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
zone</panel_attributes>
    <additional_attributes>10.0;190.0;320.0;190.0;320.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>600</x>
      <y>198</y>
      <w>390</w>
      <h>168</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
agency (workshop)</panel_attributes>
    <additional_attributes>10.0;250.0;610.0;250.0;610.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>834</x>
      <y>0</y>
      <w>90</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>Pluf_User
--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>768</x>
      <y>6</y>
      <w>78</w>
      <h>102</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
member</panel_attributes>
    <additional_attributes>10.0;150.0;10.0;10.0;110.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>804</x>
      <y>24</y>
      <w>84</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
owner</panel_attributes>
    <additional_attributes>10.0;120.0;110.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>894</x>
      <y>24</y>
      <w>90</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
owner</panel_attributes>
    <additional_attributes>120.0;120.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>480</x>
      <y>516</y>
      <w>126</w>
      <h>108</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Order&gt;&gt;
Shop::OrderItem
--
+id: int
+title: string
+item_id: string
+item_type: string
+count: int
+price: int
+off: int
+creation_dtime: DateTime
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>336</x>
      <y>990</y>
      <w>96</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Shop&gt;&gt;
Shop::Catrgory
--
+id
+name
+description
+thumbnail
--
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>156</x>
      <y>990</y>
      <w>96</w>
      <h>66</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Shop&gt;&gt;
Tag
--
+id
+name
+description
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>270</x>
      <y>918</y>
      <w>120</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
categories</panel_attributes>
    <additional_attributes>10.0;10.0;180.0;120.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>192</x>
      <y>918</y>
      <w>84</w>
      <h>84</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..n
tags</panel_attributes>
    <additional_attributes>110.0;10.0;10.0;120.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>126</x>
      <y>198</y>
      <w>888</w>
      <h>954</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;1570.0;1460.0;1570.0;1460.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>534</x>
      <y>618</y>
      <w>144</w>
      <h>96</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.
m1=0..n
m2=1
</panel_attributes>
    <additional_attributes>10.0;10.0;220.0;140.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>390</x>
      <y>618</y>
      <w>150</w>
      <h>96</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.
m1=0..n
m2=1
</panel_attributes>
    <additional_attributes>230.0;10.0;10.0;140.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>276</x>
      <y>54</y>
      <w>126</w>
      <h>126</h>
    </coordinates>
    <panel_attributes>bg=orange
&lt;&lt;Route &amp; Notification&gt;&gt;
Shop::Address
--
+id: int
+province: string
+city: string
+address: string
+point: POINT
+creation_dtime: DateTime
+modif_dtime: DateTime
--
Responsibilities
-- User address</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>228</x>
      <y>546</y>
      <w>18</w>
      <h>312</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;500.0;10.0;10.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>126</x>
      <y>204</y>
      <w>720</w>
      <h>930</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;&lt;-</panel_attributes>
    <additional_attributes>10.0;1530.0;1180.0;1530.0;1180.0;10.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>888</x>
      <y>276</y>
      <w>60</w>
      <h>18</h>
    </coordinates>
    <panel_attributes>CMS_Content</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>906</x>
      <y>198</y>
      <w>42</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
content</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;130.0</additional_attributes>
  </element>
  <element>
    <id>UMLNote</id>
    <coordinates>
      <x>0</x>
      <y>750</y>
      <w>156</w>
      <h>54</h>
    </coordinates>
    <panel_attributes>bg=blue
&lt;&lt;Util&gt;&gt;
این کلاس‌ها برای کم کردن حجم مدل
و یا پیاده سازی استفاده می‌شه</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>312</x>
      <y>558</y>
      <w>126</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Product&gt;&gt;
Shop::ProductMetafield
--
+key: string
+value: string
+unit: string
+namespace: string
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>372</x>
      <y>642</y>
      <w>54</w>
      <h>72</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=1
metafields</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
  </element>
  <element>
    <id>UMLClass</id>
    <coordinates>
      <x>636</x>
      <y>552</y>
      <w>126</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>&lt;&lt;Service&gt;&gt;
Shop::ServiceMetafield
--
+key: string
+value: string
+unit: string
+namespace: string
--</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>690</x>
      <y>636</y>
      <w>54</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=1
metafields</panel_attributes>
    <additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
  </element>
  <element>
    <id>Relation</id>
    <coordinates>
      <x>408</x>
      <y>1020</y>
      <w>102</w>
      <h>78</h>
    </coordinates>
    <panel_attributes>lt=-
m1=0..n
m2=0..1
parent</panel_attributes>
    <additional_attributes>40.0;10.0;110.0;10.0;110.0;110.0;10.0;110.0;10.0;80.0</additional_attributes>
  </element>
</diagram>