---
title: DB Schema (Payment Relate)
tags: v1
---
[ToC]
## Requirement
* 帳戶可折抵額度
* 設計 DB Schema
* 每一張 Promotion code
* 會有輸入到系統的期限
* 或永久可用
* > Ivan 要去問 MKT 玩法 [name=Joe]
* 會走到付款的流程有哪些
* 第一次綁定信用卡
* 一元驗證:先扣 0.1 美元,再立即刷退
* 每月一號自動扣款
* 「每月一號」是指哪個時區的時間?
* > 提議使用 UTC +0 [name=Ivan], 需研究 survey 其他家一般怎麼做的
* 扣掉前一個月的使用費
* 計算並推薦哪一個 plan 對消費者最划算
* 計算使用費的加總,要有各項費用指標,例如:上鏈次數、App 數量
* 固定日期月結,公司處理這件事情的成本也會相對低
* 行銷預算也比較好預估
* LTV, lifetime value, 顧客終身價值
* 假設在四月的 LTV 是 30萬,行銷預算定 20%,代表我們就有 6 萬可以拿來用
* 每月一號自動扣款失敗後,使用者要有地方能夠補付款
* > Question: 要在哪裡付款?動線設計?[name=Joe]
* Promotion Code 在哪裡使用?
* 「方案」要在哪一個步驟選擇?
* 「方案」可以隨時改變嗎?
* 可以在下個月改變,不能在一個月(計價區間中)隨時改變
* 費用如何計算?精確到秒
* 如何確保秒級的計算是正確無誤的?
* App 的留存、Enable/Disable,與收費的關係為何?User 使用 FiO 現有計價方式的服務時可能會遇到的問題
* 訂閱了 App、也 Enable,消費者表示:被收費是合理的
* 訂閱了 App、但 Disable,消費者表示:被收很小的費是合理的,但不應該收很多錢
* 訂閱了 App、但消費者要把該 App 刪除,消費者表示:區塊鏈上的資料可以刪除?既然要在 FiO 看不到這個 App 也看不到資料,FiO 不應該跟我收很多錢
* User 如何自己去鏈上查資料?
* Step-by-Step 包含解密,教 User 使用
* 使用者可以封存 FiO App / User can archive FiO App
* 刪除需要手續費用
* 因為要把加密資料的 key 刪除,我們為了要讓大家不能存取資料,所以在上鏈之前會加密,以提供刪除資料時可以讓大家都無法存取的服務
* 在使用條款要說明
* 使用者需求
* App 被建立後,就會一直是 Enable 的狀態。Archive 之前,要先 Disable App 是合理的!
* Disable App 不能夠被收費!
* > 被 Disable 的 App,過一段時間要自動被 Archive 嗎? [name=Joe]
* Disable App 可以被 Enable
* Disable App 不能被收費
* 再次 Enable 的條件及規則
* 要填寫申請單
* 30 天內自動 Archive
* 三十天後悔期之中,要提醒 user:你有停用中的 App 即將要被 Archive
* Archive 的 App 也能夠匯出資料
* Archive 的 App 才能被 Delete
* Archive 的 App 經過 user 同意,可以被轉賣+分潤
* Archive 的 App
* 系統有能力可以計算出 App 總花費成本是多少
* > Billing 頁面即可顯示收費明細 [name=Ivan]
* Promotion code 對 user 的意義
* 贈送帳戶使用額度 n 美元
* 贈送帳戶使用額度 n 美元 限 m 個月內使用完畢
* 推薦朋友,朋友付款第一次帳單,就會(返利)受贈 n 美元
* 針對 App 的 prmotion code
* Promotion code 的限制條件可能為:
* 使用人數
* 僅限未欠款的人
* 要限制帳戶的總使用額度上限
* 每個月的付款,只能使用一張 Promotion code
* 如該額度沒使用完,下期帳單可繼續使用
* 會員信用卡付款
* 持續檢查信用卡是否能用
* 信用卡快到期,通知會員
* promotion for brand or sub-brand
* brand_id
* promotion for specific FiO App
* fio_id
* Promotion bind user email
* 通常是線下活動或是線上填表而收集到的 email,要給他們指定的優惠
* fields
* email, custom_type, used_datetime, expired_datetime, memo
* Referral Code
* 每個會員都有自己的推薦代碼,可以邀請別人而獲得優惠
## Brand
* name
* created_datetime
* updated_datetime
## Pricing Plan
將 FiO 的費用方案放進這張表,不需要儲存多餘的資訊
* name(unique)
* months
* Data Type: Int
* Value of: [1, 3, 6, 12]
* price
* disabled
* created_datetime
* updated_datetime
* deleted_datetime
* hidden_datetime
## Promotion Code
使用的前提:正常繳款且欠款的人
### Fields
* name(unique)
* Data Type: String
* Descrtipon: Promotion name
* code
* Data Type: String
* Descrtipon: promotion code
* discount
* Data Type: Float
* Descrtipon: discount amount for USD
* disabled
* Data Type: Int
* Value of: [0, 1]
* 0: Enable
* 1: Disable
* limit_usage_count
* Data Type: Int
* limit_pricing_plan_id
* Data Type: Int
* Value of: [0, 1]
* START UP-I
* ADVANCE PLAN
* ENTERPRISE PLAN
* memo
* Data Type: String
* created_datetime
* Data Type: DateTime(`ISO 8601`)
* updated_datetime
* deleted_datetime
* hidden_datetime
## Referral Code
使用情境:每個會員都有自己的推薦代碼,可以邀請別人而獲得優惠
* code
* user_id
* updated_datetime
* deleted_datetime