mirror of
https://github.com/we-promise/sure.git
synced 2026-04-19 12:04:08 +00:00
Lunchflow integration (#259)
* First pass lunch flow * Fixes - Fix apikey not being saved properly due to provider no reload support - Fix proper messages if we try to link existing accounts. * Fix better error handling * Filter existing transactions and skip duplicates * FIX messaging * Branding :) * Fix XSS and linter * FIX provider concern - also fix code duplication * FIX md5 digest * Updated determine_sync_start_date to be account-aware * Review fixes * Broaden error catch to not crash UI * Fix buttons styling * FIX process account error handling * FIX account cap and url parsing * Lunch Flow brand * Found orphan i18n strings * Remove per conversation with @sokie --------- Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
This commit is contained in:
23
db/migrate/20251029135200_create_lunchflow_items.rb
Normal file
23
db/migrate/20251029135200_create_lunchflow_items.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
class CreateLunchflowItems < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
create_table :lunchflow_items, id: :uuid do |t|
|
||||
t.references :family, null: false, foreign_key: true, type: :uuid
|
||||
t.string :name
|
||||
t.string :institution_id
|
||||
t.string :institution_name
|
||||
t.string :institution_domain
|
||||
t.string :institution_url
|
||||
t.string :institution_color
|
||||
t.string :status, default: "good"
|
||||
t.boolean :scheduled_for_deletion, default: false
|
||||
t.boolean :pending_account_setup, default: false
|
||||
t.datetime :sync_start_date
|
||||
|
||||
t.index :status
|
||||
t.jsonb :raw_payload
|
||||
t.jsonb :raw_institution_payload
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
21
db/migrate/20251029135300_create_lunchflow_accounts.rb
Normal file
21
db/migrate/20251029135300_create_lunchflow_accounts.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
class CreateLunchflowAccounts < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
create_table :lunchflow_accounts, id: :uuid do |t|
|
||||
t.references :lunchflow_item, null: false, foreign_key: true, type: :uuid
|
||||
t.string :name
|
||||
t.string :account_id
|
||||
t.string :currency
|
||||
t.decimal :current_balance, precision: 19, scale: 4
|
||||
t.string :account_status
|
||||
t.string :provider
|
||||
|
||||
t.index :account_id
|
||||
t.string :account_type
|
||||
t.jsonb :institution_metadata
|
||||
t.jsonb :raw_payload
|
||||
t.jsonb :raw_transactions_payload
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
42
db/schema.rb
generated
42
db/schema.rb
generated
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.2].define(version: 2025_10_28_174016) do
|
||||
ActiveRecord::Schema[7.2].define(version: 2025_10_29_204447) do
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pgcrypto"
|
||||
enable_extension "plpgsql"
|
||||
@@ -465,6 +465,44 @@ ActiveRecord::Schema[7.2].define(version: 2025_10_28_174016) do
|
||||
t.string "subtype"
|
||||
end
|
||||
|
||||
create_table "lunchflow_accounts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
t.uuid "lunchflow_item_id", null: false
|
||||
t.string "name"
|
||||
t.string "account_id"
|
||||
t.string "currency"
|
||||
t.decimal "current_balance", precision: 19, scale: 4
|
||||
t.string "account_status"
|
||||
t.string "provider"
|
||||
t.string "account_type"
|
||||
t.jsonb "institution_metadata"
|
||||
t.jsonb "raw_payload"
|
||||
t.jsonb "raw_transactions_payload"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["account_id"], name: "index_lunchflow_accounts_on_account_id"
|
||||
t.index ["lunchflow_item_id"], name: "index_lunchflow_accounts_on_lunchflow_item_id"
|
||||
end
|
||||
|
||||
create_table "lunchflow_items", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
t.uuid "family_id", null: false
|
||||
t.string "name"
|
||||
t.string "institution_id"
|
||||
t.string "institution_name"
|
||||
t.string "institution_domain"
|
||||
t.string "institution_url"
|
||||
t.string "institution_color"
|
||||
t.string "status", default: "good"
|
||||
t.boolean "scheduled_for_deletion", default: false
|
||||
t.boolean "pending_account_setup", default: false
|
||||
t.datetime "sync_start_date"
|
||||
t.jsonb "raw_payload"
|
||||
t.jsonb "raw_institution_payload"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["family_id"], name: "index_lunchflow_items_on_family_id"
|
||||
t.index ["status"], name: "index_lunchflow_items_on_status"
|
||||
end
|
||||
|
||||
create_table "merchants", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
t.string "name", null: false
|
||||
t.string "color"
|
||||
@@ -960,6 +998,8 @@ ActiveRecord::Schema[7.2].define(version: 2025_10_28_174016) do
|
||||
add_foreign_key "invitations", "families"
|
||||
add_foreign_key "invitations", "users", column: "inviter_id"
|
||||
add_foreign_key "llm_usages", "families"
|
||||
add_foreign_key "lunchflow_accounts", "lunchflow_items"
|
||||
add_foreign_key "lunchflow_items", "families"
|
||||
add_foreign_key "merchants", "families"
|
||||
add_foreign_key "messages", "chats"
|
||||
add_foreign_key "mobile_devices", "users"
|
||||
|
||||
Reference in New Issue
Block a user