uddf 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1629 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "happymapper"
4
+ require "uddf/base/models"
5
+
6
+ module UDDF
7
+ module V323
8
+ module Models
9
+ class Manufacturer
10
+ include HappyMapper
11
+
12
+ tag "manufacturer"
13
+
14
+ attribute :id, String
15
+ has_one :address, Base::Models::Address
16
+ has_one :alias_name, String
17
+ has_one :contact, Base::Models::Contact
18
+ has_one :name, String
19
+ end
20
+
21
+ class Link
22
+ include HappyMapper
23
+
24
+ tag "link"
25
+
26
+ attribute :ref, String
27
+ end
28
+
29
+ class Generator
30
+ include HappyMapper
31
+
32
+ tag "generator"
33
+
34
+ has_one :alias_name, String
35
+ has_one :datetime, DateTime
36
+ has_many :links, Link, tag: "link"
37
+ has_one :name, String
38
+ has_one :type, String
39
+ has_one :version, String
40
+ end
41
+
42
+ class Notes
43
+ include HappyMapper
44
+
45
+ tag "notes"
46
+
47
+ has_many :paras, String, tag: "para"
48
+ has_many :links, Link, tag: "link"
49
+ end
50
+
51
+ class Price
52
+ include HappyMapper
53
+
54
+ tag "price"
55
+
56
+ attribute :currency, String
57
+ attribute :value, Float
58
+ end
59
+
60
+ class Tissue
61
+ include HappyMapper
62
+
63
+ tag "tissue"
64
+
65
+ attribute :gas, String
66
+ attribute :half_life, Float
67
+ attribute :number, Integer
68
+ attribute :a, Float
69
+ attribute :b, Float
70
+ end
71
+
72
+ class VPM
73
+ include HappyMapper
74
+
75
+ tag "vpm"
76
+
77
+ attribute :id, String
78
+ has_one :conservatism, Float
79
+ has_one :gamma, Float
80
+ has_one :gc, Float
81
+ has_one :lambda, Float
82
+ has_one :r0, Float
83
+ has_many :tissues, Tissue, tag: "tissue"
84
+ end
85
+
86
+ class RGBM
87
+ include HappyMapper
88
+
89
+ tag "rgbm"
90
+
91
+ attribute :id, String
92
+ has_many :tissues, Tissue, tag: "tissue"
93
+ end
94
+
95
+ class Buehlmann
96
+ include HappyMapper
97
+
98
+ tag "buehlmann"
99
+
100
+ attribute :id, String
101
+ has_one :gradient_factor_high, Float
102
+ has_one :gradient_factor_low, Float
103
+ has_many :tissues, Tissue, tag: "tissue"
104
+ end
105
+
106
+ class DecoModel
107
+ include HappyMapper
108
+
109
+ tag "decomodel"
110
+
111
+ has_many :buehlmanns, Buehlmann, tag: "buehlmann"
112
+ has_many :rgbms, RGBM, tag: "rbgm"
113
+ has_many :vpms, VPM, tag: "vpm"
114
+ end
115
+
116
+ class Mix
117
+ include HappyMapper
118
+
119
+ tag "mix"
120
+
121
+ attribute :id, String
122
+ has_one :alias_name, String
123
+ has_one :ar, Float
124
+ has_one :equivalent_air_depth, Float
125
+ has_one :h2, Float
126
+ has_one :he, Float
127
+ has_one :maximum_operation_depth, Float
128
+ has_one :maximum_po2, Float
129
+ has_one :n2, Float
130
+ has_one :name, String
131
+ has_one :o2, Float
132
+ has_one :price_per_litre, Price
133
+ end
134
+
135
+ class GasDefinitions
136
+ include HappyMapper
137
+
138
+ tag "gasdefinitions"
139
+
140
+ has_many :mixes, Mix, tag: "mix"
141
+ end
142
+
143
+ class WayAltitude
144
+ include HappyMapper
145
+
146
+ tag "wayaltitude"
147
+
148
+ attribute :way_time, Float
149
+ attribute :value, Float
150
+ end
151
+
152
+ class ExposureToAltitude
153
+ include HappyMapper
154
+
155
+ tag "exposuretoaltitude"
156
+
157
+ has_one :altitude_of_exposure, Float
158
+ has_one :date_of_flight, Date
159
+ has_one :surface_interval_before_altitude_exposure, Float
160
+ has_one :total_length_of_exposure, Float
161
+ has_one :transportation, String
162
+ end
163
+
164
+ class SurfaceIntervalBeforeDive
165
+ include HappyMapper
166
+
167
+ tag "surfaceintervalbeforedive"
168
+
169
+ has_one :exposure_to_altitude, ExposureToAltitude
170
+ has_one :infinity, String
171
+ has_one :passed_time, Float
172
+ has_many :way_altitudes, WayAltitude, tag: "wayaltitude"
173
+ end
174
+
175
+ class SurfaceIntervalAfterDive
176
+ include HappyMapper
177
+
178
+ tag "surfaceintervalafterdive"
179
+
180
+ has_one :exposure_to_altitude, ExposureToAltitude
181
+ has_one :infinity, String
182
+ has_one :passed_time, Float
183
+ has_many :way_altitudes, WayAltitude, tag: "wayaltitude"
184
+ end
185
+
186
+ class TankPressure
187
+ include HappyMapper
188
+
189
+ tag "tankpressure"
190
+
191
+ attribute :ref, String
192
+ attribute :value, Float
193
+ end
194
+
195
+ class SwitchMix
196
+ include HappyMapper
197
+
198
+ tag "switchmix"
199
+
200
+ attribute :ref, String
201
+ end
202
+
203
+ class SetPo2
204
+ include HappyMapper
205
+
206
+ tag "setpo2"
207
+
208
+ attribute :set_by, String
209
+ attribute :value, Float
210
+ end
211
+
212
+ class MeasuredPo2
213
+ include HappyMapper
214
+
215
+ tag "measuredpo2"
216
+
217
+ attribute :ref, String
218
+ attribute :value, Float
219
+ end
220
+
221
+ class GradientFactor
222
+ include HappyMapper
223
+
224
+ tag "gradientfactor"
225
+
226
+ attribute :tissue, Integer
227
+ attribute :value, Float
228
+ end
229
+
230
+ class DiveMode
231
+ include HappyMapper
232
+
233
+ tag "divemode"
234
+
235
+ attribute :type, String
236
+ end
237
+
238
+ class Decostop
239
+ include HappyMapper
240
+
241
+ tag "decostop"
242
+
243
+ attribute :kind, String
244
+ attribute :deco_depth, Float
245
+ attribute :duration, Float
246
+ end
247
+
248
+ class BatteryChargeCondition
249
+ include HappyMapper
250
+
251
+ tag "batterychargecondition"
252
+
253
+ attribute :device_ref, String
254
+ attribute :tank_ref, String
255
+ attribute :value, Float
256
+ end
257
+
258
+ class Alarm
259
+ include HappyMapper
260
+
261
+ tag "alarm"
262
+
263
+ attribute :level, Float
264
+ attribute :tank_ref, String
265
+ attribute :value, String
266
+ end
267
+
268
+ class Waypoint
269
+ include HappyMapper
270
+
271
+ tag "waypoint"
272
+
273
+ has_many :alarms, Alarm, tag: "alarm"
274
+ has_many :battery_charge_conditions, BatteryChargeCondition, tag: "batterychargecondition"
275
+ has_one :calculated_po2, Float
276
+ has_one :cns, Float
277
+ has_many :deco_stops, Decostop, tag: "decostop"
278
+ has_one :depth, Float
279
+ has_one :dive_mode, DiveMode
280
+ has_one :dive_time, Float
281
+ has_one :gradient_factor, GradientFactor
282
+ has_one :heading, Float
283
+ has_many :measured_po2s, MeasuredPo2, tag: "measuredpo2"
284
+ has_one :no_deco_time, Float
285
+ has_one :otu, Float
286
+ has_one :remaining_bottom_time, Float
287
+ has_one :remaining_o2_time, Float
288
+ has_many :set_po2s, SetPo2, tag: "setpo2"
289
+ has_one :switch_mix, SwitchMix
290
+ has_many :tank_pressures, TankPressure, tag: "tankpressure"
291
+ has_one :temperature, Float
292
+ end
293
+
294
+ class Medicine
295
+ include HappyMapper
296
+
297
+ tag "medicine"
298
+
299
+ has_one :alias_name, String
300
+ has_one :name, String
301
+ has_one :notes, Notes
302
+ has_one :periodically_taken, String
303
+ has_one :timespan_before_dive, Float
304
+ end
305
+
306
+ class MedicationBeforeDive
307
+ include HappyMapper
308
+
309
+ tag "medicationbeforedive"
310
+
311
+ has_many :medicines, Medicine, tag: "medicine"
312
+ end
313
+
314
+ class PlannedProfile
315
+ include HappyMapper
316
+
317
+ tag "plannedprofile"
318
+
319
+ attribute :start_dive_mode, String
320
+ attribute :start_mix, String
321
+ has_many :waypoints, Waypoint, tag: "waypoint"
322
+ end
323
+
324
+ class Drink
325
+ include HappyMapper
326
+
327
+ tag "drink"
328
+
329
+ has_one :alias_name, String
330
+ has_one :name, String
331
+ has_one :notes, Notes
332
+ has_one :periodically_taken, String
333
+ has_one :timespan_before_dive, Float
334
+ end
335
+
336
+ class AlcoholBeforeDive
337
+ include HappyMapper
338
+
339
+ tag "alcoholbeforedive"
340
+
341
+ has_many :drinks, Drink, tag: "drink"
342
+ end
343
+
344
+ class InformationBeforeDive
345
+ include HappyMapper
346
+
347
+ tag "informationbeforedive"
348
+
349
+ has_one :air_temperature, Float
350
+ has_one :alcohol_before_dive, AlcoholBeforeDive
351
+ has_one :altitude, Float
352
+ has_one :apparatus, String
353
+ has_one :datetime, DateTime
354
+ has_one :dive_number, Integer
355
+ has_one :dive_number_of_day, Integer
356
+ has_one :internal_dive_number, Integer
357
+ has_many :links, Link, tag: "link"
358
+ has_one :medication_before_dive, MedicationBeforeDive
359
+ has_one :no_suit, String
360
+ has_one :planned_profile, PlannedProfile
361
+ has_one :platform, String
362
+ has_one :price, Price
363
+ has_one :purpose, String
364
+ has_one :state_of_rest_before_dive, String
365
+ has_one :surface_interval_before_dive, SurfaceIntervalBeforeDive
366
+ has_one :surface_pressure, Float
367
+ has_one :trip_membership, String
368
+ end
369
+
370
+ class Rating
371
+ include HappyMapper
372
+
373
+ tag "rating"
374
+
375
+ has_one :datetime, DateTime
376
+ has_one :rating_value, Integer
377
+ end
378
+
379
+ class GlobalAlarmsGiven
380
+ include HappyMapper
381
+
382
+ tag "globalalarmsgiven"
383
+
384
+ has_many :global_alarms, String, tag: "globalalarm"
385
+ end
386
+
387
+ class EquipmentUsed
388
+ include HappyMapper
389
+
390
+ tag "equipmentused"
391
+
392
+ has_one :lead_quantity, Float
393
+ has_many :links, Link, tag: "link"
394
+ end
395
+
396
+ class AnySymptoms
397
+ include HappyMapper
398
+
399
+ tag "anysymptoms"
400
+
401
+ has_one :notes, Notes
402
+ end
403
+
404
+ class Species
405
+ include HappyMapper
406
+
407
+ tag "species"
408
+
409
+ attribute :id, String
410
+ has_one :abundance, "Abundance"
411
+ has_one :age, Integer
412
+ has_one :dominance, String
413
+ has_one :life_stage, String
414
+ has_one :notes, Notes
415
+ has_one :scientific_name, String
416
+ has_one :sex, String
417
+ has_one :size, Float
418
+ has_one :trivial_name, String
419
+ end
420
+
421
+ class Abundance
422
+ include HappyMapper
423
+
424
+ tag "abundance"
425
+
426
+ attribute :quality, String
427
+ attribute :occurrence, String
428
+ attribute :value, Integer
429
+ end
430
+
431
+ class WithSpecies
432
+ include HappyMapper
433
+
434
+ has_many :species, Species, tag: "species"
435
+ end
436
+
437
+ class Invertebrata
438
+ include HappyMapper
439
+
440
+ tag "invertebrata"
441
+
442
+ has_one :ascidiacea, WithSpecies
443
+ has_one :bryozoan, WithSpecies
444
+ has_one :cnidaria, WithSpecies
445
+ has_one :coelenterata, WithSpecies
446
+ has_one :crustacea, WithSpecies
447
+ has_one :ctenophora, WithSpecies
448
+ has_one :echinodermata, WithSpecies
449
+ has_one :invertebrata_various, WithSpecies
450
+ has_one :mollusca, WithSpecies
451
+ has_one :phoronidea, WithSpecies
452
+ has_one :plathelminthes, WithSpecies
453
+ has_one :porifera, WithSpecies
454
+ end
455
+
456
+ class Vertebrata
457
+ include HappyMapper
458
+
459
+ tag "vertebrata"
460
+
461
+ has_one :amphibia, WithSpecies
462
+ has_one :chondrichthyes, WithSpecies
463
+ has_one :mammalia, WithSpecies
464
+ has_one :osteichthyes, WithSpecies
465
+ has_one :reptilia, WithSpecies
466
+ has_one :vertebrata_various, WithSpecies
467
+ end
468
+
469
+ class Fauna
470
+ include HappyMapper
471
+
472
+ tag "fauna"
473
+
474
+ has_one :invertebrata, Invertebrata
475
+ has_one :notes, Notes
476
+ has_one :vertebrata, Vertebrata
477
+ end
478
+
479
+ class Flora
480
+ include HappyMapper
481
+
482
+ tag "flora"
483
+
484
+ has_one :chlorophyceae, WithSpecies
485
+ has_one :flora_various, WithSpecies
486
+ has_one :notes, Notes
487
+ has_one :phaeophyceae, WithSpecies
488
+ has_one :rhodophyceae, WithSpecies
489
+ has_one :spermatophyta, WithSpecies
490
+ end
491
+
492
+ class Observations
493
+ include HappyMapper
494
+
495
+ tag "observations"
496
+
497
+ has_one :fauna, Fauna
498
+ has_one :flora, Flora
499
+ has_one :notes, Notes
500
+ end
501
+
502
+ class InformationAfterDive
503
+ include HappyMapper
504
+
505
+ tag "informationafterdive"
506
+
507
+ has_one :any_symptoms, AnySymptoms
508
+ has_one :average_depth, Float
509
+ has_one :current, String
510
+ has_one :desaturation_time, Float
511
+ has_one :dive_duration, Float
512
+ has_one :dive_plan, String
513
+ has_one :dive_table, String
514
+ has_one :equipment_malfunction, String
515
+ has_one :equipment_used, EquipmentUsed
516
+ has_one :global_alarms_given, GlobalAlarmsGiven
517
+ has_one :greatest_depth, Float
518
+ has_one :highest_po2, Float
519
+ has_one :lowest_temperature, Float
520
+ has_one :no_flight_time, Float
521
+ has_one :notes, Notes
522
+ has_one :observations, Observations
523
+ has_one :pressure_drop, Float
524
+ has_many :problems, String, tag: "problems"
525
+ has_one :program, String
526
+ has_many :ratings, Rating, tag: "rating"
527
+ has_one :surface_interval_after_dive, SurfaceIntervalAfterDive
528
+ has_one :thermal_comfort, String
529
+ has_one :visibility, Float
530
+ has_one :workload, String
531
+ end
532
+
533
+ class Samples
534
+ include HappyMapper
535
+
536
+ tag "samples"
537
+
538
+ has_many :waypoints, Waypoint, tag: "waypoint"
539
+ end
540
+
541
+ class TankData
542
+ include HappyMapper
543
+
544
+ tag "tankdata"
545
+
546
+ attribute :id, String
547
+ has_one :breathing_consumption_volume, Float
548
+ has_many :links, Link, tag: "link"
549
+ has_one :tank_pressure_begin, Float
550
+ has_one :tank_pressure_end, Float
551
+ has_one :tank_volume, Float
552
+ end
553
+
554
+ class Hargikas
555
+ include HappyMapper
556
+
557
+ tag "hargikas"
558
+
559
+ has_one :ambient, Float
560
+ has_many :tissues, Tissue, tag: "tissue"
561
+ has_one :arterial_micro_bubble_level, Integer
562
+ has_one :intrapulmonary_right_left_shunt, Float
563
+ has_one :estimated_skin_cool_level, Integer
564
+ end
565
+
566
+ class ApplicationData
567
+ include HappyMapper
568
+
569
+ tag "applicationdata"
570
+
571
+ has_one :deco_trainer, String
572
+ has_one :hargikas, Hargikas
573
+ end
574
+
575
+ class Dive
576
+ include HappyMapper
577
+
578
+ tag "dive"
579
+
580
+ attribute :id, String
581
+ has_one :information_after_dive, InformationAfterDive
582
+ has_one :information_before_dive, InformationBeforeDive
583
+ has_one :application_data, ApplicationData
584
+ has_one :samples, Samples
585
+ has_many :tank_data, TankData, tag: "tankdata"
586
+ end
587
+
588
+ class RepetitionGroup
589
+ include HappyMapper
590
+
591
+ tag "repetitiongroup"
592
+
593
+ attribute :id, String
594
+ has_many :dives, Dive, tag: "dive"
595
+ end
596
+
597
+ class ProfileData
598
+ include HappyMapper
599
+
600
+ tag "profiledata"
601
+
602
+ has_many :repetition_groups, RepetitionGroup, tag: "repetitiongroup"
603
+ end
604
+
605
+ class Descent
606
+ include HappyMapper
607
+
608
+ tag "descent"
609
+
610
+ has_many :waypoints, Waypoint, tag: "waypoint"
611
+ end
612
+
613
+ class Ascent
614
+ include HappyMapper
615
+
616
+ tag "ascent"
617
+
618
+ has_many :waypoints, Waypoint, tag: "waypoint"
619
+ end
620
+
621
+ class MixChange
622
+ include HappyMapper
623
+
624
+ tag "mixchange"
625
+
626
+ has_one :ascent, Ascent
627
+ has_one :descent, Descent
628
+ end
629
+
630
+ class InputProfile
631
+ include HappyMapper
632
+
633
+ tag "inputprofile"
634
+
635
+ has_many :links, Link, tag: "link"
636
+ has_many :waypoints, Waypoint, tag: "waypoint"
637
+ end
638
+
639
+ class Output
640
+ include HappyMapper
641
+
642
+ tag "output"
643
+
644
+ has_one :lingo, String
645
+ has_one :file_format, String
646
+ has_one :file_name, String
647
+ has_one :headline, String
648
+ has_one :remark, String
649
+ end
650
+
651
+ class Profile
652
+ include HappyMapper
653
+
654
+ tag "profile"
655
+
656
+ has_one :application_data, ApplicationData
657
+ has_one :deco_model, DecoModel
658
+ has_one :deep_stop_time, Float
659
+ has_one :density, Float
660
+ has_one :input_profile, InputProfile
661
+ has_many :links, Link, tag: "link"
662
+ has_one :maximum_ascending_rate, Float
663
+ has_one :mix_change, MixChange
664
+ has_one :output, Output
665
+ has_one :surface_interval_after_dive, SurfaceIntervalAfterDive
666
+ has_one :surface_interval_before_dive, SurfaceIntervalBeforeDive
667
+ has_one :title, String
668
+ end
669
+
670
+ class TableScope
671
+ include HappyMapper
672
+
673
+ tag "tablescope"
674
+
675
+ has_one :altitude, Float
676
+ has_one :bottom_time_maximum, Float
677
+ has_one :bottom_time_minimum, Float
678
+ has_one :bottom_time_step_begin, Float
679
+ has_one :bottom_time_step_end, Float
680
+ has_one :dive_depth_begin, Float
681
+ has_one :dive_depth_end, Float
682
+ has_one :dive_depth_step, Float
683
+ end
684
+
685
+ class Table
686
+ include HappyMapper
687
+
688
+ tag "table"
689
+
690
+ has_one :table_scope, TableScope
691
+ end
692
+
693
+ class CalculateProfile
694
+ include HappyMapper
695
+
696
+ tag "calculateprofile"
697
+
698
+ has_many :profiles, Profile, tag: "profile"
699
+ end
700
+
701
+ class CalculateTable
702
+ include HappyMapper
703
+
704
+ tag "calculatetable"
705
+
706
+ has_many :tables, Table, tag: "table"
707
+ end
708
+
709
+ class BottomTimeTableScope
710
+ include HappyMapper
711
+
712
+ tag "bottomtimetablescope"
713
+
714
+ has_one :breathing_consumption_volume_begin, Float
715
+ has_one :breathing_consumption_volume_end, Float
716
+ has_one :breathing_consumption_volume_step, Float
717
+ has_one :dive_depth_begin, Float
718
+ has_one :dive_depth_end, Float
719
+ has_one :dive_depth_step, Float
720
+ has_one :tank_pressure_begin, Float
721
+ has_one :tank_pressure_reserve, Float
722
+ has_one :tank_volume_begin, Float
723
+ has_one :tank_volume_end, Float
724
+ end
725
+
726
+ class BottomTimeTable
727
+ include HappyMapper
728
+
729
+ tag "bottomtimetable"
730
+
731
+ attribute :id, String
732
+ has_one :application_data, ApplicationData
733
+ has_one :bottom_time_table_scope, BottomTimeTableScope
734
+ has_many :links, Link, tag: "link"
735
+ has_one :output, Output
736
+ has_one :title, String
737
+ end
738
+
739
+ class CalculateBottomTimeTable
740
+ include HappyMapper
741
+
742
+ tag "calculatebottomtimetable"
743
+
744
+ has_many :bottom_time_tables, BottomTimeTable, tag: "bottomtimetable"
745
+ end
746
+
747
+ class TableGeneration
748
+ include HappyMapper
749
+
750
+ tag "tablegeneration"
751
+
752
+ has_one :calculate_bottom_time_table, CalculateBottomTimeTable
753
+ has_one :calculate_profile, CalculateProfile
754
+ has_one :calculate_table, CalculateTable
755
+ end
756
+
757
+ class ImageData
758
+ include HappyMapper
759
+
760
+ tag "imagedata"
761
+
762
+ has_one :aperture, Float
763
+ has_one :datetime, DateTime
764
+ has_one :exposure_compensation, Float
765
+ has_one :film_speed, Integer
766
+ has_one :focal_length, Float
767
+ has_one :focusing_distance, Float
768
+ has_one :metering_method, String
769
+ has_one :shutter_speed, Float
770
+ end
771
+
772
+ class Image
773
+ include HappyMapper
774
+
775
+ tag "image"
776
+
777
+ attribute :id, String
778
+ attribute :height, Integer
779
+ attribute :width, Integer
780
+ attribute :format, String
781
+ has_one :image_data, ImageData
782
+ has_one :object_name, String
783
+ has_one :title, String
784
+ end
785
+
786
+ class Video
787
+ include HappyMapper
788
+
789
+ tag "video"
790
+
791
+ attribute :id, String
792
+ has_one :object_name, String
793
+ has_one :title, String
794
+ end
795
+
796
+ class Audio
797
+ include HappyMapper
798
+
799
+ tag "audio"
800
+
801
+ attribute :id, String
802
+ has_one :object_name, String
803
+ has_one :title, String
804
+ end
805
+
806
+ class MediaData
807
+ include HappyMapper
808
+
809
+ tag "mediadata"
810
+
811
+ has_many :audio_files, Audio, tag: "audio"
812
+ has_many :image_files, Image, tag: "image"
813
+ has_many :video_files, Video, tag: "video"
814
+ end
815
+
816
+ class Maker
817
+ include HappyMapper
818
+
819
+ tag "maker"
820
+
821
+ has_many :manufacturers, Manufacturer, tag: "manufacturer"
822
+ end
823
+
824
+ class PriceDivePackage
825
+ include HappyMapper
826
+
827
+ tag "pricedivepackage"
828
+
829
+ attribute :currency, String
830
+ attribute :no_of_dives, Integer
831
+ attribute :value, Float
832
+ end
833
+
834
+ class RelatedDives
835
+ include HappyMapper
836
+
837
+ tag "relateddives"
838
+
839
+ has_many :links, Link, tag: "link"
840
+ end
841
+
842
+ class ShipDimension
843
+ include HappyMapper
844
+
845
+ tag "shipdimension"
846
+
847
+ has_one :beam, Float
848
+ has_one :displacement, Float
849
+ has_one :draught, Float
850
+ has_one :length, Float
851
+ has_one :tonnage, Float
852
+ end
853
+
854
+ class Vessel
855
+ include HappyMapper
856
+
857
+ tag "vessel"
858
+
859
+ has_one :address, Base::Models::Address
860
+ has_one :alias_name, String
861
+ has_one :contact, Base::Models::Contact
862
+ has_one :marina, String
863
+ has_one :name, String
864
+ has_one :notes, Notes
865
+ has_many :ratings, Rating, tag: "rating"
866
+ has_one :ship_dimension, ShipDimension
867
+ has_one :ship_type, String
868
+ end
869
+
870
+ class Operator
871
+ include HappyMapper
872
+
873
+ tag "operator"
874
+
875
+ has_one :alias_name, String
876
+ has_one :address, Base::Models::Address
877
+ has_one :contact, Base::Models::Contact
878
+ has_one :name, String
879
+ has_one :notes, Notes
880
+ has_many :ratings, Rating, tag: "rating"
881
+ end
882
+
883
+ class DateOfTrip
884
+ include HappyMapper
885
+
886
+ tag "dateoftrip"
887
+
888
+ attribute :start_date, DateTime
889
+ attribute :end_date, DateTime
890
+ end
891
+
892
+ class Accommodation
893
+ include HappyMapper
894
+
895
+ tag "accommodation"
896
+
897
+ has_one :address, Base::Models::Address
898
+ has_one :alias_name, String
899
+ has_one :category, String
900
+ has_one :contact, Base::Models::Contact
901
+ has_one :name, String
902
+ has_one :notes, Notes
903
+ has_many :ratings, Rating, tag: "rating"
904
+ end
905
+
906
+ class Geography
907
+ include HappyMapper
908
+
909
+ tag "geography"
910
+
911
+ has_one :address, Base::Models::Address
912
+ has_one :altitude, Float
913
+ has_one :latitude, Float
914
+ has_one :location, String
915
+ has_one :longitude, Float
916
+ has_one :time_zone, Float
917
+ end
918
+
919
+ class TripPart
920
+ include HappyMapper
921
+
922
+ tag "trippart"
923
+
924
+ attribute :type, String
925
+ has_one :accommodation, Accommodation
926
+ has_one :date_of_trip, DateOfTrip
927
+ has_one :geography, Geography
928
+ has_many :links, Link, tag: "link"
929
+ has_one :name, String
930
+ has_one :notes, Notes
931
+ has_one :operator, Operator
932
+ has_one :price_dive_package, PriceDivePackage
933
+ has_one :price_per_dive, Price
934
+ has_one :related_dives, RelatedDives
935
+ has_one :vessel, Vessel
936
+ end
937
+
938
+ class Trip
939
+ include HappyMapper
940
+
941
+ tag "trip"
942
+
943
+ attribute :id, String
944
+ has_one :alias_name, String
945
+ has_one :name, String
946
+ has_many :ratings, Rating, tag: "rating"
947
+ has_many :trip_parts, TripPart, tag: "trippart"
948
+ end
949
+
950
+ class DiveTrip
951
+ include HappyMapper
952
+
953
+ tag "divetrip"
954
+
955
+ has_many :trips, Trip, tag: "trip"
956
+ end
957
+
958
+ class Ecology
959
+ include HappyMapper
960
+
961
+ tag "ecology"
962
+
963
+ has_one :fauna, Fauna
964
+ has_one :flora, Flora
965
+ end
966
+
967
+ class Built
968
+ include HappyMapper
969
+
970
+ tag "built"
971
+
972
+ has_one :launching_date, Date
973
+ has_one :ship_yard, String
974
+ end
975
+
976
+ class Wreck
977
+ include HappyMapper
978
+
979
+ tag "wreck"
980
+
981
+ has_one :alias_name, String
982
+ has_one :built, Built
983
+ has_one :name, String
984
+ has_one :nationality, String
985
+ has_one :ship_dimension, ShipDimension
986
+ has_one :ship_type, String
987
+ has_one :sunk, Date
988
+ end
989
+
990
+ class Shore
991
+ include HappyMapper
992
+
993
+ tag "shore"
994
+
995
+ attribute :id, String
996
+ has_one :alias_name, String
997
+ has_one :name, String
998
+ has_one :notes, Notes
999
+ end
1000
+
1001
+ class River
1002
+ include HappyMapper
1003
+
1004
+ tag "river"
1005
+
1006
+ attribute :id, String
1007
+ has_one :alias_name, String
1008
+ has_one :name, String
1009
+ has_one :notes, Notes
1010
+ end
1011
+
1012
+ class Lake
1013
+ include HappyMapper
1014
+
1015
+ tag "lake"
1016
+
1017
+ attribute :id, String
1018
+ has_one :alias_name, String
1019
+ has_one :name, String
1020
+ has_one :notes, Notes
1021
+ end
1022
+
1023
+ class Indoor
1024
+ include HappyMapper
1025
+
1026
+ tag "indoor"
1027
+
1028
+ has_one :address, Base::Models::Address
1029
+ has_one :alias_name, String
1030
+ has_one :contact, Base::Models::Contact
1031
+ has_one :name, String
1032
+ has_one :notes, Notes
1033
+ end
1034
+
1035
+ class Cave
1036
+ include HappyMapper
1037
+
1038
+ tag "cave"
1039
+
1040
+ attribute :id, String
1041
+ has_one :alias_name, String
1042
+ has_one :name, String
1043
+ has_one :notes, Notes
1044
+ end
1045
+
1046
+ class SiteData
1047
+ include HappyMapper
1048
+
1049
+ tag "sidedata"
1050
+
1051
+ has_one :area_length, Float
1052
+ has_one :area_width, Float
1053
+ has_one :average_visibility, Float
1054
+ has_one :bottom, String
1055
+ has_one :cave, Cave
1056
+ has_one :density, Float
1057
+ has_one :difficulty, Integer
1058
+ has_one :global_light_intensity, String
1059
+ has_one :indoor, Indoor
1060
+ has_one :maximum_depth, Float
1061
+ has_one :maximum_visibility, Float
1062
+ has_one :minimum_depth, Float
1063
+ has_one :minimum_visibility, Float
1064
+ has_one :river, River
1065
+ has_one :shore, Shore
1066
+ has_one :terrain, String
1067
+ has_one :wreck, Wreck
1068
+ end
1069
+
1070
+ class Site
1071
+ include HappyMapper
1072
+
1073
+ tag "site"
1074
+
1075
+ attribute :id, String
1076
+ has_one :alias_name, String
1077
+ has_one :ecology, Ecology
1078
+ has_one :environment, String
1079
+ has_one :geography, Geography
1080
+ has_many :links, Link, tag: "link"
1081
+ has_one :name, String
1082
+ has_one :notes, Notes
1083
+ has_many :ratings, Rating, tag: "rating"
1084
+ has_one :side_data, SiteData
1085
+ end
1086
+
1087
+ class Guide
1088
+ include HappyMapper
1089
+
1090
+ tag "guide"
1091
+
1092
+ has_many :links, Link, tag: "link"
1093
+ end
1094
+
1095
+ class DiveBase
1096
+ include HappyMapper
1097
+
1098
+ tag "divebase"
1099
+
1100
+ attribute :id, String
1101
+ has_one :address, Base::Models::Address
1102
+ has_one :alias_name, String
1103
+ has_one :contact, Base::Models::Contact
1104
+ has_many :guides, Guide, tag: "guide"
1105
+ has_many :links, Link, tag: "link"
1106
+ has_one :name, String
1107
+ has_one :notes, Notes
1108
+ has_one :price_dive_package, PriceDivePackage
1109
+ has_one :price_per_dive, Price
1110
+ has_many :ratings, Rating, tag: "rating"
1111
+ end
1112
+
1113
+ class DiveSite
1114
+ include HappyMapper
1115
+
1116
+ tag "divesite"
1117
+
1118
+ has_many :dive_bases, DiveBase, tag: "divebase"
1119
+ has_many :sites, Site, tag: "site"
1120
+ end
1121
+
1122
+ class Shop
1123
+ include HappyMapper
1124
+
1125
+ tag "shop"
1126
+
1127
+ has_one :alias_name, String
1128
+ has_one :address, Base::Models::Address
1129
+ has_one :contact, Base::Models::Contact
1130
+ has_one :name, String
1131
+ has_one :notes, Notes
1132
+ end
1133
+
1134
+ class Business
1135
+ include HappyMapper
1136
+
1137
+ tag "business"
1138
+
1139
+ has_one :shop, Shop
1140
+ end
1141
+
1142
+ class Membership
1143
+ include HappyMapper
1144
+
1145
+ tag "membership"
1146
+
1147
+ attribute :organisation, String
1148
+ attribute :member_id, String
1149
+ end
1150
+
1151
+ class NumberOfDives
1152
+ include HappyMapper
1153
+
1154
+ tag "numberofdives"
1155
+
1156
+ has_one :start_date, Date
1157
+ has_one :end_date, Date
1158
+ has_one :dives, Integer
1159
+ end
1160
+
1161
+ class Personal
1162
+ include HappyMapper
1163
+
1164
+ tag "personal"
1165
+
1166
+ has_one :birth_date, Date
1167
+ has_one :birth_name, String
1168
+ has_one :blood_group, String
1169
+ has_one :first_name, String
1170
+ has_one :height, Float
1171
+ has_one :honorific, String
1172
+ has_one :last_name, String
1173
+ has_one :membership, Membership
1174
+ has_one :middle_name, String
1175
+ has_one :number_of_dives, NumberOfDives
1176
+ has_one :sex, String
1177
+ has_one :smoking, String
1178
+ has_one :weight, Float
1179
+ end
1180
+
1181
+ class Instructor
1182
+ include HappyMapper
1183
+
1184
+ tag "instructor"
1185
+
1186
+ has_one :address, Base::Models::Address
1187
+ has_one :contact, Base::Models::Contact
1188
+ has_one :personal, Personal
1189
+ end
1190
+
1191
+ class Certification
1192
+ include HappyMapper
1193
+
1194
+ tag "certification"
1195
+
1196
+ has_one :certificate_number, String
1197
+ has_one :instructor, Instructor
1198
+ has_one :issue_date, Date
1199
+ has_one :level, String
1200
+ has_one :link, Link
1201
+ has_one :organization, String
1202
+ has_one :specialty, String
1203
+ has_one :valid_date, Date
1204
+ end
1205
+
1206
+ class Education
1207
+ include HappyMapper
1208
+
1209
+ tag "education"
1210
+
1211
+ has_many :certifications, Certification, tag: "certification"
1212
+ end
1213
+
1214
+ class Insurance
1215
+ include HappyMapper
1216
+
1217
+ tag "insurance"
1218
+
1219
+ has_one :alias_name, String
1220
+ has_one :issue_date, Date
1221
+ has_one :name, String
1222
+ has_one :notes, Notes
1223
+ has_one :valid_date, Date
1224
+ end
1225
+
1226
+ class DiveInsurances
1227
+ include HappyMapper
1228
+
1229
+ tag "diveinsurances"
1230
+
1231
+ has_many :insurances, Insurance, tag: "insurance"
1232
+ end
1233
+
1234
+ class Permit
1235
+ include HappyMapper
1236
+
1237
+ tag "permit"
1238
+
1239
+ has_one :alias_name, String
1240
+ has_one :issue_date, Date
1241
+ has_one :name, String
1242
+ has_one :notes, Notes
1243
+ has_one :region, String
1244
+ has_one :valid_date, Date
1245
+ end
1246
+
1247
+ class DivePermissions
1248
+ include HappyMapper
1249
+
1250
+ tag "divepermissions"
1251
+
1252
+ has_many :permits, Permit, tag: "permit"
1253
+ end
1254
+
1255
+ class Purchase
1256
+ include HappyMapper
1257
+
1258
+ tag "purchase"
1259
+
1260
+ has_one :datetime, DateTime
1261
+ has_one :link, Link
1262
+ has_one :price, Price
1263
+ has_one :shop, Shop
1264
+ end
1265
+
1266
+ class EquipmentPart
1267
+ include HappyMapper
1268
+
1269
+ tag "equipmentpart"
1270
+
1271
+ attribute :id, String
1272
+ has_one :alias_name, String
1273
+ has_many :links, Link, tag: "link"
1274
+ has_one :manufacturer, Manufacturer
1275
+ has_one :model, String
1276
+ has_one :name, String
1277
+ has_one :next_service_date, Date
1278
+ has_one :notes, Notes
1279
+ has_one :purchase, Purchase
1280
+ has_one :serial_number, String
1281
+ has_one :service_interval, Integer
1282
+ end
1283
+
1284
+ class Lead
1285
+ include HappyMapper
1286
+
1287
+ tag "lead"
1288
+
1289
+ has_one :equipment_part, EquipmentPart
1290
+ has_one :lead_quantity, Integer
1291
+ end
1292
+
1293
+ class Rebreather
1294
+ include HappyMapper
1295
+
1296
+ tag "rebreather"
1297
+
1298
+ has_one :equipment_part, EquipmentPart
1299
+ has_many :o2_sensors, EquipmentPart, tag: "o2sensor"
1300
+ end
1301
+
1302
+ class Suit
1303
+ include HappyMapper
1304
+
1305
+ tag "suit"
1306
+
1307
+ has_one :equipment_part, EquipmentPart
1308
+ has_one :suit_type, String
1309
+ end
1310
+
1311
+ class Tank
1312
+ include HappyMapper
1313
+
1314
+ tag "tank"
1315
+
1316
+ has_one :equipment_part, EquipmentPart
1317
+ has_one :tank_material, String
1318
+ has_one :tank_volume, Float
1319
+ end
1320
+
1321
+ class Camera
1322
+ include HappyMapper
1323
+
1324
+ tag "camera"
1325
+
1326
+ has_one :body, EquipmentPart
1327
+ has_many :flashes, EquipmentPart, tag: "flash"
1328
+ has_one :housing, EquipmentPart
1329
+ has_one :lens, EquipmentPart
1330
+ end
1331
+
1332
+ class EquipmentConfiguration
1333
+ include HappyMapper
1334
+
1335
+ tag "equipmentconfiguration"
1336
+
1337
+ has_one :alias_name, String
1338
+ has_many :links, Link, tag: "link"
1339
+ has_one :name, String
1340
+ has_one :notes, Notes
1341
+ has_many :boots, EquipmentPart, tag: "boots"
1342
+ has_many :buoyancy_control_devices, EquipmentPart, tag: "buoyancycontroldevice"
1343
+ has_many :cameras, Camera, tag: "camera"
1344
+ has_many :compasses, EquipmentPart, tag: "compass"
1345
+ has_many :dive_computers, EquipmentPart, tag: "divecomputer"
1346
+ has_many :fins, EquipmentPart, tag: "fins"
1347
+ has_many :gloves, EquipmentPart, tag: "gloves"
1348
+ has_many :knives, EquipmentPart, tag: "knife"
1349
+ has_many :leads, Lead, tag: "lead"
1350
+ has_many :lights, EquipmentPart, tag: "light"
1351
+ has_many :masks, EquipmentPart, tag: "mask"
1352
+ has_many :rebreathers, Rebreather, tag: "rebreather"
1353
+ has_many :regulators, EquipmentPart, tag: "regulator"
1354
+ has_many :scooters, EquipmentPart, tag: "scooter"
1355
+ has_many :suits, Suit, tag: "suit"
1356
+ has_many :tanks, Tank, tag: "tank"
1357
+ has_many :various_pieces, EquipmentPart, tag: "variouspieces"
1358
+ has_many :video_cameras, EquipmentPart, tag: "videocamera"
1359
+ has_many :watches, EquipmentPart, tag: "watch"
1360
+ end
1361
+
1362
+ class Equipment
1363
+ include HappyMapper
1364
+
1365
+ tag "equipment"
1366
+
1367
+ has_many :compressors, EquipmentPart, tag: "compressor"
1368
+ has_one :equipment_configuration, EquipmentConfiguration
1369
+ has_many :boots, EquipmentPart, tag: "boots"
1370
+ has_many :buoyancy_control_devices, EquipmentPart, tag: "buoyancycontroldevice"
1371
+ has_many :cameras, Camera, tag: "camera"
1372
+ has_many :compasses, EquipmentPart, tag: "compass"
1373
+ has_many :dive_computers, EquipmentPart, tag: "divecomputer"
1374
+ has_many :fins, EquipmentPart, tag: "fins"
1375
+ has_many :gloves, EquipmentPart, tag: "gloves"
1376
+ has_many :knives, EquipmentPart, tag: "knife"
1377
+ has_many :leads, Lead, tag: "lead"
1378
+ has_many :lights, EquipmentPart, tag: "light"
1379
+ has_many :masks, EquipmentPart, tag: "mask"
1380
+ has_many :rebreathers, Rebreather, tag: "rebreather"
1381
+ has_many :regulators, EquipmentPart, tag: "regulator"
1382
+ has_many :scooters, EquipmentPart, tag: "scooter"
1383
+ has_many :suits, Suit, tag: "suit"
1384
+ has_many :tanks, Tank, tag: "tank"
1385
+ has_many :various_pieces, EquipmentPart, tag: "variouspieces"
1386
+ has_many :video_cameras, EquipmentPart, tag: "videocamera"
1387
+ has_many :watches, EquipmentPart, tag: "watch"
1388
+ end
1389
+
1390
+ class Doctor
1391
+ include HappyMapper
1392
+
1393
+ tag "doctor"
1394
+
1395
+ attribute :id, String
1396
+ has_one :address, Base::Models::Address
1397
+ has_one :contact, Base::Models::Contact
1398
+ has_one :personal, Personal
1399
+ end
1400
+
1401
+ class Examination
1402
+ include HappyMapper
1403
+
1404
+ tag "examination"
1405
+
1406
+ has_one :datetime, DateTime
1407
+ has_one :doctor, Doctor
1408
+ has_one :examination_result, String
1409
+ has_many :links, Link, tag: "link"
1410
+ has_one :notes, Notes
1411
+ has_one :total_lung_capacity, Float
1412
+ has_one :vital_capacity, Float
1413
+ end
1414
+
1415
+ class Medical
1416
+ include HappyMapper
1417
+
1418
+ tag "medical"
1419
+
1420
+ has_one :examination, Examination
1421
+ end
1422
+
1423
+ class BuddyOwnerShared
1424
+ include HappyMapper
1425
+
1426
+ attribute :id, String
1427
+ has_one :address, Base::Models::Address
1428
+ has_one :contact, Base::Models::Contact
1429
+ has_one :dive_insurances, DiveInsurances
1430
+ has_one :dive_permissions, DivePermissions
1431
+ has_one :equipment, Equipment
1432
+ has_one :medical, Medical
1433
+ has_one :notes, Notes
1434
+ has_one :personal, Personal
1435
+ end
1436
+
1437
+ class Buddy
1438
+ include HappyMapper
1439
+
1440
+ tag "buddy"
1441
+
1442
+ attribute :id, String
1443
+ has_one :address, Base::Models::Address
1444
+ has_one :contact, Base::Models::Contact
1445
+ has_one :dive_insurances, DiveInsurances
1446
+ has_one :dive_permissions, DivePermissions
1447
+ has_one :equipment, Equipment
1448
+ has_one :medical, Medical
1449
+ has_one :notes, Notes
1450
+ has_one :personal, Personal
1451
+ has_one :certification, Certification
1452
+ has_one :student, String
1453
+ end
1454
+
1455
+ class Owner
1456
+ include HappyMapper
1457
+
1458
+ tag "owner"
1459
+
1460
+ attribute :id, String
1461
+ has_one :address, Base::Models::Address
1462
+ has_one :contact, Base::Models::Contact
1463
+ has_one :dive_insurances, DiveInsurances
1464
+ has_one :dive_permissions, DivePermissions
1465
+ has_one :equipment, Equipment
1466
+ has_one :medical, Medical
1467
+ has_one :notes, Notes
1468
+ has_one :personal, Personal
1469
+ has_one :education, Education
1470
+ end
1471
+
1472
+ class Diver
1473
+ include HappyMapper
1474
+
1475
+ tag "diver"
1476
+
1477
+ has_many :buddies, Buddy, tag: "buddy"
1478
+ has_one :owner, Owner
1479
+ end
1480
+
1481
+ class DCAlarm
1482
+ include HappyMapper
1483
+
1484
+ tag "dcalarm"
1485
+
1486
+ has_one :acknowledge, String
1487
+ has_one :alarm_type, Integer
1488
+ has_one :period, Float
1489
+ end
1490
+
1491
+ class SetDCDiveDepthAlarm
1492
+ include HappyMapper
1493
+
1494
+ tag "setdcdivedethalarm"
1495
+
1496
+ has_one :dc_alarm, DCAlarm
1497
+ has_one :dc_alarm_depth, Float
1498
+ end
1499
+
1500
+ class SetDCDivePo2Alarm
1501
+ include HappyMapper
1502
+
1503
+ tag "setdcdivepo2alarm"
1504
+
1505
+ has_one :dc_alarm, DCAlarm
1506
+ has_one :maximum_po2, Float
1507
+ end
1508
+
1509
+ class SetDCDiveSiteData
1510
+ include HappyMapper
1511
+
1512
+ tag "setdcdivesitedata"
1513
+
1514
+ attribute :dive_site, String
1515
+ end
1516
+
1517
+ class SetDCDiveTimeAlarm
1518
+ include HappyMapper
1519
+
1520
+ tag "setdcdivetimealarm"
1521
+
1522
+ has_one :dc_alarm, DCAlarm
1523
+ has_one :timespan, Float
1524
+ end
1525
+
1526
+ class SetDCEndNDTAlarm
1527
+ include HappyMapper
1528
+
1529
+ tag "setdcendndtalarm"
1530
+
1531
+ has_one :dc_alarm, DCAlarm
1532
+ end
1533
+
1534
+ class SetDCDecoModel
1535
+ include HappyMapper
1536
+
1537
+ tag "setdcdecomodel"
1538
+
1539
+ has_one :alias_name, String
1540
+ has_one :application_data, ApplicationData
1541
+ has_one :name, String
1542
+ end
1543
+
1544
+ class SetDCBuddyData
1545
+ include HappyMapper
1546
+
1547
+ tag "setdcbuddydata"
1548
+
1549
+ attribute :buddy, String
1550
+ end
1551
+
1552
+ class SetDCData
1553
+ include HappyMapper
1554
+
1555
+ tag "setdcdata"
1556
+
1557
+ has_one :set_dc_alarm_time, DateTime
1558
+ has_one :set_dc_altitude, Float
1559
+ has_one :set_dc_buddy_data, SetDCBuddyData
1560
+ has_one :set_dc_date_time, DateTime
1561
+ has_one :set_dc_deco_model, SetDCDecoModel
1562
+ has_one :set_dc_dive_depth_alarm, SetDCDiveDepthAlarm
1563
+ has_one :set_dc_dive_po2_alarm, SetDCDivePo2Alarm
1564
+ has_many :set_dc_dive_site_data, SetDCDiveSiteData, tag: "setdcdivesitedata"
1565
+ has_one :set_dc_dive_time_alarm, SetDCDiveTimeAlarm
1566
+ has_one :set_dc_end_ndt_alarm, SetDCEndNDTAlarm
1567
+ has_one :set_dc_gas_definitions_data, String
1568
+ has_one :set_dc_owner_data, String
1569
+ has_one :set_dc_password, String
1570
+ has_one :set_dc_generator_data, String
1571
+ end
1572
+
1573
+ class GetDCData
1574
+ include HappyMapper
1575
+
1576
+ tag "getdcdata"
1577
+
1578
+ has_one :get_dc_all_data, String
1579
+ has_one :get_dc_generator_data, String
1580
+ has_one :get_dc_owner_data, String
1581
+ has_one :get_dc_buddy_data, String
1582
+ has_one :get_dc_gas_definitions_data, String
1583
+ has_one :get_dc_dive_site_data, String
1584
+ has_one :get_dc_dive_trip_data, String
1585
+ has_one :get_dc_profile_data, String
1586
+ end
1587
+
1588
+ class DiveComputerDump
1589
+ include HappyMapper
1590
+
1591
+ tag "divecomputerdump"
1592
+
1593
+ has_one :datetime, DateTime
1594
+ has_one :dc_dump, String
1595
+ has_one :link, Link
1596
+ end
1597
+
1598
+ class DiveComputerControl
1599
+ include HappyMapper
1600
+
1601
+ tag "divecomputercontrol"
1602
+
1603
+ has_many :dive_computer_dumps, DiveComputerDump, tag: "divecomputerdump"
1604
+ has_one :get_dc_data, GetDCData
1605
+ has_one :set_dc_data, SetDCData
1606
+ end
1607
+
1608
+ class Uddf
1609
+ include HappyMapper
1610
+
1611
+ tag "uddf"
1612
+
1613
+ attribute :version, String
1614
+ has_one :business, Business
1615
+ has_one :deco_model, DecoModel
1616
+ has_one :dive_computer_control, DiveComputerControl
1617
+ has_one :diver, Diver
1618
+ has_one :dive_site, DiveSite
1619
+ has_one :dive_trip, DiveTrip
1620
+ has_one :gas_definitions, GasDefinitions
1621
+ has_one :generator, Generator
1622
+ has_one :maker, Maker
1623
+ has_one :media_data, MediaData
1624
+ has_one :profile_data, ProfileData
1625
+ has_one :table_generation, TableGeneration
1626
+ end
1627
+ end
1628
+ end
1629
+ end