1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-14 02:42:40 +01:00
phorge-phorge/resources/sql/autopatches/20141004.currency.04.sql
epriestley f86f9dc512 Make Currency a more formal type
Summary:
Ref T2787. Phortune currently stores a bunch of stuff as `...inUSDCents`. This ends up being pretty cumbersome and I worry it will create a huge headache down the road (and possibly not that far off if we do Coinbase/Bitcoin soon). Even now, it's more of a pain than I figured it would be.

Instead:

  - Provide an application-level serialization mechanism.
  - Provide currency serialization.
  - Store currency in an abstract way (currently, as "1.23 USD") that can handle currencies in the future.
  - Change all `...inUSDCents` to `..asCurrency`.
  - This generally simplifies all the application code.
  - Also remove some columns which don't make sense or don't make sense anymore. Notably, `Product` is going to get more abstract and mostly be provided by applications.

Test Plan:
  - Created a new product.
  - Purchased a product.
  - Backed an initiative.
  - Ran unit tests.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T2787

Differential Revision: https://secure.phabricator.com/D10633
2014-10-06 10:26:48 -07:00

13 lines
407 B
SQL

TRUNCATE {$NAMESPACE}_phortune.phortune_product;
ALTER TABLE {$NAMESPACE}_phortune.phortune_product
DROP status;
ALTER TABLE {$NAMESPACE}_phortune.phortune_product
DROP billingIntervalInMonths;
ALTER TABLE {$NAMESPACE}_phortune.phortune_product
DROP trialPeriodInDays;
ALTER TABLE {$NAMESPACE}_phortune.phortune_product
CHANGE priceInCents priceAsCurrency VARCHAR(64) NOT NULL collate utf8_bin;