73 lines
1.5 KiB
Plaintext
73 lines
1.5 KiB
Plaintext
@startuml
|
|
|
|
'!include base.plantuml
|
|
!include status.plantuml
|
|
!include contact.plantuml
|
|
|
|
skinparam linetype polyline
|
|
|
|
|
|
class Country {
|
|
{field} + code\t\tString(2)\t\t<<Unique>>
|
|
{field} + name\t\tString(80)
|
|
{field} + notes\t\tText | None
|
|
+ __repr__()\t\tstr
|
|
}
|
|
|
|
abstract CountryForeignKey {
|
|
country_id\tCountry.id {field}
|
|
+ country\t\tCountry {field}
|
|
}
|
|
|
|
|
|
class LocationCode {
|
|
{field} + code\t\tString(8)\t\t<<Unique>>
|
|
{field} + description\tString(80)
|
|
{field} + notes\t\tText | None
|
|
+ __repr__()\t\tstr
|
|
}
|
|
|
|
abstract LocationCodeForeignKey {
|
|
location_code_id\tLocationCode.id
|
|
+ location_code\t\tLocationCode
|
|
}
|
|
|
|
|
|
class Location {
|
|
{field} + code\t\tString(30)
|
|
{field} + description\tString(80)
|
|
{field} + notes\t\tText | None
|
|
{field} <<Unique>>\n\tlocation_code_id\n\tcode
|
|
+ __repr__()\t\tstr
|
|
}
|
|
|
|
abstract LocationForeignKey {
|
|
location_id\tLocation.id
|
|
+ location\t\tLocation
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Versioned <|-[#blue]- Country
|
|
StatusForeignKey <|-[#blue]- Country
|
|
Country *-- CountryForeignKey
|
|
|
|
|
|
Versioned <|-[#blue]- LocationCode
|
|
StatusForeignKey <|-[#blue]- LocationCode
|
|
LocationCode *-- LocationCodeForeignKey
|
|
CountryForeignKey <|-[#blue]- LocationCode
|
|
ContactForeignKey o.. LocationCode
|
|
|
|
|
|
Versioned <|-[#blue]- Location
|
|
StatusForeignKey <|-[#blue]- Location
|
|
Location *-- LocationForeignKey
|
|
LocationCodeForeignKey <|-[#blue]- Location
|
|
ContactForeignKey o.. Location
|
|
|
|
@enduml
|