Class: Lease::InquirySerializer

Inherits:
AbstractSerializer show all
Extended by:
Site::TimeHelper
Defined in:
app/serializers/lease/inquiry_serializer.rb

Class Method Summary collapse

Methods included from Site::TimeHelper

format_date, locale_date_format, next_hour

Methods inherited from AbstractSerializer

opts, serialize

Class Method Details

.account_id(inquiry) ⇒ Object



45
46
47
# File 'app/serializers/lease/inquiry_serializer.rb', line 45

def (inquiry)
  { account_id: inquiry. }
end

.address(inquiry) ⇒ Object



89
90
91
# File 'app/serializers/lease/inquiry_serializer.rb', line 89

def address(inquiry)
  { address: inquiry.address }
end

.available_attributesObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/serializers/lease/inquiry_serializer.rb', line 8

def available_attributes
  i[
    
    address
    boat_types
    comments
    created_at
    created_at_full
    duration
    email
    from
    guests
    id
    is_my_price
    is_skippered
    kids
    latitude
    longitude
    manager_email
    my_price
    my_price_currency
    name
    need_transfer
    period
    period_formatted
    phone_number
    state
    to
    token
    watersports
  ].freeze
end

.boat_types(inquiry) ⇒ Object



160
161
162
163
164
165
166
167
168
169
170
171
# File 'app/serializers/lease/inquiry_serializer.rb', line 160

def boat_types(inquiry)
  boat_types = BoatType.where(id: inquiry.boat_type_ids).includes(:translations)
  {
    boat_types: boat_types.map do |bt|
      {
        id:   bt.id,
        name: bt.name,
        icon: bt.icon.url
      }
    end
  }
end

.comments(inquiry) ⇒ Object



77
78
79
# File 'app/serializers/lease/inquiry_serializer.rb', line 77

def comments(inquiry)
  { comments: inquiry.comments }
end

.created_at(inquiry) ⇒ Object



81
82
83
# File 'app/serializers/lease/inquiry_serializer.rb', line 81

def created_at(inquiry)
  { created_at: format_date(inquiry.created_at, @opts[:locale]) }
end

.created_at_full(inquiry) ⇒ Object



85
86
87
# File 'app/serializers/lease/inquiry_serializer.rb', line 85

def created_at_full(inquiry)
  { created_at_full: format_date(inquiry.created_at, @opts[:locale], true) }
end

.duration(inquiry) ⇒ Object



128
129
130
131
132
133
134
135
136
137
138
# File 'app/serializers/lease/inquiry_serializer.rb', line 128

def duration(inquiry)
  distance = (inquiry.to - inquiry.from).to_i / 24 / 60 / 60
  distance = distance.zero? ? 1 : distance + 1
  uom      = I18n.t('activerecord.labels.lease/bid.day', count: distance)
  {
    duration: {
      distance: distance,
      uom:      uom
    }
  }
end

.email(inquiry) ⇒ Object



101
102
103
# File 'app/serializers/lease/inquiry_serializer.rb', line 101

def email(inquiry)
  { email: inquiry...user.email }
end

.from(inquiry) ⇒ Object



140
141
142
# File 'app/serializers/lease/inquiry_serializer.rb', line 140

def from(inquiry)
  { from: format_date(inquiry.from, @opts[:locale]) }
end

.guests(inquiry) ⇒ Object



61
62
63
# File 'app/serializers/lease/inquiry_serializer.rb', line 61

def guests(inquiry)
  { guests: inquiry.guests }
end

.id(inquiry) ⇒ Object



41
42
43
# File 'app/serializers/lease/inquiry_serializer.rb', line 41

def id(inquiry)
  { id: inquiry.id }
end

.is_my_price(inquiry) ⇒ Object



148
149
150
# File 'app/serializers/lease/inquiry_serializer.rb', line 148

def is_my_price(inquiry)
  { is_my_price: inquiry.is_my_price }
end

.is_skippered(inquiry) ⇒ Object



57
58
59
# File 'app/serializers/lease/inquiry_serializer.rb', line 57

def is_skippered(inquiry)
  { is_skippered: inquiry.is_skippered }
end

.kids(inquiry) ⇒ Object



65
66
67
# File 'app/serializers/lease/inquiry_serializer.rb', line 65

def kids(inquiry)
  { kids: inquiry.kids }
end

.latitude(inquiry) ⇒ Object



93
94
95
# File 'app/serializers/lease/inquiry_serializer.rb', line 93

def latitude(inquiry)
  { latitude: inquiry.latitude.to_f }
end

.longitude(inquiry) ⇒ Object



97
98
99
# File 'app/serializers/lease/inquiry_serializer.rb', line 97

def longitude(inquiry)
  { longitude: inquiry.longitude.to_f }
end

.manager_email(inquiry) ⇒ Object



173
174
175
# File 'app/serializers/lease/inquiry_serializer.rb', line 173

def manager_email(inquiry)
  { manager_email: inquiry.&.user&.email }
end

.my_price(inquiry) ⇒ Object



152
153
154
# File 'app/serializers/lease/inquiry_serializer.rb', line 152

def my_price(inquiry)
  { my_price: inquiry.my_price }
end

.my_price_currency(inquiry) ⇒ Object



156
157
158
# File 'app/serializers/lease/inquiry_serializer.rb', line 156

def my_price_currency(inquiry)
  { my_price_currency: inquiry.my_price_currency }
end

.name(inquiry) ⇒ Object



105
106
107
# File 'app/serializers/lease/inquiry_serializer.rb', line 105

def name(inquiry)
  { name: inquiry.name }
end

.need_transfer(inquiry) ⇒ Object



73
74
75
# File 'app/serializers/lease/inquiry_serializer.rb', line 73

def need_transfer(inquiry)
  { need_transfer: inquiry.need_transfer }
end

.period(inquiry) ⇒ Object



113
114
115
# File 'app/serializers/lease/inquiry_serializer.rb', line 113

def period(inquiry)
  { period: '%s - %s' % [from(inquiry)[:from], to(inquiry)[:to]] }
end

.period_formatted(inquiry) ⇒ Object



117
118
119
120
121
122
123
124
125
126
# File 'app/serializers/lease/inquiry_serializer.rb', line 117

def period_formatted(inquiry)
  frm = format_date(inquiry.from, @opts[:locale], false, true)
  tto = format_date(inquiry.to, @opts[:locale], false, true)

  { period: {
      from: frm,
      to:   tto
    }
  }
end

.phone_number(inquiry) ⇒ Object



109
110
111
# File 'app/serializers/lease/inquiry_serializer.rb', line 109

def phone_number(inquiry)
  { phone_number: inquiry.phone_number }
end

.state(inquiry) ⇒ Object



49
50
51
# File 'app/serializers/lease/inquiry_serializer.rb', line 49

def state(inquiry)
  { state: inquiry.state }
end

.to(inquiry) ⇒ Object



144
145
146
# File 'app/serializers/lease/inquiry_serializer.rb', line 144

def to(inquiry)
  { to: format_date(inquiry.to, @opts[:locale]) }
end

.token(inquiry) ⇒ Object



53
54
55
# File 'app/serializers/lease/inquiry_serializer.rb', line 53

def token(inquiry)
  { token: inquiry.token }
end

.watersports(inquiry) ⇒ Object



69
70
71
# File 'app/serializers/lease/inquiry_serializer.rb', line 69

def watersports(inquiry)
  { watersports: inquiry.watersports }
end