activefacts-examples 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +21 -0
- data/README.md +22 -0
- data/Rakefile +6 -0
- data/activefacts-examples.gemspec +26 -0
- data/cql/Address.cql +44 -0
- data/cql/Astronomy.cql +35 -0
- data/cql/Blog.cql +54 -0
- data/cql/CinemaBookings.cql +64 -0
- data/cql/CinemaTickets.cql +127 -0
- data/cql/CompanyDirectorEmployee.cql +56 -0
- data/cql/Death.cql +17 -0
- data/cql/Diplomacy.cql +48 -0
- data/cql/Genealogy.cql +98 -0
- data/cql/Health.cql +78 -0
- data/cql/Insurance.cql +320 -0
- data/cql/Marriage.cql +18 -0
- data/cql/Metamodel.cql +567 -0
- data/cql/Monogamy.cql +24 -0
- data/cql/MultiInheritance.cql +22 -0
- data/cql/MultipleSubtyping.cql +30 -0
- data/cql/NonRoleId.cql +14 -0
- data/cql/OddIdentifier.cql +18 -0
- data/cql/OilSupply.cql +53 -0
- data/cql/OneRoleNesting.cql +38 -0
- data/cql/OneToOnes.cql +17 -0
- data/cql/Orienteering.cql +111 -0
- data/cql/PartyModel.cql +38 -0
- data/cql/PersonPlaysGame.cql +18 -0
- data/cql/RedundantDependency.cql +34 -0
- data/cql/SchoolActivities.cql +33 -0
- data/cql/SeparateSubtype.cql +30 -0
- data/cql/ServiceDirector.cql +276 -0
- data/cql/SimplestUnary.cql +12 -0
- data/cql/Supervision.cql +34 -0
- data/cql/VenueSeating.cql +45 -0
- data/cql/WaiterTips.cql +33 -0
- data/cql/Warehousing.cql +101 -0
- data/cql/WindowInRoomInBldg.cql +28 -0
- data/cql/unit.cql +474 -0
- data/diagrams/json/Address.json +41 -0
- data/diagrams/json/Astronomy.json +31 -0
- data/diagrams/json/Blog.json +46 -0
- data/diagrams/json/CinemaBookings.json +53 -0
- data/diagrams/json/CinemaTickets.json +101 -0
- data/diagrams/json/CompanyDirectorEmployee.json +44 -0
- data/diagrams/json/Death.json +20 -0
- data/diagrams/json/Diplomacy.json +34 -0
- data/diagrams/json/Genealogy.json +78 -0
- data/diagrams/json/Insurance.json +259 -0
- data/diagrams/json/Marriage.json +21 -0
- data/diagrams/json/Metamodel.json +318 -0
- data/diagrams/json/Monogamy.json +22 -0
- data/diagrams/json/MultiInheritance.json +25 -0
- data/diagrams/json/MultipleSubtyping.json +22 -0
- data/diagrams/json/OilSupply.json +49 -0
- data/diagrams/json/OneRoleNesting.json +37 -0
- data/diagrams/json/Orienteering.json +94 -0
- data/diagrams/json/PersonPlaysGame.json +22 -0
- data/diagrams/json/RedundantDependency.json +33 -0
- data/diagrams/json/SchoolActivities.json +28 -0
- data/diagrams/json/SeparateSubtype.json +29 -0
- data/diagrams/json/SimplestUnary.json +15 -0
- data/diagrams/json/Supervision.json +27 -0
- data/diagrams/json/VenueSeating.json +40 -0
- data/diagrams/json/WaiterTips.json +29 -0
- data/diagrams/json/Warehousing.json +86 -0
- data/diagrams/json/WindowInRoomInBldg.json +31 -0
- data/images/Address.SQL.png +0 -0
- data/images/Address.png +0 -0
- data/images/Blog.png +0 -0
- data/images/CinemaBookings.png +0 -0
- data/images/CinemaTickets.png +0 -0
- data/images/CompanyDirectorEmployee.png +0 -0
- data/images/Death.png +0 -0
- data/images/Diplomacy.png +0 -0
- data/images/DumpMetamodel.bat +2 -0
- data/images/Genealogy.png +0 -0
- data/images/Insurance/Claim.png +0 -0
- data/images/Insurance/Insurance.png +0 -0
- data/images/Insurance/Person.png +0 -0
- data/images/Insurance/Policy.png +0 -0
- data/images/Insurance/Related.png +0 -0
- data/images/Insurance/VehicleIncident.png +0 -0
- data/images/Marriage.png +0 -0
- data/images/Metamodel/Concepts.png +0 -0
- data/images/Metamodel/Constraints.png +0 -0
- data/images/Metamodel/ContextNote.png +0 -0
- data/images/Metamodel/Diagrams.png +0 -0
- data/images/Metamodel/Language.png +0 -0
- data/images/Metamodel/Legacy.png +0 -0
- data/images/Metamodel/Objects.png +0 -0
- data/images/Metamodel/Populations.png +0 -0
- data/images/Metamodel/Query.png +0 -0
- data/images/Metamodel/Units.png +0 -0
- data/images/Metamodel/ValueConstraints.png +0 -0
- data/images/Metamodel/ValueTypes.png +0 -0
- data/images/MetamodelER.bcp +1 -0
- data/images/MetamodelER.pdf +0 -0
- data/images/MultiInheritance.png +0 -0
- data/images/NorthwindER.png +0 -0
- data/images/OilSupply.png +0 -0
- data/images/Orienteering/Administration.png +0 -0
- data/images/Orienteering/Registration.png +0 -0
- data/images/Orienteering/Scoring.png +0 -0
- data/images/PersonPlaysGame.png +0 -0
- data/images/RedundantDependency.png +0 -0
- data/images/SchoolActivities.png +0 -0
- data/images/SeparateSubtype.png +0 -0
- data/images/SimplestUnary.png +0 -0
- data/images/Supervision.png +0 -0
- data/images/VenueSeating.png +0 -0
- data/images/WaiterTips.png +0 -0
- data/images/Warehousing.png +0 -0
- data/images/WindowInRoomInBldg.png +0 -0
- data/metadata/json/Astronomy.json +175 -0
- data/metadata/json/CinemaBookings.json +354 -0
- data/metadata/json/CinemaTickets.json +768 -0
- data/metadata/json/CompanyDirectorEmployee.json +270 -0
- data/metadata/json/Diplomacy.json +186 -0
- data/metadata/json/Metamodel.json +3214 -0
- data/metadata/json/OilSupply.json +411 -0
- data/metadata/json/SeparateSubtype.json +157 -0
- data/metadata/json/Supervision.json +128 -0
- data/metadata/json/VenueSeating.json +209 -0
- data/orm/.gitignore +11 -0
- data/orm/Address.orm +1268 -0
- data/orm/Astronomy.orm +925 -0
- data/orm/Blog.orm +1711 -0
- data/orm/CinemaBookings.orm +1998 -0
- data/orm/CinemaTickets.orm +5060 -0
- data/orm/CompanyDirectorEmployee.orm +2094 -0
- data/orm/Death.orm +386 -0
- data/orm/Diplomacy.orm +1478 -0
- data/orm/ExampleModels2010.csproj +764 -0
- data/orm/ExampleModels2010.sln +16 -0
- data/orm/Genealogy.orm +3209 -0
- data/orm/Health.orm +2407 -0
- data/orm/Insurance.orm +12727 -0
- data/orm/Marriage.orm +493 -0
- data/orm/Metamodel.orm +20998 -0
- data/orm/Monogamy.orm +328 -0
- data/orm/MultiInheritance.orm +537 -0
- data/orm/MultipleSubtyping.orm +347 -0
- data/orm/OilSupply.orm +2533 -0
- data/orm/OneRoleNesting.orm +1237 -0
- data/orm/Orienteering.orm +3976 -0
- data/orm/PersonPlaysGame.orm +426 -0
- data/orm/RedundantDependency.orm +844 -0
- data/orm/SchoolActivities.orm +961 -0
- data/orm/SeparateSubtype.orm +821 -0
- data/orm/SimplestUnary.orm +172 -0
- data/orm/Supervision.orm +734 -0
- data/orm/VenueSeating.orm +1289 -0
- data/orm/WaiterTips.orm +789 -0
- data/orm/Warehousing.orm +3792 -0
- data/orm/WindowInRoomInBldg.orm +772 -0
- data/rails/models/Astronomy.models +17 -0
- data/rails/models/CinemaBookings.models +123 -0
- data/rails/models/CinemaTickets.models +192 -0
- data/rails/models/Diplomacy.models +126 -0
- data/rails/models/Metamodel.models +894 -0
- data/rails/models/OneRoleNesting.models +18 -0
- data/rails/models/SeparateSubtype.models +49 -0
- data/rails/models/VenueSeating.models +70 -0
- data/rails/schema/Astronomy.schema.rb +25 -0
- data/rails/schema/CinemaBookings.schema.rb +78 -0
- data/rails/schema/CinemaTickets.schema.rb +132 -0
- data/rails/schema/Diplomacy.schema.rb +74 -0
- data/rails/schema/Metamodel.schema.rb +538 -0
- data/rails/schema/OneRoleNesting.rb +20 -0
- data/rails/schema/SeparateSubtype.schema.rb +35 -0
- data/rails/schema/VenueSeating.schema.rb +46 -0
- data/rails/schema/Warehousing.schema.rb +145 -0
- data/ruby/Address.rb +68 -0
- data/ruby/Astronomy.rb +55 -0
- data/ruby/Blog.rb +84 -0
- data/ruby/CinemaBookings.rb +109 -0
- data/ruby/CinemaTickets.rb +218 -0
- data/ruby/CompanyDirectorEmployee.rb +73 -0
- data/ruby/Death.rb +26 -0
- data/ruby/Diplomacy.rb +59 -0
- data/ruby/Genealogy.rb +173 -0
- data/ruby/Insurance.rb +562 -0
- data/ruby/Marriage.rb +21 -0
- data/ruby/Metamodel.rb +621 -0
- data/ruby/Monogamy.rb +27 -0
- data/ruby/MultiInheritance.rb +38 -0
- data/ruby/OilSupply.rb +112 -0
- data/ruby/OneRoleNesting.rb +66 -0
- data/ruby/Orienteering.rb +216 -0
- data/ruby/PersonPlaysGame.rb +31 -0
- data/ruby/RedundantDependency.rb +53 -0
- data/ruby/SchoolActivities.rb +49 -0
- data/ruby/SeparateSubtype.rb +46 -0
- data/ruby/SimplestUnary.rb +10 -0
- data/ruby/Supervision.rb +33 -0
- data/ruby/TwoValues.rb +14 -0
- data/ruby/VenueSeating.rb +64 -0
- data/ruby/WaiterTips.rb +49 -0
- data/ruby/Warehousing.rb +167 -0
- data/ruby/WindowInRoomInBldg.rb +45 -0
- data/sql/server/Address.sql +40 -0
- data/sql/server/Astronomy.sql +36 -0
- data/sql/server/Blog.sql +78 -0
- data/sql/server/CinemaBookings.sql +95 -0
- data/sql/server/CinemaTickets.sql +191 -0
- data/sql/server/CompanyDirectorEmployee.sql +104 -0
- data/sql/server/Death.sql +11 -0
- data/sql/server/Diplomacy.sql +66 -0
- data/sql/server/Genealogy.sql +138 -0
- data/sql/server/Health.sql +169 -0
- data/sql/server/Insurance.sql +484 -0
- data/sql/server/Marriage.sql +30 -0
- data/sql/server/Metamodel.sql +1000 -0
- data/sql/server/Monogamy.sql +20 -0
- data/sql/server/MultiInheritance.sql +27 -0
- data/sql/server/OilSupply.sql +105 -0
- data/sql/server/OneRoleNesting.sql +29 -0
- data/sql/server/Orienteering.sql +186 -0
- data/sql/server/PersonPlaysGame.sql +9 -0
- data/sql/server/RedundantDependency.sql +54 -0
- data/sql/server/SchoolActivities.sql +30 -0
- data/sql/server/SeparateSubtype.sql +33 -0
- data/sql/server/SimplestUnary.sql +9 -0
- data/sql/server/Supervision.sql +30 -0
- data/sql/server/VenueSeating.sql +54 -0
- data/sql/server/WaiterTips.sql +31 -0
- data/sql/server/Warehousing.sql +203 -0
- data/sql/server/WindowInRoomInBldg.sql +13 -0
- data/transform/surrogate/Address.absorption +2 -0
- data/transform/surrogate/Blog.absorption +5 -0
- data/transform/surrogate/CinemaBookings.absorption +7 -0
- data/transform/surrogate/CompanyDirectorEmployee.absorption +7 -0
- data/transform/surrogate/Death.absorption +1 -0
- data/transform/surrogate/Diplomacy-revised.absorption +6 -0
- data/transform/surrogate/Diplomacy.absorption +6 -0
- data/transform/surrogate/Genealogy.absorption +8 -0
- data/transform/surrogate/Insurance.absorption +18 -0
- data/transform/surrogate/Marriage.absorption +2 -0
- data/transform/surrogate/Metamodel.absorption +25 -0
- data/transform/surrogate/Monogamy.absorption +1 -0
- data/transform/surrogate/MultiInheritance.absorption +1 -0
- data/transform/surrogate/MultipleSubtyping.absorption +1 -0
- data/transform/surrogate/OilSupply.absorption +8 -0
- data/transform/surrogate/OneRoleNesting.absorption +1 -0
- data/transform/surrogate/Orienteering.absorption +11 -0
- data/transform/surrogate/PersonPlaysGame.absorption +1 -0
- data/transform/surrogate/RedundantDependency.absorption +3 -0
- data/transform/surrogate/SchoolActivities.absorption +3 -0
- data/transform/surrogate/SeparateSubtype.absorption +3 -0
- data/transform/surrogate/SimplestUnary.absorption +1 -0
- data/transform/surrogate/Supervision.absorption +2 -0
- data/transform/surrogate/WaiterTips.absorption +3 -0
- data/transform/surrogate/Warehousing.absorption +12 -0
- data/transform/surrogate/WindowInRoomInBldg.absorption +1 -0
- data/transform/surrogate/unit.absorption +0 -0
- metadata +374 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# schema.rb auto-generated using ActiveFacts for VenueSeating on 2015-07-08
|
3
|
+
#
|
4
|
+
|
5
|
+
ActiveRecord::Base.logger = Logger.new(STDOUT)
|
6
|
+
ActiveRecord::Schema.define(:version => 20150708011603) do
|
7
|
+
enable_extension 'pgcrypto' unless extension_enabled?('pgcrypto')
|
8
|
+
create_table "events", :id => false, :force => true do |t|
|
9
|
+
t.column "event_id", :primary_key, :null => false
|
10
|
+
t.column "venue_id", :integer, :null => false
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
create_table "seats", :id => false, :force => true do |t|
|
15
|
+
t.column "seat_id", :primary_key, :null => false
|
16
|
+
t.column "venue_id", :integer, :null => false
|
17
|
+
t.column "number", :integer, :limit => 16, :null => false
|
18
|
+
t.column "reserve_name", :string, :null => false
|
19
|
+
t.column "row_code", :string, :null => false
|
20
|
+
end
|
21
|
+
|
22
|
+
add_index "seats", ["venue_id", "reserve_name", "row_code", "number"], :name => :index_seats_on_venue_id_reserve_name_row_code_number, :unique => true
|
23
|
+
|
24
|
+
create_table "tickets", :id => false, :force => true do |t|
|
25
|
+
t.column "event_id", :integer, :null => false
|
26
|
+
t.column "seat_id", :integer, :null => false
|
27
|
+
end
|
28
|
+
|
29
|
+
add_index "tickets", ["event_id", "seat_id"], :name => :index_tickets_on_event_id_seat_id, :unique => true
|
30
|
+
|
31
|
+
create_table "venues", :id => false, :force => true do |t|
|
32
|
+
t.column "venue_id", :primary_key, :null => false
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
unless ENV["EXCLUDE_FKS"]
|
37
|
+
add_foreign_key :events, :venues, :column => :venue_id, :primary_key => :venue_id, :on_delete => :cascade
|
38
|
+
add_index :events, [:venue_id], :unique => false, :name => :index_events_on_venue_id
|
39
|
+
add_foreign_key :seats, :venues, :column => :venue_id, :primary_key => :venue_id, :on_delete => :cascade
|
40
|
+
add_index :seats, [:venue_id], :unique => false, :name => :index_seats_on_venue_id
|
41
|
+
add_foreign_key :tickets, :events, :column => :event_id, :primary_key => :event_id, :on_delete => :cascade
|
42
|
+
add_index :tickets, [:event_id], :unique => false, :name => :index_tickets_on_event_id
|
43
|
+
add_foreign_key :tickets, :seats, :column => :seat_id, :primary_key => :seat_id, :on_delete => :cascade
|
44
|
+
add_index :tickets, [:seat_id], :unique => false, :name => :index_tickets_on_seat_id
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
#
|
2
|
+
# schema.rb auto-generated using ActiveFacts for Warehousing on 2015-07-08
|
3
|
+
#
|
4
|
+
|
5
|
+
ActiveRecord::Base.logger = Logger.new(STDOUT)
|
6
|
+
ActiveRecord::Schema.define(:version => 20150708011604) do
|
7
|
+
enable_extension 'pgcrypto' unless extension_enabled?('pgcrypto')
|
8
|
+
create_table "back_order_allocations", :id => false, :force => true do |t|
|
9
|
+
t.column "back_order_allocation_id", :primary_key, :null => false
|
10
|
+
t.column "purchase_order_item_id", :integer, :null => false
|
11
|
+
t.column "sales_order_item_id", :integer, :null => false
|
12
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
13
|
+
end
|
14
|
+
|
15
|
+
add_index "back_order_allocations", ["purchase_order_item_id", "sales_order_item_id"], :name => :index_back_order_allocations_on_purchase_order_item_i__1a63f970, :unique => true
|
16
|
+
|
17
|
+
create_table "bins", :id => false, :force => true do |t|
|
18
|
+
t.column "bin_id", :primary_key, :null => false
|
19
|
+
t.column "product_id", :integer, :null => true
|
20
|
+
t.column "warehouse_id", :integer, :null => true
|
21
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
create_table "dispatch_items", :id => false, :force => true do |t|
|
26
|
+
t.column "dispatch_item_id", :primary_key, :null => false
|
27
|
+
t.column "product_id", :integer, :null => false
|
28
|
+
t.column "sales_order_item_id", :integer, :null => true
|
29
|
+
t.column "transfer_request_id", :integer, :null => true
|
30
|
+
t.column "dispatch_id", :integer, :null => true
|
31
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
create_table "parties", :id => false, :force => true do |t|
|
36
|
+
t.column "party_id", :primary_key, :null => false
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
create_table "products", :id => false, :force => true do |t|
|
41
|
+
t.column "product_id", :primary_key, :null => false
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
create_table "purchase_orders", :id => false, :force => true do |t|
|
46
|
+
t.column "purchase_order_id", :primary_key, :null => false
|
47
|
+
t.column "supplier_id", :integer, :null => false
|
48
|
+
t.column "warehouse_id", :integer, :null => false
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
create_table "purchase_order_items", :id => false, :force => true do |t|
|
53
|
+
t.column "purchase_order_item_id", :primary_key, :null => false
|
54
|
+
t.column "product_id", :integer, :null => false
|
55
|
+
t.column "purchase_order_id", :integer, :null => false
|
56
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
57
|
+
end
|
58
|
+
|
59
|
+
add_index "purchase_order_items", ["purchase_order_id", "product_id"], :name => :index_purchase_order_items_on_purchase_order_id_product_id, :unique => true
|
60
|
+
|
61
|
+
create_table "received_items", :id => false, :force => true do |t|
|
62
|
+
t.column "received_item_id", :primary_key, :null => false
|
63
|
+
t.column "product_id", :integer, :null => false
|
64
|
+
t.column "purchase_order_item_id", :integer, :null => true
|
65
|
+
t.column "transfer_request_id", :integer, :null => true
|
66
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
67
|
+
t.column "receipt_id", :integer, :null => true
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
create_table "sales_orders", :id => false, :force => true do |t|
|
72
|
+
t.column "sales_order_id", :primary_key, :null => false
|
73
|
+
t.column "customer_id", :integer, :null => false
|
74
|
+
t.column "warehouse_id", :integer, :null => false
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
create_table "sales_order_items", :id => false, :force => true do |t|
|
79
|
+
t.column "sales_order_item_id", :primary_key, :null => false
|
80
|
+
t.column "product_id", :integer, :null => false
|
81
|
+
t.column "sales_order_id", :integer, :null => false
|
82
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
83
|
+
end
|
84
|
+
|
85
|
+
add_index "sales_order_items", ["sales_order_id", "product_id"], :name => :index_sales_order_items_on_sales_order_id_product_id, :unique => true
|
86
|
+
|
87
|
+
create_table "transfer_requests", :id => false, :force => true do |t|
|
88
|
+
t.column "transfer_request_id", :primary_key, :null => false
|
89
|
+
t.column "from_warehouse_id", :integer, :null => false
|
90
|
+
t.column "product_id", :integer, :null => false
|
91
|
+
t.column "to_warehouse_id", :integer, :null => false
|
92
|
+
t.column "quantity", :integer, :limit => 32, :null => false
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
create_table "warehouses", :id => false, :force => true do |t|
|
97
|
+
t.column "warehouse_id", :primary_key, :null => false
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
unless ENV["EXCLUDE_FKS"]
|
102
|
+
add_foreign_key :back_order_allocations, :purchase_order_items, :column => :purchase_order_item_id, :primary_key => :purchase_order_item_id, :on_delete => :cascade
|
103
|
+
add_index :back_order_allocations, [:purchase_order_item_id], :unique => false, :name => :index_back_order_allocations_on_purchase_order_item_id
|
104
|
+
add_foreign_key :back_order_allocations, :sales_order_items, :column => :sales_order_item_id, :primary_key => :sales_order_item_id, :on_delete => :cascade
|
105
|
+
add_index :back_order_allocations, [:sales_order_item_id], :unique => false, :name => :index_back_order_allocations_on_sales_order_item_id
|
106
|
+
add_foreign_key :bins, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
107
|
+
add_index :bins, [:product_id], :unique => false, :name => :index_bins_on_product_id
|
108
|
+
add_foreign_key :bins, :warehouses, :column => :warehouse_id, :primary_key => :warehouse_id, :on_delete => :cascade
|
109
|
+
add_index :bins, [:warehouse_id], :unique => false, :name => :index_bins_on_warehouse_id
|
110
|
+
add_foreign_key :dispatch_items, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
111
|
+
add_index :dispatch_items, [:product_id], :unique => false, :name => :index_dispatch_items_on_product_id
|
112
|
+
add_foreign_key :dispatch_items, :sales_order_items, :column => :sales_order_item_id, :primary_key => :sales_order_item_id, :on_delete => :cascade
|
113
|
+
add_index :dispatch_items, [:sales_order_item_id], :unique => false, :name => :index_dispatch_items_on_sales_order_item_id
|
114
|
+
add_foreign_key :dispatch_items, :transfer_requests, :column => :transfer_request_id, :primary_key => :transfer_request_id, :on_delete => :cascade
|
115
|
+
add_index :dispatch_items, [:transfer_request_id], :unique => false, :name => :index_dispatch_items_on_transfer_request_id
|
116
|
+
add_foreign_key :purchase_orders, :parties, :column => :supplier_id, :primary_key => :party_id, :on_delete => :cascade
|
117
|
+
add_index :purchase_orders, [:supplier_id], :unique => false, :name => :index_purchase_orders_on_supplier_id
|
118
|
+
add_foreign_key :purchase_orders, :warehouses, :column => :warehouse_id, :primary_key => :warehouse_id, :on_delete => :cascade
|
119
|
+
add_index :purchase_orders, [:warehouse_id], :unique => false, :name => :index_purchase_orders_on_warehouse_id
|
120
|
+
add_foreign_key :purchase_order_items, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
121
|
+
add_index :purchase_order_items, [:product_id], :unique => false, :name => :index_purchase_order_items_on_product_id
|
122
|
+
add_foreign_key :purchase_order_items, :purchase_orders, :column => :purchase_order_id, :primary_key => :purchase_order_id, :on_delete => :cascade
|
123
|
+
add_index :purchase_order_items, [:purchase_order_id], :unique => false, :name => :index_purchase_order_items_on_purchase_order_id
|
124
|
+
add_foreign_key :received_items, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
125
|
+
add_index :received_items, [:product_id], :unique => false, :name => :index_received_items_on_product_id
|
126
|
+
add_foreign_key :received_items, :purchase_order_items, :column => :purchase_order_item_id, :primary_key => :purchase_order_item_id, :on_delete => :cascade
|
127
|
+
add_index :received_items, [:purchase_order_item_id], :unique => false, :name => :index_received_items_on_purchase_order_item_id
|
128
|
+
add_foreign_key :received_items, :transfer_requests, :column => :transfer_request_id, :primary_key => :transfer_request_id, :on_delete => :cascade
|
129
|
+
add_index :received_items, [:transfer_request_id], :unique => false, :name => :index_received_items_on_transfer_request_id
|
130
|
+
add_foreign_key :sales_orders, :parties, :column => :customer_id, :primary_key => :party_id, :on_delete => :cascade
|
131
|
+
add_index :sales_orders, [:customer_id], :unique => false, :name => :index_sales_orders_on_customer_id
|
132
|
+
add_foreign_key :sales_orders, :warehouses, :column => :warehouse_id, :primary_key => :warehouse_id, :on_delete => :cascade
|
133
|
+
add_index :sales_orders, [:warehouse_id], :unique => false, :name => :index_sales_orders_on_warehouse_id
|
134
|
+
add_foreign_key :sales_order_items, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
135
|
+
add_index :sales_order_items, [:product_id], :unique => false, :name => :index_sales_order_items_on_product_id
|
136
|
+
add_foreign_key :sales_order_items, :sales_orders, :column => :sales_order_id, :primary_key => :sales_order_id, :on_delete => :cascade
|
137
|
+
add_index :sales_order_items, [:sales_order_id], :unique => false, :name => :index_sales_order_items_on_sales_order_id
|
138
|
+
add_foreign_key :transfer_requests, :products, :column => :product_id, :primary_key => :product_id, :on_delete => :cascade
|
139
|
+
add_index :transfer_requests, [:product_id], :unique => false, :name => :index_transfer_requests_on_product_id
|
140
|
+
add_foreign_key :transfer_requests, :warehouses, :column => :from_warehouse_id, :primary_key => :warehouse_id, :on_delete => :cascade
|
141
|
+
add_index :transfer_requests, [:from_warehouse_id], :unique => false, :name => :index_transfer_requests_on_from_warehouse_id
|
142
|
+
add_foreign_key :transfer_requests, :warehouses, :column => :to_warehouse_id, :primary_key => :warehouse_id, :on_delete => :cascade
|
143
|
+
add_index :transfer_requests, [:to_warehouse_id], :unique => false, :name => :index_transfer_requests_on_to_warehouse_id
|
144
|
+
end
|
145
|
+
end
|
data/ruby/Address.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'activefacts/api'
|
2
|
+
|
3
|
+
module ::Address
|
4
|
+
|
5
|
+
class City < String
|
6
|
+
value_type :length => 64
|
7
|
+
end
|
8
|
+
|
9
|
+
class CompanyName < String
|
10
|
+
value_type
|
11
|
+
one_to_one :company # See Company.company_name
|
12
|
+
end
|
13
|
+
|
14
|
+
class FamilyName < String
|
15
|
+
value_type :length => 20
|
16
|
+
one_to_one :family # See Family.family_name
|
17
|
+
end
|
18
|
+
|
19
|
+
class GivenNames < String
|
20
|
+
value_type :length => 20
|
21
|
+
end
|
22
|
+
|
23
|
+
class Number < String
|
24
|
+
value_type :length => 12
|
25
|
+
end
|
26
|
+
|
27
|
+
class Postcode < String
|
28
|
+
value_type
|
29
|
+
end
|
30
|
+
|
31
|
+
class StreetLine < String
|
32
|
+
value_type :length => 64
|
33
|
+
end
|
34
|
+
|
35
|
+
class Company
|
36
|
+
identified_by :company_name
|
37
|
+
has_one :address # See Address.all_company
|
38
|
+
one_to_one :company_name, :mandatory => true # See CompanyName.company
|
39
|
+
end
|
40
|
+
|
41
|
+
class Family
|
42
|
+
identified_by :family_name
|
43
|
+
one_to_one :family_name, :mandatory => true # See FamilyName.family
|
44
|
+
end
|
45
|
+
|
46
|
+
class Person
|
47
|
+
identified_by :family, :given_names
|
48
|
+
has_one :address # See Address.all_person
|
49
|
+
has_one :family, :mandatory => true # See Family.all_person
|
50
|
+
has_one :given_names, :mandatory => true # See GivenNames.all_person
|
51
|
+
end
|
52
|
+
|
53
|
+
class Street
|
54
|
+
identified_by :first_street_line, :second_street_line, :third_street_line
|
55
|
+
has_one :first_street_line, :class => StreetLine, :mandatory => true # See StreetLine.all_street_as_first_street_line
|
56
|
+
has_one :second_street_line, :class => StreetLine # See StreetLine.all_street_as_second_street_line
|
57
|
+
has_one :third_street_line, :class => StreetLine # See StreetLine.all_street_as_third_street_line
|
58
|
+
end
|
59
|
+
|
60
|
+
class Address
|
61
|
+
identified_by :street_number, :street, :city, :postcode
|
62
|
+
has_one :city, :mandatory => true # See City.all_address
|
63
|
+
has_one :postcode # See Postcode.all_address
|
64
|
+
has_one :street, :mandatory => true # See Street.all_address
|
65
|
+
has_one :street_number, :class => Number # See Number.all_address_as_street_number
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
data/ruby/Astronomy.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'activefacts/api'
|
2
|
+
|
3
|
+
module ::Astronomy
|
4
|
+
|
5
|
+
class AstronomicalObjectCode < String
|
6
|
+
value_type :length => 12
|
7
|
+
one_to_one :astronomical_object # See AstronomicalObject.astronomical_object_code
|
8
|
+
end
|
9
|
+
|
10
|
+
class Mass < Real
|
11
|
+
value_type :length => 32
|
12
|
+
end
|
13
|
+
|
14
|
+
class MoonName < String
|
15
|
+
value_type :length => 256
|
16
|
+
one_to_one :moon # See Moon.moon_name
|
17
|
+
end
|
18
|
+
|
19
|
+
class NrDays < Real
|
20
|
+
value_type :length => 32
|
21
|
+
end
|
22
|
+
|
23
|
+
class PlanetName < String
|
24
|
+
value_type :length => 256
|
25
|
+
one_to_one :planet # See Planet.planet_name
|
26
|
+
end
|
27
|
+
|
28
|
+
class AstronomicalObject
|
29
|
+
identified_by :astronomical_object_code
|
30
|
+
one_to_one :astronomical_object_code, :mandatory => true # See AstronomicalObjectCode.astronomical_object
|
31
|
+
maybe :is_in_orbit
|
32
|
+
has_one :mass # See Mass.all_astronomical_object
|
33
|
+
end
|
34
|
+
|
35
|
+
class Moon < AstronomicalObject
|
36
|
+
identified_by :moon_name
|
37
|
+
one_to_one :moon_name, :mandatory => true # See MoonName.moon
|
38
|
+
end
|
39
|
+
|
40
|
+
class Orbit
|
41
|
+
identified_by :astronomical_object
|
42
|
+
one_to_one :astronomical_object, :mandatory => true # See AstronomicalObject.orbit
|
43
|
+
has_one :center, :class => AstronomicalObject, :mandatory => true # See AstronomicalObject.all_orbit_as_center
|
44
|
+
has_one :nr_days # See NrDays.all_orbit
|
45
|
+
end
|
46
|
+
|
47
|
+
class Planet < AstronomicalObject
|
48
|
+
identified_by :planet_name
|
49
|
+
one_to_one :planet_name, :mandatory => true # See PlanetName.planet
|
50
|
+
end
|
51
|
+
|
52
|
+
class Star < AstronomicalObject
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
data/ruby/Blog.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'activefacts/api'
|
2
|
+
|
3
|
+
module ::Blog
|
4
|
+
|
5
|
+
class AuthorId < AutoCounter
|
6
|
+
value_type
|
7
|
+
one_to_one :author # See Author.author_id
|
8
|
+
end
|
9
|
+
|
10
|
+
class CommentId < AutoCounter
|
11
|
+
value_type
|
12
|
+
one_to_one :comment # See Comment.comment_id
|
13
|
+
end
|
14
|
+
|
15
|
+
class Name < String
|
16
|
+
value_type :length => 64
|
17
|
+
one_to_one :author, :counterpart => :author_name # See Author.author_name
|
18
|
+
one_to_one :topic, :counterpart => :topic_name # See Topic.topic_name
|
19
|
+
end
|
20
|
+
|
21
|
+
class Ordinal < UnsignedInteger
|
22
|
+
value_type :length => 32
|
23
|
+
end
|
24
|
+
|
25
|
+
class PostId < AutoCounter
|
26
|
+
value_type
|
27
|
+
one_to_one :post # See Post.post_id
|
28
|
+
end
|
29
|
+
|
30
|
+
class Style < String
|
31
|
+
value_type :length => 20
|
32
|
+
end
|
33
|
+
|
34
|
+
class Text < ::Text
|
35
|
+
value_type
|
36
|
+
end
|
37
|
+
|
38
|
+
class TopicId < AutoCounter
|
39
|
+
value_type
|
40
|
+
one_to_one :topic # See Topic.topic_id
|
41
|
+
end
|
42
|
+
|
43
|
+
class Author
|
44
|
+
identified_by :author_id
|
45
|
+
one_to_one :author_id, :mandatory => true # See AuthorId.author
|
46
|
+
one_to_one :author_name, :class => Name, :mandatory => true # See Name.author_as_author_name
|
47
|
+
end
|
48
|
+
|
49
|
+
class Comment
|
50
|
+
identified_by :comment_id
|
51
|
+
has_one :author, :mandatory => true # See Author.all_comment
|
52
|
+
one_to_one :comment_id, :mandatory => true # See CommentId.comment
|
53
|
+
has_one :content, :mandatory => true # See Content.all_comment
|
54
|
+
has_one :paragraph, :mandatory => true # See Paragraph.all_comment
|
55
|
+
end
|
56
|
+
|
57
|
+
class Content
|
58
|
+
identified_by :style, :text
|
59
|
+
has_one :style # See Style.all_content
|
60
|
+
has_one :text, :mandatory => true # See Text.all_content
|
61
|
+
end
|
62
|
+
|
63
|
+
class Post
|
64
|
+
identified_by :post_id
|
65
|
+
has_one :author, :mandatory => true # See Author.all_post
|
66
|
+
one_to_one :post_id, :mandatory => true # See PostId.post
|
67
|
+
has_one :topic, :mandatory => true # See Topic.all_post
|
68
|
+
end
|
69
|
+
|
70
|
+
class Topic
|
71
|
+
identified_by :topic_id
|
72
|
+
has_one :parent_topic, :class => Topic # See Topic.all_topic_as_parent_topic
|
73
|
+
one_to_one :topic_id, :mandatory => true # See TopicId.topic
|
74
|
+
one_to_one :topic_name, :class => Name, :mandatory => true # See Name.topic_as_topic_name
|
75
|
+
end
|
76
|
+
|
77
|
+
class Paragraph
|
78
|
+
identified_by :post, :ordinal
|
79
|
+
has_one :ordinal, :mandatory => true # See Ordinal.all_paragraph
|
80
|
+
has_one :post, :mandatory => true # See Post.all_paragraph
|
81
|
+
has_one :content, :mandatory => true # See Content.all_paragraph
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'activefacts/api'
|
2
|
+
|
3
|
+
module ::CinemaBookings
|
4
|
+
|
5
|
+
class CinemaID < AutoCounter
|
6
|
+
value_type
|
7
|
+
one_to_one :cinema # See Cinema.cinema_id
|
8
|
+
end
|
9
|
+
|
10
|
+
class DateTimeValue < DateTime
|
11
|
+
value_type
|
12
|
+
one_to_one :date_time # See DateTime.date_time_value
|
13
|
+
end
|
14
|
+
|
15
|
+
class FilmID < AutoCounter
|
16
|
+
value_type
|
17
|
+
one_to_one :film # See Film.film_id
|
18
|
+
end
|
19
|
+
|
20
|
+
class Name < String
|
21
|
+
value_type
|
22
|
+
one_to_one :person, :counterpart => :login_name # See Person.login_name
|
23
|
+
end
|
24
|
+
|
25
|
+
class Number < UnsignedInteger
|
26
|
+
value_type :length => 16
|
27
|
+
restrict 1..Infinity
|
28
|
+
end
|
29
|
+
|
30
|
+
class PersonID < AutoCounter
|
31
|
+
value_type
|
32
|
+
one_to_one :person # See Person.person_id
|
33
|
+
end
|
34
|
+
|
35
|
+
class RowNr < Char
|
36
|
+
value_type :length => 2
|
37
|
+
end
|
38
|
+
|
39
|
+
class SeatNumber < UnsignedInteger
|
40
|
+
value_type :length => 16
|
41
|
+
end
|
42
|
+
|
43
|
+
class SectionName < String
|
44
|
+
value_type
|
45
|
+
one_to_one :section # See Section.section_name
|
46
|
+
end
|
47
|
+
|
48
|
+
class Cinema
|
49
|
+
identified_by :cinema_id
|
50
|
+
one_to_one :cinema_id, :class => CinemaID, :mandatory => true # See CinemaID.cinema
|
51
|
+
end
|
52
|
+
|
53
|
+
class DateTime
|
54
|
+
identified_by :date_time_value
|
55
|
+
one_to_one :date_time_value, :mandatory => true # See DateTimeValue.date_time
|
56
|
+
end
|
57
|
+
|
58
|
+
class Film
|
59
|
+
identified_by :film_id
|
60
|
+
one_to_one :film_id, :class => FilmID, :mandatory => true # See FilmID.film
|
61
|
+
has_one :name # See Name.all_film
|
62
|
+
end
|
63
|
+
|
64
|
+
class Person
|
65
|
+
identified_by :person_id
|
66
|
+
one_to_one :login_name, :class => Name, :mandatory => true # See Name.person_as_login_name
|
67
|
+
one_to_one :person_id, :class => PersonID, :mandatory => true # See PersonID.person
|
68
|
+
end
|
69
|
+
|
70
|
+
class Row
|
71
|
+
identified_by :cinema, :row_nr
|
72
|
+
has_one :cinema, :mandatory => true # See Cinema.all_row
|
73
|
+
has_one :row_nr, :mandatory => true # See RowNr.all_row
|
74
|
+
end
|
75
|
+
|
76
|
+
class Seat
|
77
|
+
identified_by :row, :seat_number
|
78
|
+
has_one :row, :mandatory => true # See Row.all_seat
|
79
|
+
has_one :seat_number, :mandatory => true # See SeatNumber.all_seat
|
80
|
+
has_one :section # See Section.all_seat
|
81
|
+
end
|
82
|
+
|
83
|
+
class Section
|
84
|
+
identified_by :section_name
|
85
|
+
one_to_one :section_name, :mandatory => true # See SectionName.section
|
86
|
+
end
|
87
|
+
|
88
|
+
class Session
|
89
|
+
identified_by :cinema, :date_time
|
90
|
+
has_one :cinema, :mandatory => true # See Cinema.all_session
|
91
|
+
has_one :date_time, :mandatory => true # See DateTime.all_session
|
92
|
+
has_one :film, :mandatory => true # See Film.all_session
|
93
|
+
end
|
94
|
+
|
95
|
+
class Booking
|
96
|
+
identified_by :person, :session
|
97
|
+
has_one :number, :mandatory => true # See Number.all_booking
|
98
|
+
has_one :person, :mandatory => true # See Person.all_booking
|
99
|
+
has_one :session, :mandatory => true # See Session.all_booking
|
100
|
+
maybe :is_confirmed
|
101
|
+
end
|
102
|
+
|
103
|
+
class SeatAllocation
|
104
|
+
identified_by :booking, :allocated_seat
|
105
|
+
has_one :allocated_seat, :class => Seat, :mandatory => true # See Seat.all_seat_allocation_as_allocated_seat
|
106
|
+
has_one :booking, :mandatory => true # See Booking.all_seat_allocation
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|