diff --git a/backend/api.REMOVED.git-id b/backend/api.REMOVED.git-id index d712500..e74278f 100644 --- a/backend/api.REMOVED.git-id +++ b/backend/api.REMOVED.git-id @@ -1 +1 @@ -0f071d9562071fd2675056977b38edd69dcd66fe \ No newline at end of file +2aa21deab73854398ee7954e2ad3bfb7452bbac0 \ No newline at end of file diff --git a/backend/go.sum b/backend/go.sum index af7e7ff..f1be64c 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -511,6 +511,8 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -536,6 +538,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= @@ -607,7 +611,10 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/backend/internal/data/ent/group/group.go b/backend/internal/data/ent/group/group.go index 365fedc..5d949ea 100644 --- a/backend/internal/data/ent/group/group.go +++ b/backend/internal/data/ent/group/group.go @@ -131,24 +131,36 @@ const DefaultCurrency = CurrencyUsd // Currency values. const ( - CurrencyUsd Currency = "usd" + CurrencyAed Currency = "aed" + CurrencyAud Currency = "aud" + CurrencyBgn Currency = "bgn" + CurrencyBrl Currency = "brl" + CurrencyCad Currency = "cad" + CurrencyChf Currency = "chf" + CurrencyCny Currency = "cny" + CurrencyCzk Currency = "czk" + CurrencyDkk Currency = "dkk" CurrencyEur Currency = "eur" CurrencyGbp Currency = "gbp" + CurrencyHkd Currency = "hkd" + CurrencyIdr Currency = "idr" + CurrencyInr Currency = "inr" CurrencyJpy Currency = "jpy" - CurrencyZar Currency = "zar" - CurrencyAud Currency = "aud" + CurrencyKrw Currency = "krw" + CurrencyMxn Currency = "mxn" CurrencyNok Currency = "nok" CurrencyNzd Currency = "nzd" - CurrencySek Currency = "sek" - CurrencyDkk Currency = "dkk" - CurrencyInr Currency = "inr" - CurrencyRmb Currency = "rmb" - CurrencyBgn Currency = "bgn" - CurrencyChf Currency = "chf" CurrencyPln Currency = "pln" - CurrencyTry Currency = "try" + CurrencyRmb Currency = "rmb" CurrencyRon Currency = "ron" - CurrencyCzk Currency = "czk" + CurrencyRub Currency = "rub" + CurrencySar Currency = "sar" + CurrencySek Currency = "sek" + CurrencySgd Currency = "sgd" + CurrencyThb Currency = "thb" + CurrencyTry Currency = "try" + CurrencyUsd Currency = "usd" + CurrencyZar Currency = "zar" ) func (c Currency) String() string { @@ -158,7 +170,7 @@ func (c Currency) String() string { // CurrencyValidator is a validator for the "currency" field enum values. It is called by the builders before save. func CurrencyValidator(c Currency) error { switch c { - case CurrencyUsd, CurrencyEur, CurrencyGbp, CurrencyJpy, CurrencyZar, CurrencyAud, CurrencyNok, CurrencyNzd, CurrencySek, CurrencyDkk, CurrencyInr, CurrencyRmb, CurrencyBgn, CurrencyChf, CurrencyPln, CurrencyTry, CurrencyRon, CurrencyCzk: + case CurrencyAed, CurrencyAud, CurrencyBgn, CurrencyBrl, CurrencyCad, CurrencyChf, CurrencyCny, CurrencyCzk, CurrencyDkk, CurrencyEur, CurrencyGbp, CurrencyHkd, CurrencyIdr, CurrencyInr, CurrencyJpy, CurrencyKrw, CurrencyMxn, CurrencyNok, CurrencyNzd, CurrencyPln, CurrencyRmb, CurrencyRon, CurrencyRub, CurrencySar, CurrencySek, CurrencySgd, CurrencyThb, CurrencyTry, CurrencyUsd, CurrencyZar: return nil default: return fmt.Errorf("group: invalid enum value for currency field: %q", c) diff --git a/backend/internal/data/ent/migrate/schema.go b/backend/internal/data/ent/migrate/schema.go index 0d11507..7d77d7d 100644 --- a/backend/internal/data/ent/migrate/schema.go +++ b/backend/internal/data/ent/migrate/schema.go @@ -116,7 +116,7 @@ var ( {Name: "created_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime}, {Name: "name", Type: field.TypeString, Size: 255}, - {Name: "currency", Type: field.TypeEnum, Enums: []string{"usd", "eur", "gbp", "jpy", "zar", "aud", "nok", "nzd", "sek", "dkk", "inr", "rmb", "bgn", "chf", "pln", "try", "ron", "czk"}, Default: "usd"}, + {Name: "currency", Type: field.TypeEnum, Enums: []string{"aed", "aud", "bgn", "brl", "cad", "chf", "cny", "czk", "dkk", "eur", "gbp", "hkd", "idr", "inr", "jpy", "krw", "mxn", "nok", "nzd", "pln", "rmb", "ron", "rub", "sar", "sek", "sgd", "thb", "try", "usd", "zar"}, Default: "usd"}, } // GroupsTable holds the schema information for the "groups" table. GroupsTable = &schema.Table{ diff --git a/backend/internal/data/ent/schema/group.go b/backend/internal/data/ent/schema/group.go index 0d143a3..494882c 100644 --- a/backend/internal/data/ent/schema/group.go +++ b/backend/internal/data/ent/schema/group.go @@ -29,7 +29,37 @@ func (Group) Fields() []ent.Field { NotEmpty(), field.Enum("currency"). Default("usd"). - Values("usd", "eur", "gbp", "jpy", "zar", "aud", "nok", "nzd", "sek", "dkk", "inr", "rmb", "bgn", "chf", "pln", "try", "ron", "czk"), + Values( + "aed", + "aud", + "bgn", + "brl", + "cad", + "chf", + "czk", + "dkk", + "eur", + "gbp", + "hkd", + "idr", + "inr", + "jpy", + "krw", + "mxn", + "nok", + "nzd", + "pln", + "rmb", + "ron", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "usd", + "zar", + ), } } @@ -70,7 +100,6 @@ func (g GroupMixin) Fields() []ent.Field { } return nil - } func (g GroupMixin) Edges() []ent.Edge { diff --git a/frontend/lib/data/currency.ts b/frontend/lib/data/currency.ts index 90b56fb..236fe9f 100644 --- a/frontend/lib/data/currency.ts +++ b/frontend/lib/data/currency.ts @@ -1,19 +1,30 @@ export type Codes = + | "AED" | "AUD" | "BGN" + | "BRL" + | "CAD" | "CHF" | "CZK" | "DKK" | "EUR" | "GBP" + | "HKD" + | "IDR" | "INR" | "JPY" + | "KRW" + | "MXN" | "NOK" | "NZD" | "PLN" | "RMB" + | "RUB" | "RON" + | "SAR" | "SEK" + | "SGD" + | "THB" | "TRY" | "USD" | "ZAR"; @@ -26,112 +37,33 @@ export type Currency = { }; export const currencies: Currency[] = [ - { - code: "AUD", - local: "en-AU", - symbol: "$", - name: "Australian Dollar", - }, - { - code: "GBP", - local: "en-GB", - symbol: "£", - name: "British Pound", - }, - { - code: "RMB", - local: "zh-CN", - symbol: "¥", - name: "Chinese Yuan", - }, - { - code: "DKK", - local: "da-DK", - symbol: "kr", - name: "Danish Krone", - }, - { - code: "EUR", - local: "de-DE", - symbol: "€", - name: "Euro", - }, - { - code: "INR", - local: "en-IN", - symbol: "₹", - name: "Indian Rupee", - }, - { - code: "JPY", - local: "ja-JP", - symbol: "¥", - name: "Japanese Yen", - }, - { - code: "NOK", - local: "nb-NO", - symbol: "kr", - name: "Norwegian Krone", - }, - { - code: "NZD", - local: "en-NZ", - symbol: "NZ$", - name: "New Zealand Dollar", - }, - { - code: "PLN", - local: "pl-PL", - symbol: "zł", - name: "Polish Zloty", - }, - { - code: "RON", - local: "ro-RO", - symbol: "lei", - name: "Romanian Leu", - }, - { - code: "ZAR", - local: "en-ZA", - symbol: "R", - name: "South African Rand", - }, - { - code: "SEK", - local: "sv-SE", - symbol: "kr", - name: "Swedish Krona", - }, - { - code: "TRY", - local: "tr-TR", - symbol: "₺", - name: "Turkish Lira", - }, - { - code: "USD", - local: "en-US", - symbol: "$", - name: "US Dollar", - }, - { - code: "BGN", - local: "bg-BG", - symbol: "lv", - name: "Bulgarian lev", - }, - { - code: "CHF", - local: "de-CH", - symbol: "chf", - name: "Swiss Francs", - }, - { - code: "CZK", - local: "cs-CZ", - symbol: "Kč", - name: "Czech Koruna", - }, + { code: "AED", local: "United Arab Emirates", symbol: "د.إ", name: "United Arab Emirates Dirham" }, + { code: "AUD", local: "Australia", symbol: "A$", name: "Australian Dollar" }, + { code: "BGN", local: "bg-BG", symbol: "lv", name: "Bulgarian lev" }, + { code: "BRL", local: "Brazil", symbol: "R$", name: "Brazilian Real" }, + { code: "CAD", local: "Canada", symbol: "C$", name: "Canadian Dollar" }, + { code: "CHF", local: "Switzerland", symbol: "CHF", name: "Swiss Franc" }, + { code: "CZK", local: "cs-CZ", symbol: "Kč", name: "Czech Koruna" }, + { code: "DKK", local: "da-DK", symbol: "kr", name: "Danish Krone" }, + { code: "EUR", local: "Eurozone", symbol: "€", name: "Euro" }, + { code: "GBP", local: "United Kingdom", symbol: "£", name: "British Pound Sterling" }, + { code: "HKD", local: "Hong Kong", symbol: "HK$", name: "Hong Kong Dollar" }, + { code: "IDR", local: "Indonesia", symbol: "Rp", name: "Indonesian Rupiah" }, + { code: "INR", local: "India", symbol: "₹", name: "Indian Rupee" }, + { code: "JPY", local: "Japan", symbol: "¥", name: "Japanese Yen" }, + { code: "KRW", local: "South Korea", symbol: "₩", name: "South Korean Won" }, + { code: "MXN", local: "Mexico", symbol: "Mex$", name: "Mexican Peso" }, + { code: "NOK", local: "Norway", symbol: "kr", name: "Norwegian Krone" }, + { code: "NZD", local: "New Zealand", symbol: "NZ$", name: "New Zealand Dollar" }, + { code: "PLN", local: "Poland", symbol: "zł", name: "Polish Zloty" }, + { code: "RMB", local: "zh-CN", symbol: "¥", name: "Chinese Yuan" }, + { code: "RON", local: "ro-RO", symbol: "lei", name: "Romanian Leu" }, + { code: "RUB", local: "Russia", symbol: "₽", name: "Russian Ruble" }, + { code: "SAR", local: "Saudi Arabia", symbol: "﷼", name: "Saudi Riyal" }, + { code: "SEK", local: "Sweden", symbol: "kr", name: "Swedish Krona" }, + { code: "SGD", local: "Singapore", symbol: "S$", name: "Singapore Dollar" }, + { code: "THB", local: "Thailand", symbol: "฿", name: "Thai Baht" }, + { code: "TRY", local: "Turkey", symbol: "₺", name: "Turkish Lira" }, + { code: "USD", local: "United States", symbol: "$", name: "United States Dollar" }, + { code: "ZAR", local: "South Africa", symbol: "R", name: "South African Rand" }, ];