auctify 1.0.0

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.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +229 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/config/auctify_manifest.js +1 -0
  6. data/app/assets/javascripts/folio/console/main_app.coffee +1 -0
  7. data/app/assets/stylesheets/auctify/application.css +15 -0
  8. data/app/assets/stylesheets/auctify/bidder_registrations.css +4 -0
  9. data/app/assets/stylesheets/auctify/bids.css +4 -0
  10. data/app/assets/stylesheets/auctify/sales.css +4 -0
  11. data/app/assets/stylesheets/auctify/sales_packs.css +4 -0
  12. data/app/assets/stylesheets/folio/console/_main_app.sass +1 -0
  13. data/app/assets/stylesheets/scaffold.css +80 -0
  14. data/app/cells/folio/console/atoms/previews/main_app.coffee +1 -0
  15. data/app/concerns/auctify/behavior/base.rb +20 -0
  16. data/app/concerns/auctify/behavior/buyer.rb +16 -0
  17. data/app/concerns/auctify/behavior/item.rb +27 -0
  18. data/app/concerns/auctify/behavior/seller.rb +36 -0
  19. data/app/concerns/auctify/sale/auction_callbacks.rb +44 -0
  20. data/app/controllers/auctify/api/v1/auctions_controller.rb +61 -0
  21. data/app/controllers/auctify/api/v1/base_controller.rb +22 -0
  22. data/app/controllers/auctify/api/v1/console/bids_controller.rb +37 -0
  23. data/app/controllers/auctify/application_controller.rb +8 -0
  24. data/app/controllers/auctify/bidder_registrations_controller.rb +65 -0
  25. data/app/controllers/auctify/bids_controller.rb +64 -0
  26. data/app/controllers/auctify/sales_controller.rb +75 -0
  27. data/app/controllers/auctify/sales_packs_controller.rb +75 -0
  28. data/app/helpers/auctify/application_helper.rb +10 -0
  29. data/app/helpers/auctify/bidder_registrations_helper.rb +6 -0
  30. data/app/helpers/auctify/bids_helper.rb +6 -0
  31. data/app/helpers/auctify/sales_helper.rb +15 -0
  32. data/app/helpers/auctify/sales_packs_helper.rb +6 -0
  33. data/app/jobs/auctify/application_job.rb +6 -0
  34. data/app/jobs/auctify/bidding_closer_job.rb +23 -0
  35. data/app/jobs/auctify/bidding_is_close_to_end_notifier_job.rb +29 -0
  36. data/app/mailers/auctify/application_mailer.rb +8 -0
  37. data/app/models/auctify/application_record.rb +14 -0
  38. data/app/models/auctify/behaviors.rb +27 -0
  39. data/app/models/auctify/bid.rb +72 -0
  40. data/app/models/auctify/bidder_registration.rb +84 -0
  41. data/app/models/auctify/sale/auction.rb +404 -0
  42. data/app/models/auctify/sale/base.rb +210 -0
  43. data/app/models/auctify/sale/retail.rb +97 -0
  44. data/app/models/auctify/sales_pack.rb +101 -0
  45. data/app/serializers/auctify/sale/auction_serializer.rb +46 -0
  46. data/app/services/auctify/bids_appender.rb +241 -0
  47. data/app/services/auctify/service_base.rb +78 -0
  48. data/app/types/auctify/minimal_bids_ladder_type.rb +77 -0
  49. data/app/views/auctify/api/v1/console/bids/index.html.erb +1 -0
  50. data/app/views/auctify/api/v1/console/bids/show.html.erb +1 -0
  51. data/app/views/auctify/bidder_registrations/_form.html.erb +27 -0
  52. data/app/views/auctify/bidder_registrations/edit.html.erb +6 -0
  53. data/app/views/auctify/bidder_registrations/index.html.erb +33 -0
  54. data/app/views/auctify/bidder_registrations/new.html.erb +5 -0
  55. data/app/views/auctify/bidder_registrations/show.html.erb +24 -0
  56. data/app/views/auctify/bids/_form.html.erb +32 -0
  57. data/app/views/auctify/bids/edit.html.erb +6 -0
  58. data/app/views/auctify/bids/index.html.erb +31 -0
  59. data/app/views/auctify/bids/new.html.erb +5 -0
  60. data/app/views/auctify/bids/show.html.erb +19 -0
  61. data/app/views/auctify/sales/_form.html.erb +32 -0
  62. data/app/views/auctify/sales/edit.html.erb +6 -0
  63. data/app/views/auctify/sales/index.html.erb +36 -0
  64. data/app/views/auctify/sales/new.html.erb +5 -0
  65. data/app/views/auctify/sales/show.html.erb +19 -0
  66. data/app/views/auctify/sales_packs/_form.html.erb +57 -0
  67. data/app/views/auctify/sales_packs/edit.html.erb +6 -0
  68. data/app/views/auctify/sales_packs/index.html.erb +40 -0
  69. data/app/views/auctify/sales_packs/new.html.erb +5 -0
  70. data/app/views/auctify/sales_packs/show.html.erb +44 -0
  71. data/app/views/layouts/auctify/application.html.erb +15 -0
  72. data/config/locales/auctify.cs.yml +121 -0
  73. data/config/locales/default.cs.yml +220 -0
  74. data/config/locales/default.en.yml +215 -0
  75. data/config/routes.rb +23 -0
  76. data/db/migrate/20210212163000_create_auctify_sales.rb +16 -0
  77. data/db/migrate/20210216151350_add_type_to_auctify_sales.rb +7 -0
  78. data/db/migrate/20210217101246_add_state_to_auctify_sales.rb +7 -0
  79. data/db/migrate/20210217110819_add_prices_to_auctify_sales.rb +9 -0
  80. data/db/migrate/20210222103031_add_published_at_to_auctify_sale.rb +7 -0
  81. data/db/migrate/20210223090240_create_auctify_bidder_registrations.rb +15 -0
  82. data/db/migrate/20210223152139_create_auctify_bids.rb +13 -0
  83. data/db/migrate/20210225103227_add_bid_steps_ladder_to_auctify_sales.rb +7 -0
  84. data/db/migrate/20210412114319_add_reserve_price_to_auctify_sales.rb +7 -0
  85. data/db/migrate/20210416140603_create_auctify_sales_packs.rb +17 -0
  86. data/db/migrate/20210416141111_add_pack_reference_to_auctify_sales.rb +7 -0
  87. data/db/migrate/20210419075003_add_ends_at_to_auctify_sales.rb +7 -0
  88. data/db/migrate/20210419082800_add_position_to_auctify_sales.rb +8 -0
  89. data/db/migrate/20210419083321_add_indexes.rb +12 -0
  90. data/db/migrate/20210421093652_add_number_to_auctify_sales.rb +7 -0
  91. data/db/migrate/20210423071326_removing_polymorphic_assoc_sale_to_item.rb +7 -0
  92. data/db/migrate/20210423071534_add_currently_ends_at_to_auctify_sales.rb +7 -0
  93. data/db/migrate/20210427121353_change_column_published_on_auctify_sale.rb +15 -0
  94. data/db/migrate/20210427122315_add_featured_to_auctify_sales.rb +7 -0
  95. data/db/migrate/20210428045651_add_sales_bool_indices.rb +9 -0
  96. data/db/migrate/20210428064615_allow_seller_to_be_nil.rb +13 -0
  97. data/db/migrate/20210429051508_add_sales_pack_start_and_end.rb +15 -0
  98. data/db/migrate/20210430080419_add_sales_slug.rb +11 -0
  99. data/db/migrate/20210503095704_add_cancelled_to_auctify_bids.rb +7 -0
  100. data/db/migrate/20210504072041_add_commission_and_contract_to_auctify_sales.rb +8 -0
  101. data/db/migrate/20210506064100_add_winner_to_auctify_sales.rb +7 -0
  102. data/db/migrate/20210506072438_add_bids_count_to_auctify_sales.rb +7 -0
  103. data/db/migrate/20210507085845_rename_bids_count_to_applied_bids_count.rb +7 -0
  104. data/db/migrate/20210510063146_add_dont_confirm_bids_to_registrations.rb +7 -0
  105. data/db/migrate/20210511081556_add_index_on_cancelled_on.rb +7 -0
  106. data/db/migrate/20210512162942_add_sold_at_to_auctify_sales.rb +7 -0
  107. data/db/migrate/20210607113440_add_commission_in_percent_to_sales_packs.rb +7 -0
  108. data/db/migrate/20210617062509_add_index_to_auctify_sales_currently_ends_at.rb +7 -0
  109. data/db/migrate/20210625125732_add_current_winner_to_auctify_sales.rb +7 -0
  110. data/lib/auctify.rb +7 -0
  111. data/lib/auctify/configuration.rb +43 -0
  112. data/lib/auctify/engine.rb +25 -0
  113. data/lib/auctify/version.rb +5 -0
  114. data/lib/tasks/auctify_tasks.rake +23 -0
  115. metadata +442 -0
@@ -0,0 +1,220 @@
1
+ ---
2
+ cs:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validace je neúspešná: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_many: Nemůžu smazat položku protože existuje závislé/ý %{record}
9
+ has_one: Nemůžu smazat položku protože existuje závislá/ý/é %{record}
10
+ date:
11
+ abbr_day_names:
12
+ - Ne
13
+ - Po
14
+ - Út
15
+ - St
16
+ - Čt
17
+ - Pá
18
+ - So
19
+ abbr_month_names:
20
+ -
21
+ - led
22
+ - úno
23
+ - bře
24
+ - dub
25
+ - kvě
26
+ - čvn
27
+ - čvc
28
+ - srp
29
+ - zář
30
+ - říj
31
+ - lis
32
+ - pro
33
+ day_names:
34
+ - neděle
35
+ - pondělí
36
+ - úterý
37
+ - středa
38
+ - čtvrtek
39
+ - pátek
40
+ - sobota
41
+ formats:
42
+ default: "%d. %m. %Y"
43
+ long: "%d. %B %Y"
44
+ short: "%d %b"
45
+ month_names:
46
+ -
47
+ - leden
48
+ - únor
49
+ - březen
50
+ - duben
51
+ - květen
52
+ - červen
53
+ - červenec
54
+ - srpen
55
+ - září
56
+ - říjen
57
+ - listopad
58
+ - prosinec
59
+ order:
60
+ - :day
61
+ - :month
62
+ - :year
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ few: asi %{count} hodinami
67
+ one: asi hodinou
68
+ other: asi %{count} hodinami
69
+ about_x_months:
70
+ few: asi %{count} měsíci
71
+ one: asi měsícem
72
+ other: asi %{count} měsíci
73
+ about_x_years:
74
+ few: asi %{count} roky
75
+ one: asi rokem
76
+ other: asi %{count} roky
77
+ almost_x_years:
78
+ few: téměř %{count} roky
79
+ one: téměř rokem
80
+ other: téměř %{count} roky
81
+ half_a_minute: půl minutou
82
+ less_than_x_minutes:
83
+ few: ani ne %{count} minutami
84
+ one: necelou minutou
85
+ other: ani ne %{count} minutami
86
+ less_than_x_seconds:
87
+ few: ani ne %{count} sekundami
88
+ one: necelou sekundou
89
+ other: ani ne %{count} sekundami
90
+ over_x_years:
91
+ few: více než %{count} roky
92
+ one: více než rokem
93
+ other: více než %{count} roky
94
+ x_days:
95
+ few: "%{count} dny"
96
+ one: 24 hodinami
97
+ other: "%{count} dny"
98
+ x_minutes:
99
+ few: "%{count} minutami"
100
+ one: minutou
101
+ other: "%{count} minutami"
102
+ x_months:
103
+ few: "%{count} měsíci"
104
+ one: měsícem
105
+ other: "%{count} měsíci"
106
+ x_seconds:
107
+ few: "%{count} sekundami"
108
+ one: sekundou
109
+ other: "%{count} sekundami"
110
+ x_years:
111
+ few: "%{count} roky"
112
+ one: 1 rok
113
+ other: "%{count} let"
114
+ prompts:
115
+ day: Den
116
+ hour: Hodina
117
+ minute: Minuta
118
+ month: Měsíc
119
+ second: Sekunda
120
+ year: Rok
121
+ errors:
122
+ format: "%{attribute} %{message}"
123
+ messages:
124
+ accepted: musí být potvrzeno
125
+ blank: je povinná položka
126
+ confirmation: nebylo potvrzeno
127
+ empty: nesmí být prázdný/á/é
128
+ equal_to: musí být rovno %{count}
129
+ even: musí být sudé číslo
130
+ exclusion: je vyhrazeno pro jiný účel
131
+ greater_than: musí být větší než %{count}
132
+ greater_than_or_equal_to: musí být větší nebo rovno %{count}
133
+ inclusion: není v seznamu povolených hodnot
134
+ invalid: není platná hodnota
135
+ less_than: musí být méně než %{count}
136
+ less_than_or_equal_to: musí být méně nebo rovno %{count}
137
+ model_invalid: 'validace selhala: %{errors}'
138
+ not_a_number: není číslo
139
+ not_an_integer: musí být celé číslo
140
+ odd: musí být liché číslo
141
+ other_than: musí být rozdílný/á/é od %{count}
142
+ present: musí být prázdný/á/é
143
+ required: musí existovat
144
+ taken: již databáze obsahuje
145
+ too_long: je příliš dlouhý/á/é (max. %{count} znaků)
146
+ too_short: je příliš krátký/á/é (min. %{count} znaků)
147
+ wrong_length: nemá správnou délku (očekáváno %{count} znaků)
148
+ template:
149
+ body: 'Následující pole obsahují chybně vyplněné údaje: '
150
+ header:
151
+ few: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné jej uložit
152
+ one: Při ukládání objektu %{model} došlo k chybám a nebylo jej možné uložit
153
+ other: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné jej uložit
154
+ helpers:
155
+ select:
156
+ prompt: Prosím vyberte si
157
+ submit:
158
+ create: Vytvořit %{model}
159
+ submit: Uložit %{model}
160
+ update: Aktualizovat %{model}
161
+ number:
162
+ currency:
163
+ format:
164
+ delimiter: " "
165
+ format: "%n %u"
166
+ precision: 2
167
+ separator: ","
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ unit: Kč
171
+ format:
172
+ delimiter: "."
173
+ precision: 3
174
+ separator: ","
175
+ significant: false
176
+ strip_insignificant_zeros: false
177
+ human:
178
+ decimal_units:
179
+ format: "%n %u"
180
+ units:
181
+ billion: Miliarda
182
+ million: Milion
183
+ quadrillion: Kvadrilion
184
+ thousand: Tisíc
185
+ trillion: Bilion
186
+ unit: ''
187
+ format:
188
+ delimiter: ''
189
+ precision: 1
190
+ significant: false
191
+ strip_insignificant_zeros: false
192
+ storage_units:
193
+ format: "%n %u"
194
+ units:
195
+ byte: B
196
+ eb: EB
197
+ gb: GB
198
+ kb: KB
199
+ mb: MB
200
+ pb: PB
201
+ tb: TB
202
+ percentage:
203
+ format:
204
+ delimiter: ''
205
+ format: "%n%"
206
+ precision:
207
+ format:
208
+ delimiter: ''
209
+ support:
210
+ array:
211
+ last_word_connector: " a "
212
+ two_words_connector: " a "
213
+ words_connector: ", "
214
+ time:
215
+ am: am
216
+ formats:
217
+ default: "%a %d. %B %Y %H:%M %z"
218
+ long: "%A %d. %B %Y %H:%M"
219
+ short: "%d. %m. %Y %H:%M"
220
+ pm: pm
@@ -0,0 +1,215 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validation failed: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_many: Cannot delete record because dependent %{record} exist
9
+ has_one: Cannot delete record because a dependent %{record} exists
10
+ date:
11
+ abbr_day_names:
12
+ - Sun
13
+ - Mon
14
+ - Tue
15
+ - Wed
16
+ - Thu
17
+ - Fri
18
+ - Sat
19
+ abbr_month_names:
20
+ -
21
+ - Jan
22
+ - Feb
23
+ - Mar
24
+ - Apr
25
+ - May
26
+ - Jun
27
+ - Jul
28
+ - Aug
29
+ - Sep
30
+ - Oct
31
+ - Nov
32
+ - Dec
33
+ day_names:
34
+ - Sunday
35
+ - Monday
36
+ - Tuesday
37
+ - Wednesday
38
+ - Thursday
39
+ - Friday
40
+ - Saturday
41
+ formats:
42
+ default: "%Y-%m-%d"
43
+ long: "%B %d, %Y"
44
+ short: "%b %d"
45
+ month_names:
46
+ -
47
+ - January
48
+ - February
49
+ - March
50
+ - April
51
+ - May
52
+ - June
53
+ - July
54
+ - August
55
+ - September
56
+ - October
57
+ - November
58
+ - December
59
+ order:
60
+ - :year
61
+ - :month
62
+ - :day
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ one: about 1 hour
67
+ other: about %{count} hours
68
+ about_x_months:
69
+ one: about 1 month
70
+ other: about %{count} months
71
+ about_x_years:
72
+ one: about 1 year
73
+ other: about %{count} years
74
+ almost_x_years:
75
+ one: almost 1 year
76
+ other: almost %{count} years
77
+ half_a_minute: half a minute
78
+ less_than_x_minutes:
79
+ one: less than a minute
80
+ other: less than %{count} minutes
81
+ less_than_x_seconds:
82
+ one: less than 1 second
83
+ other: less than %{count} seconds
84
+ over_x_years:
85
+ one: over 1 year
86
+ other: over %{count} years
87
+ x_days:
88
+ one: 1 day
89
+ other: "%{count} days"
90
+ x_minutes:
91
+ one: 1 minute
92
+ other: "%{count} minutes"
93
+ x_months:
94
+ one: 1 month
95
+ other: "%{count} months"
96
+ x_seconds:
97
+ one: 1 second
98
+ other: "%{count} seconds"
99
+ x_years:
100
+ one: 1 year
101
+ other: "%{count} years"
102
+ prompts:
103
+ day: Day
104
+ hour: Hour
105
+ minute: Minute
106
+ month: Month
107
+ second: Seconds
108
+ year: Year
109
+ errors:
110
+ format: "%{attribute} %{message}"
111
+ messages:
112
+ accepted: must be accepted
113
+ blank: can't be blank
114
+ confirmation: doesn't match %{attribute}
115
+ empty: can't be empty
116
+ equal_to: must be equal to %{count}
117
+ even: must be even
118
+ exclusion: is reserved
119
+ greater_than: must be greater than %{count}
120
+ greater_than_or_equal_to: must be greater than or equal to %{count}
121
+ inclusion: is not included in the list
122
+ invalid: is invalid
123
+ less_than: must be less than %{count}
124
+ less_than_or_equal_to: must be less than or equal to %{count}
125
+ model_invalid: 'Validation failed: %{errors}'
126
+ not_a_number: is not a number
127
+ not_an_integer: must be an integer
128
+ odd: must be odd
129
+ other_than: must be other than %{count}
130
+ present: must be blank
131
+ required: must exist
132
+ taken: has already been taken
133
+ too_long:
134
+ one: is too long (maximum is 1 character)
135
+ other: is too long (maximum is %{count} characters)
136
+ too_short:
137
+ one: is too short (minimum is 1 character)
138
+ other: is too short (minimum is %{count} characters)
139
+ wrong_length:
140
+ one: is the wrong length (should be 1 character)
141
+ other: is the wrong length (should be %{count} characters)
142
+ template:
143
+ body: 'There were problems with the following fields:'
144
+ header:
145
+ one: 1 error prohibited this %{model} from being saved
146
+ other: "%{count} errors prohibited this %{model} from being saved"
147
+ helpers:
148
+ select:
149
+ prompt: Please select
150
+ submit:
151
+ create: Create %{model}
152
+ submit: Save %{model}
153
+ update: Update %{model}
154
+ number:
155
+ currency:
156
+ format:
157
+ delimiter: ","
158
+ format: "%u%n"
159
+ precision: 2
160
+ separator: "."
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ unit: "$"
164
+ format:
165
+ delimiter: ","
166
+ precision: 3
167
+ separator: "."
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ human:
171
+ decimal_units:
172
+ format: "%n %u"
173
+ units:
174
+ billion: Billion
175
+ million: Million
176
+ quadrillion: Quadrillion
177
+ thousand: Thousand
178
+ trillion: Trillion
179
+ unit: ''
180
+ format:
181
+ delimiter: ''
182
+ precision: 3
183
+ significant: true
184
+ strip_insignificant_zeros: true
185
+ storage_units:
186
+ format: "%n %u"
187
+ units:
188
+ byte:
189
+ one: Byte
190
+ other: Bytes
191
+ eb: EB
192
+ gb: GB
193
+ kb: KB
194
+ mb: MB
195
+ pb: PB
196
+ tb: TB
197
+ percentage:
198
+ format:
199
+ delimiter: ''
200
+ format: "%n%"
201
+ precision:
202
+ format:
203
+ delimiter: ''
204
+ support:
205
+ array:
206
+ last_word_connector: ", and "
207
+ two_words_connector: " and "
208
+ words_connector: ", "
209
+ time:
210
+ am: am
211
+ formats:
212
+ default: "%a, %d %b %Y %H:%M:%S %z"
213
+ long: "%B %d, %Y %H:%M"
214
+ short: "%d %b %H:%M"
215
+ pm: pm
data/config/routes.rb ADDED
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ Auctify::Engine.routes.draw do
4
+ namespace :auctify do
5
+ resources :bids
6
+ resources :bidder_registrations
7
+ resources :sales
8
+
9
+ namespace :api do
10
+ namespace :v1 do
11
+ resources :auctions do
12
+ member do
13
+ post :bids
14
+ end
15
+ end
16
+
17
+ namespace :console do
18
+ resources :bids, only: %i[destroy]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end