2 # This file is auto-generated from the current state of the database. Instead
3 # of editing this file, please use the migrations feature of Active Record to
4 # incrementally modify your database, and then regenerate this schema definition.
6 # Note that this schema.rb definition is the authoritative source for your
7 # database schema. If you need to create the application database on another
8 # system, you should be using db:schema:load, not running all the migrations
9 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 # you'll amass, the slower it'll run and the greater likelihood for issues).
12 # It's strongly recommended that you check this file into your version control system.
14 ActiveRecord::Schema.define(version: 20170225191425) do
16 create_table "access", id: false, force: :cascade do |t|
17 t.integer "id_user", limit: 4, default: 0, null: false
18 t.string "name", limit: 32, default: "", null: false
22 create_table "comment", force: :cascade do |t|
23 t.integer "id_user", limit: 4, null: false
24 t.integer "date", limit: 4, null: false
25 t.string "title", limit: 255, null: false
26 t.text "comment", limit: 16777215
29 create_table "dividend", force: :cascade do |t|
30 t.integer "id_security", limit: 4, null: false
31 t.integer "exdate", limit: 4, null: false
32 t.float "paid", limit: 24, default: 0.0, null: false
33 t.integer "id_position", limit: 4, default: 0, null: false
34 t.integer "id_order", limit: 4, default: 0, null: false
37 create_table "document", force: :cascade do |t|
38 t.integer "id_user", limit: 4, null: false
39 t.string "mimetype", limit: 50, null: false
40 t.string "filename", limit: 255, null: false
41 t.integer "size", limit: 4, null: false
42 t.integer "date_upload", limit: 4, null: false
43 t.text "comment", limit: 65535
46 create_table "document_assign", primary_key: "id_document", force: :cascade do |t|
47 t.integer "id_portfolio", limit: 4
48 t.integer "id_position", limit: 4
49 t.integer "id_order", limit: 4
50 t.integer "id_security", limit: 4
51 t.boolean "is_assigned"
54 add_index "document_assign", ["id_document"], name: "id_document", unique: true, using: :btree
56 create_table "document_data", primary_key: "id_document", force: :cascade do |t|
57 t.binary "content", limit: 16777215, null: false
60 add_index "document_data", ["id_document"], name: "id_document", unique: true, using: :btree
62 create_table "figure_data", force: :cascade do |t|
63 t.integer "id_figure_var", limit: 4, null: false
64 t.integer "id_security", limit: 4, null: false
65 t.integer "date", limit: 4, null: false
66 t.string "period", limit: 25, null: false
67 t.string "analyst", limit: 255
68 t.float "value", limit: 24, null: false
69 t.boolean "is_expected"
70 t.boolean "is_audited"
71 t.text "comment", limit: 65535
74 create_table "figure_var", force: :cascade do |t|
75 t.integer "id_user", limit: 4, default: 0, null: false
76 t.string "name", limit: 255, null: false
77 t.string "unit", limit: 3
78 t.text "expression", limit: 16777215
79 t.text "comment", limit: 65535
82 create_table "news", id: false, force: :cascade do |t|
83 t.integer "id_user", limit: 4, default: 0, null: false
84 t.integer "id_news_feed", limit: 4, default: 0, null: false
85 t.boolean "is_subscribed", default: false, null: false
88 create_table "news_assign", id: false, force: :cascade do |t|
89 t.integer "id_news_item", limit: 4, default: 0, null: false
90 t.integer "id_position", limit: 4, default: 0, null: false
91 t.boolean "is_assigned"
94 add_index "news_assign", ["id_news_item", "id_position"], name: "NID", unique: true, using: :btree
96 create_table "news_feed", force: :cascade do |t|
97 t.string "url", limit: 255
98 t.boolean "fetch_feed", default: true
99 t.integer "last_fetched", limit: 4, default: 0
100 t.string "title", limit: 255
101 t.string "link", limit: 255
102 t.text "description", limit: 65535
103 t.string "language", limit: 10
104 t.integer "ttl", limit: 4
105 t.string "copyright", limit: 255
106 t.integer "count_total", limit: 4, null: false
109 create_table "news_item", force: :cascade do |t|
110 t.integer "id_news_feed", limit: 4, default: 0, null: false
111 t.string "identifier", limit: 255, null: false
112 t.string "identifier_method", limit: 0, null: false
113 t.integer "fetched", limit: 4, null: false
114 t.string "title", limit: 255
115 t.string "link", limit: 255
116 t.text "description", limit: 65535
117 t.string "pubDate", limit: 50
120 create_table "news_read", id: false, force: :cascade do |t|
121 t.integer "id_news_feed", limit: 4, null: false
122 t.integer "id_user", limit: 4, null: false
123 t.integer "lastread", limit: 4
124 t.integer "count_notread", limit: 4, null: false
127 create_table "order", force: :cascade do |t|
128 t.integer "id_position", limit: 4, null: false
129 t.integer "issued", limit: 4, default: 0, null: false
130 t.integer "expire", limit: 4, default: 0, null: false
131 t.string "type", limit: 10, default: "buy", null: false
132 t.float "shares", limit: 24, default: 0.0, null: false
133 t.float "limit", limit: 24, default: 0.0, null: false
134 t.string "addon", limit: 10, default: "none", null: false
135 t.string "exchange", limit: 25
136 t.float "quote", limit: 24, default: 0.0, null: false
137 t.float "provision", limit: 24, default: 0.0
138 t.float "courtage", limit: 24, default: 0.0
139 t.float "expense", limit: 24, default: 0.0
140 t.text "comment", limit: 16777215
141 t.boolean "is_canceled"
142 t.integer "triggered_by_order", limit: 4
143 t.float "accrued_interest", limit: 24, default: 0.0, null: false
146 create_table "organization", force: :cascade do |t|
147 t.string "name", limit: 255, null: false
148 t.string "url", limit: 255
149 t.string "contact_email", limit: 255
150 t.text "description", limit: 65535
153 create_table "portfolio", force: :cascade do |t|
154 t.integer "id_user", limit: 4, null: false
155 t.string "name", limit: 255, null: false
156 t.string "type", limit: 0, null: false
157 t.integer "date_created", limit: 4, null: false
158 t.float "taxallowance", limit: 24, default: 0.0
159 t.integer "order", limit: 1, default: 0
160 t.text "comment", limit: 65535
163 create_table "position", force: :cascade do |t|
164 t.integer "id_portfolio", limit: 4, null: false
165 t.integer "id_security", limit: 4, null: false
166 t.integer "closed", limit: 4, default: 0
167 t.text "comment", limit: 65535, null: false
168 t.integer "date_record_created", limit: 4, default: 0, null: false
171 create_table "position_revision", force: :cascade do |t|
172 t.integer "id_order", limit: 4, null: false
173 t.integer "id_position", limit: 4, null: false
174 t.integer "date", limit: 4, default: 0, null: false
175 t.float "shares", limit: 24, default: 0.0, null: false
176 t.float "invested", limit: 24, default: 0.0, null: false
177 t.integer "type", limit: 4, default: 0, null: false
180 create_table "quote", force: :cascade do |t|
181 t.integer "id_security", limit: 4, default: 0, null: false
182 t.integer "date", limit: 4, default: 0, null: false
183 t.float "quote", limit: 24, default: 0.0, null: false
184 t.float "low", limit: 24, default: 0.0
185 t.float "high", limit: 24, default: 0.0
186 t.integer "volume", limit: 4
187 t.string "exchange", limit: 50
190 create_table "quoterecord", force: :cascade do |t|
191 t.integer "id_user", limit: 4, null: false
192 t.integer "id_security", limit: 4, null: false
193 t.integer "id_quote", limit: 4, null: false
194 t.integer "created", limit: 4, null: false
195 t.string "column", limit: 25, null: false
196 t.text "comment", limit: 65535
197 t.boolean "is_pivotal_point"
198 t.boolean "is_signal"
200 t.boolean "is_downhit"
203 create_table "quoterecord_rule", force: :cascade do |t|
204 t.integer "id_user", limit: 4, null: false
205 t.integer "last_modified", limit: 4
206 t.integer "order", limit: 4
207 t.string "related_columns", limit: 255
208 t.string "name", limit: 255, null: false
209 t.text "rule", limit: 65535
212 create_table "quoterecord_threshold", force: :cascade do |t|
213 t.integer "id_user", limit: 4, null: false
214 t.integer "id_security", limit: 4, null: false
215 t.float "quote_sensitivity", limit: 24, default: 0.0
216 t.float "hit_sensitivity", limit: 24, default: 0.0
219 create_table "security", force: :cascade do |t|
220 t.boolean "fetch_quote", default: true
221 t.string "symbol", limit: 32
222 t.string "brief", limit: 255, default: "--", null: false
223 t.string "url", limit: 255
224 t.text "description", limit: 65535
225 t.integer "id_organization", limit: 4, default: 1, null: false
226 t.decimal "collateral_coverage_ratio", precision: 2, default: 0, null: false
227 t.integer "id_security_bond", limit: 4, default: 0, null: false
228 t.integer "id_security_fund", limit: 4, default: 0, null: false
229 t.integer "id_security_stock", limit: 4, default: 0, null: false
230 t.integer "id_security_metal", limit: 4, default: 0, null: false
231 t.integer "id_security_derivative", limit: 4, default: 0, null: false
232 t.integer "id_security_index", limit: 4, default: 0, null: false
233 t.string "preferred_reaper", limit: 255
234 t.integer "preferred_reaper_fail_count", limit: 4, default: 0, null: false
235 t.boolean "preferred_reaper_locked", default: false
236 t.integer "preferred_reaper_delay", limit: 4, default: 0, null: false
237 t.string "trading_ceased_reason", limit: 32
238 t.integer "trading_ceased_date", limit: 8, default: 0, null: false
241 add_index "security", ["id_organization"], name: "fk_rails_79816ed41e", using: :btree
243 create_table "security_bond", force: :cascade do |t|
244 t.integer "type", limit: 4, default: 0, null: false
245 t.integer "interest_method", limit: 4, default: 0, null: false
246 t.integer "denomination", limit: 4, default: 1000, null: false
247 t.string "currency", limit: 255
248 t.float "coupon", limit: 24, default: 0.0, null: false
249 t.integer "coupon_interval", limit: 4, default: 12, null: false
250 t.float "redemption_price", limit: 24, default: 100.0, null: false
251 t.integer "redemption_installments", limit: 4, default: 0, null: false
252 t.integer "redemption_interval", limit: 4, default: 12, null: false
253 t.integer "date_maturity", limit: 8, default: 0, null: false
254 t.integer "date_first_coupon", limit: 8, default: 0, null: false
255 t.integer "date_last_coupon", limit: 8, default: 0, null: false
256 t.boolean "is_subordinated", default: false
257 t.boolean "is_callable", default: false
258 t.boolean "is_stepup", default: false
259 t.boolean "is_stepdown", default: false
260 t.text "comment", limit: 65535
261 t.integer "date_issue", limit: 8, default: 0, null: false
262 t.integer "date_first_call", limit: 8, default: 0, null: false
263 t.float "call_price", limit: 24, default: 0.0, null: false
264 t.integer "call_interval", limit: 4, default: 0, null: false
265 t.integer "call_notify_deadline", limit: 4, default: 0, null: false
266 t.integer "issue_size", limit: 8, default: 0, null: false
269 create_table "security_derivative", force: :cascade do |t|
270 t.integer "type", limit: 4, default: 0, null: false
271 t.integer "direction", limit: 4, default: 0, null: false
272 t.integer "date_inception", limit: 8, default: 0, null: false
273 t.integer "date_end", limit: 8, default: 0, null: false
274 t.float "strike_price", limit: 24, default: 0.0, null: false
275 t.float "subscription_ratio", limit: 24, default: 1.0, null: false
276 t.boolean "is_leveraged", default: false
277 t.boolean "is_knock_out", default: false
278 t.text "comment", limit: 65535
279 t.integer "id_security_underlying", limit: 4, default: 0, null: false
280 t.boolean "is_dead", default: false
283 create_table "security_fund", force: :cascade do |t|
284 t.integer "type", limit: 4, default: 0, null: false
285 t.string "currency", limit: 255
286 t.string "tranche", limit: 255
287 t.integer "date_inception", limit: 8, default: 0, null: false
288 t.integer "date_fiscalyearend", limit: 8, default: 0, null: false
289 t.integer "investment_minimum", limit: 4, default: 0, null: false
290 t.boolean "is_synthetic", default: false
291 t.float "distribution", limit: 24, default: 0.0, null: false
292 t.integer "distribution_interval", limit: 4, default: 12, null: false
293 t.integer "date_distribution", limit: 8, default: 0, null: false
294 t.boolean "is_retaining_profits", default: false
295 t.integer "redemption_period", limit: 4, default: 5, null: false
296 t.float "redemption_fee", limit: 24, default: 0.0
297 t.float "issue_surcharge", limit: 24, default: 0.0, null: false
298 t.float "management_fee", limit: 24, default: 0.0, null: false
299 t.text "comment", limit: 65535
302 create_table "security_index", force: :cascade do |t|
303 t.text "comment", limit: 65535
306 create_table "security_metal", force: :cascade do |t|
307 t.integer "type", limit: 4, default: 0, null: false
308 t.string "unit", limit: 255
309 t.text "comment", limit: 65535
312 create_table "security_stock", force: :cascade do |t|
313 t.integer "type", limit: 4, default: 0, null: false
314 t.float "dividend", limit: 24, default: 0.0, null: false
315 t.integer "dividend_interval", limit: 4, default: 12, null: false
316 t.integer "dividend_exdate", limit: 8, default: 0, null: false
317 t.text "comment", limit: 65535
320 create_table "setting", force: :cascade do |t|
321 t.integer "id_user", limit: 4, default: 0, null: false
322 t.string "type", limit: 10, default: "plugin", null: false
323 t.string "name", limit: 32
324 t.string "var", limit: 32
325 t.string "value", limit: 255
328 create_table "split", force: :cascade do |t|
329 t.integer "id_security", limit: 4, null: false
330 t.integer "date", limit: 4, null: false
331 t.string "ratio", limit: 11, null: false
332 t.text "comment", limit: 16777215
335 add_index "split", ["id_security", "date"], name: "SID", unique: true, using: :btree
337 create_table "timetag", force: :cascade do |t|
338 t.integer "id_user", limit: 4, null: false
339 t.string "title", limit: 255, null: false
340 t.text "description", limit: 65535, null: false
341 t.integer "start", limit: 4, null: false
342 t.integer "end", limit: 4, null: false
345 create_table "user", force: :cascade do |t|
346 t.string "login", limit: 10, null: false
347 t.boolean "is_admin", default: false, null: false
348 t.string "fullname", limit: 255
349 t.string "email", limit: 50
350 t.text "comment", limit: 16777215
351 t.string "password_digest", limit: 255
352 t.string "password_auth_token", limit: 255
353 t.string "password_reset_token", limit: 255
354 t.datetime "password_reset_sent"
357 create_table "user_session", force: :cascade do |t|
358 t.string "session_id", limit: 255, null: false
359 t.text "data", limit: 65535
360 t.datetime "created_at"
361 t.datetime "updated_at"
364 add_index "user_session", ["session_id"], name: "index_user_session_on_session_id", unique: true, using: :btree
365 add_index "user_session", ["updated_at"], name: "index_user_session_on_updated_at", using: :btree
367 create_table "version", id: false, force: :cascade do |t|
368 t.integer "version", limit: 1
371 add_foreign_key "security", "organization", column: "id_organization"