doc/model/Data-Model.uxf
<?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
<<Route&Notification>>
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><<Order>>
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><<Service>>
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><<Product>>
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.
//
<<Tax>>
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=<<<<-
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><<Order>>
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><<Order>>
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
// از این کلاس به عنوان پایهای برای توصیف موجودیت
// استفاده میشود.
<<Util>>
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=<<<-</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=<<<-</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=<<<-</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
<<Util>>
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=<<<-</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
<<Order>>
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
<<Order>>
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><<Order>>
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><<Shop>>
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><<Shop>>
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=<<<-</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=<<.
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=<<.
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
<<Route & Notification>>
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=<<<-</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=<<<-</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
<<Util>>
این کلاسها برای کم کردن حجم مدل
و یا پیاده سازی استفاده میشه</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><<Product>>
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><<Service>>
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>