diff --git a/codegen/internal/generator/generator.go b/codegen/internal/generator/generator.go index 0b3e059..08f617c 100644 --- a/codegen/internal/generator/generator.go +++ b/codegen/internal/generator/generator.go @@ -812,6 +812,10 @@ func (g *Generator) resolveInlineSchemaType(schemaRef *base.SchemaProxy, require if schema == nil { return g.nullableType("JsonDocument", false, required), nil } + if len(schema.Enum) > 0 { + typeName := g.createInlineEnum(inlineBase, schema) + return g.nullableType(typeName, true, required), nil + } if schemaDefinesStructuredObject(schema) { typeName, err := g.createInlineModel(inlineBase, schema) if err != nil { @@ -864,6 +868,19 @@ func (g *Generator) createInlineModel(baseName string, schema *base.Schema) (str return typeName, nil } +func (g *Generator) createInlineEnum(baseName string, schema *base.Schema) string { + typeName := g.reserveModelName(baseName) + g.inlineModels = append(g.inlineModels, modelTemplateData{ + Namespace: g.config.Namespace, + Name: typeName, + Description: sanitizeText(schema.Description), + Kind: schemaKindEnum, + EnumValues: g.buildEnumValues(schema), + UsesCollections: false, + }) + return typeName +} + func (g *Generator) reserveModelName(base string) string { name := base index := 2 diff --git a/codegen/internal/generator/generator_test.go b/codegen/internal/generator/generator_test.go new file mode 100644 index 0000000..8453695 --- /dev/null +++ b/codegen/internal/generator/generator_test.go @@ -0,0 +1,120 @@ +package generator + +import ( + "testing" + + "github.com/pb33f/libopenapi" + v3 "github.com/pb33f/libopenapi/datamodel/high/v3" +) + +func TestBuildModels_GeneratesInlineEnumForLinksRelation(t *testing.T) { + const spec = `{ + "openapi": "3.0.3", + "info": { + "title": "test", + "version": "1.0.0" + }, + "paths": {}, + "components": { + "schemas": { + "TransactionsListResponse": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rel": { + "type": "string", + "enum": ["next", "previous"] + }, + "href": { + "type": "string" + } + }, + "required": ["rel", "href"] + } + } + } + } + } + } + }` + + doc := mustBuildV3Document(t, spec) + + g := New(Config{Namespace: "SumUp"}) + models, err := g.buildModels(doc) + if err != nil { + t.Fatalf("buildModels() error = %v", err) + } + + if len(models) != 1 { + t.Fatalf("buildModels() returned %d top-level models, want 1", len(models)) + } + + response := models[0] + if response.Name != "TransactionsListResponse" { + t.Fatalf("top-level model name = %q, want %q", response.Name, "TransactionsListResponse") + } + + if got := propertyType(response.Properties, "Links"); got != "IEnumerable?" { + t.Fatalf("Links property type = %q, want %q", got, "IEnumerable?") + } + + linkItem := findModel(t, g.inlineModels, "TransactionsListResponseLinksItem") + if got := propertyType(linkItem.Properties, "Rel"); got != "TransactionsListResponseLinksItemRel" { + t.Fatalf("Rel property type = %q, want %q", got, "TransactionsListResponseLinksItemRel") + } + + relEnum := findModel(t, g.inlineModels, "TransactionsListResponseLinksItemRel") + if relEnum.Kind != schemaKindEnum { + t.Fatalf("inline rel model kind = %v, want enum", relEnum.Kind) + } + if len(relEnum.EnumValues) != 2 { + t.Fatalf("inline rel enum values = %d, want 2", len(relEnum.EnumValues)) + } + if relEnum.EnumValues[0].Value != "next" || relEnum.EnumValues[1].Value != "previous" { + t.Fatalf("inline rel enum values = %#v, want next/previous", relEnum.EnumValues) + } +} + +func mustBuildV3Document(t *testing.T, raw string) *v3.Document { + t.Helper() + + document, err := libopenapi.NewDocument([]byte(raw)) + if err != nil { + t.Fatalf("NewDocument() error = %v", err) + } + + model, err := document.BuildV3Model() + if err != nil { + t.Fatalf("BuildV3Model() error = %v", err) + } + + return &model.Model +} + +func findModel(t *testing.T, models []modelTemplateData, name string) modelTemplateData { + t.Helper() + + for _, model := range models { + if model.Name == name { + return model + } + } + + t.Fatalf("model %q not found", name) + return modelTemplateData{} +} + +func propertyType(properties []modelPropertyTemplateData, name string) string { + for _, property := range properties { + if property.PropertyName == name { + return property.TypeName + } + } + + return "" +} diff --git a/src/SumUp.Tests/ReadersClientTests.cs b/src/SumUp.Tests/ReadersClientTests.cs index 95ba8a1..3db1f30 100644 --- a/src/SumUp.Tests/ReadersClientTests.cs +++ b/src/SumUp.Tests/ReadersClientTests.cs @@ -140,12 +140,12 @@ public async Task GetStatusAsync_SendsProperRequestAndParsesResponse() var statusData = statusResponse.Data!; Assert.Equal(82.5f, statusData.BatteryLevel); Assert.Equal(29, statusData.BatteryTemperature); - Assert.Equal("wifi", statusData.ConnectionType); + Assert.Equal(StatusResponseDataConnectionType.WiFi, statusData.ConnectionType); Assert.Equal("3.3.40", statusData.FirmwareVersion); var expectedLastActivity = DateTimeOffset.Parse("2024-05-23T13:45:00+00:00", CultureInfo.InvariantCulture); Assert.Equal(expectedLastActivity, statusData.LastActivity); - Assert.Equal("WAITING_FOR_CARD", statusData.State); - Assert.Equal("ONLINE", statusData.Status); + Assert.Equal(StatusResponseDataState.WaitingForCard, statusData.State); + Assert.Equal(StatusResponseDataStatus.Online, statusData.Status); } [Fact] diff --git a/src/SumUp/Models/BadRequestErrors.g.cs b/src/SumUp/Models/BadRequestErrors.g.cs index a398e0b..10d6ecd 100644 --- a/src/SumUp/Models/BadRequestErrors.g.cs +++ b/src/SumUp/Models/BadRequestErrors.g.cs @@ -11,5 +11,5 @@ public sealed partial class BadRequestErrors public string? Detail { get; set; } /// Key indicating type of error [JsonPropertyName("type")] - public string Type { get; set; } = default!; + public BadRequestErrorsType Type { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/BadRequestErrorsType.g.cs b/src/SumUp/Models/BadRequestErrorsType.g.cs new file mode 100644 index 0000000..5431237 --- /dev/null +++ b/src/SumUp/Models/BadRequestErrorsType.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum BadRequestErrorsType +{ + [EnumMember(Value = "INVALID_BEARER_TOKEN")] + InvalidBearerToken, + [EnumMember(Value = "INVALID_USER_AGENT")] + InvalidUserAgent, + [EnumMember(Value = "NOT_ENOUGH_UNPAID_PAYOUTS")] + NotEnoughUnpaidPayouts, + [EnumMember(Value = "DUPLICATE_HEADERS")] + DuplicateHeaders, +} \ No newline at end of file diff --git a/src/SumUp/Models/BankAccountPayload.g.cs b/src/SumUp/Models/BankAccountPayload.g.cs index 5f1da52..4294c06 100644 --- a/src/SumUp/Models/BankAccountPayload.g.cs +++ b/src/SumUp/Models/BankAccountPayload.g.cs @@ -9,7 +9,7 @@ public sealed partial class BankAccountPayload { /// Determines if this bank account is business or personal. [JsonPropertyName("account_category")] - public string? AccountCategory { get; set; } + public BankAccountPayloadAccountCategory? AccountCategory { get; set; } /// Account holder name [JsonPropertyName("account_holder_name")] public string AccountHolderName { get; set; } = default!; @@ -18,7 +18,7 @@ public sealed partial class BankAccountPayload public string? AccountNumber { get; set; } /// Type of the account. [JsonPropertyName("account_type")] - public string? AccountType { get; set; } + public BankAccountPayloadAccountType? AccountType { get; set; } /// Bank code [JsonPropertyName("bank_code")] public string? BankCode { get; set; } @@ -36,7 +36,7 @@ public sealed partial class BankAccountPayload public bool? Primary { get; set; } /// Determines the bank account status. [JsonPropertyName("status")] - public string? Status { get; set; } + public BankAccountPayloadStatus? Status { get; set; } /// SWIFT code [JsonPropertyName("swift")] public string Swift { get; set; } = default!; diff --git a/src/SumUp/Models/BankAccountPayloadAccountCategory.g.cs b/src/SumUp/Models/BankAccountPayloadAccountCategory.g.cs new file mode 100644 index 0000000..0e91d3a --- /dev/null +++ b/src/SumUp/Models/BankAccountPayloadAccountCategory.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum BankAccountPayloadAccountCategory +{ + [EnumMember(Value = "PERSONAL")] + Personal, + [EnumMember(Value = "BUSINESS")] + Business, +} \ No newline at end of file diff --git a/src/SumUp/Models/BankAccountPayloadAccountType.g.cs b/src/SumUp/Models/BankAccountPayloadAccountType.g.cs new file mode 100644 index 0000000..baa24d2 --- /dev/null +++ b/src/SumUp/Models/BankAccountPayloadAccountType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum BankAccountPayloadAccountType +{ + [EnumMember(Value = "CURRENT")] + Current, + [EnumMember(Value = "SAVINGS")] + Savings, +} \ No newline at end of file diff --git a/src/SumUp/Models/BankAccountPayloadStatus.g.cs b/src/SumUp/Models/BankAccountPayloadStatus.g.cs new file mode 100644 index 0000000..9862503 --- /dev/null +++ b/src/SumUp/Models/BankAccountPayloadStatus.g.cs @@ -0,0 +1,14 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum BankAccountPayloadStatus +{ + [EnumMember(Value = "OPEN")] + Open, +} \ No newline at end of file diff --git a/src/SumUp/Models/Card.g.cs b/src/SumUp/Models/Card.g.cs index e77a311..ae8d443 100644 --- a/src/SumUp/Models/Card.g.cs +++ b/src/SumUp/Models/Card.g.cs @@ -12,7 +12,7 @@ public sealed partial class Card public string Cvv { get; set; } = default!; /// Month from the expiration time of the payment card. Accepted format is `MM`. [JsonPropertyName("expiry_month")] - public string ExpiryMonth { get; set; } = default!; + public CardExpiryMonth ExpiryMonth { get; set; } /// Year from the expiration time of the payment card. Accepted formats are `YY` and `YYYY`. [JsonPropertyName("expiry_year")] public string ExpiryYear { get; set; } = default!; diff --git a/src/SumUp/Models/CardExpiryMonth.g.cs b/src/SumUp/Models/CardExpiryMonth.g.cs new file mode 100644 index 0000000..a51e4d2 --- /dev/null +++ b/src/SumUp/Models/CardExpiryMonth.g.cs @@ -0,0 +1,36 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CardExpiryMonth +{ + [EnumMember(Value = "01")] + _01, + [EnumMember(Value = "02")] + _02, + [EnumMember(Value = "03")] + _03, + [EnumMember(Value = "04")] + _04, + [EnumMember(Value = "05")] + _05, + [EnumMember(Value = "06")] + _06, + [EnumMember(Value = "07")] + _07, + [EnumMember(Value = "08")] + _08, + [EnumMember(Value = "09")] + _09, + [EnumMember(Value = "10")] + _10, + [EnumMember(Value = "11")] + _11, + [EnumMember(Value = "12")] + _12, +} \ No newline at end of file diff --git a/src/SumUp/Models/Checkout.g.cs b/src/SumUp/Models/Checkout.g.cs index 1ceb7b9..ba409a4 100644 --- a/src/SumUp/Models/Checkout.g.cs +++ b/src/SumUp/Models/Checkout.g.cs @@ -41,7 +41,7 @@ public sealed partial class Checkout public string? ReturnUrl { get; set; } /// Current status of the checkout. [JsonPropertyName("status")] - public string? Status { get; set; } + public CheckoutStatus? Status { get; set; } /// List of transactions related to the payment. [JsonPropertyName("transactions")] public IEnumerable? Transactions { get; set; } diff --git a/src/SumUp/Models/CheckoutAcceptedNextStep.g.cs b/src/SumUp/Models/CheckoutAcceptedNextStep.g.cs index e3d5c1b..6b66e4f 100644 --- a/src/SumUp/Models/CheckoutAcceptedNextStep.g.cs +++ b/src/SumUp/Models/CheckoutAcceptedNextStep.g.cs @@ -10,7 +10,7 @@ public sealed partial class CheckoutAcceptedNextStep { /// Indicates allowed mechanisms for redirecting an end user. If both values are provided to ensure a redirect takes place in either. [JsonPropertyName("mechanism")] - public IEnumerable? Mechanism { get; set; } + public IEnumerable? Mechanism { get; set; } /// Method used to complete the redirect. [JsonPropertyName("method")] public string? Method { get; set; } diff --git a/src/SumUp/Models/CheckoutAcceptedNextStepMechanismItem.g.cs b/src/SumUp/Models/CheckoutAcceptedNextStepMechanismItem.g.cs new file mode 100644 index 0000000..229680f --- /dev/null +++ b/src/SumUp/Models/CheckoutAcceptedNextStepMechanismItem.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutAcceptedNextStepMechanismItem +{ + [EnumMember(Value = "iframe")] + Iframe, + [EnumMember(Value = "browser")] + Browser, +} \ No newline at end of file diff --git a/src/SumUp/Models/CheckoutCreateRequest.g.cs b/src/SumUp/Models/CheckoutCreateRequest.g.cs index 7c18f1f..e606f2a 100644 --- a/src/SumUp/Models/CheckoutCreateRequest.g.cs +++ b/src/SumUp/Models/CheckoutCreateRequest.g.cs @@ -27,7 +27,7 @@ public sealed partial class CheckoutCreateRequest public string MerchantCode { get; set; } = default!; /// Purpose of the checkout. [JsonPropertyName("purpose")] - public string? Purpose { get; set; } + public CheckoutCreateRequestPurpose? Purpose { get; set; } /// __Required__ for [APMs](https://developer.sumup.com/online-payments/apm/introduction) and __recommended__ for card payments. Refers to a url where the end user is redirected once the payment processing completes. If not specified, the [Payment Widget](https://developer.sumup.com/online-payments/tools/card-widget) renders [3DS challenge](https://developer.sumup.com/online-payments/features/3ds) within an iframe instead of performing a full-page redirect. [JsonPropertyName("redirect_url")] public string? RedirectUrl { get; set; } diff --git a/src/SumUp/Models/CheckoutCreateRequestPurpose.g.cs b/src/SumUp/Models/CheckoutCreateRequestPurpose.g.cs new file mode 100644 index 0000000..0848142 --- /dev/null +++ b/src/SumUp/Models/CheckoutCreateRequestPurpose.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutCreateRequestPurpose +{ + [EnumMember(Value = "CHECKOUT")] + Checkout, + [EnumMember(Value = "SETUP_RECURRING_PAYMENT")] + SetupRecurringPayment, +} \ No newline at end of file diff --git a/src/SumUp/Models/CheckoutStatus.g.cs b/src/SumUp/Models/CheckoutStatus.g.cs new file mode 100644 index 0000000..b956745 --- /dev/null +++ b/src/SumUp/Models/CheckoutStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutStatus +{ + [EnumMember(Value = "PENDING")] + Pending, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PAID")] + Paid, + [EnumMember(Value = "EXPIRED")] + Expired, +} \ No newline at end of file diff --git a/src/SumUp/Models/CheckoutSuccess.g.cs b/src/SumUp/Models/CheckoutSuccess.g.cs index b23bad7..bc15b05 100644 --- a/src/SumUp/Models/CheckoutSuccess.g.cs +++ b/src/SumUp/Models/CheckoutSuccess.g.cs @@ -50,7 +50,7 @@ public sealed partial class CheckoutSuccess public string? ReturnUrl { get; set; } /// Current status of the checkout. [JsonPropertyName("status")] - public string? Status { get; set; } + public CheckoutSuccessStatus? Status { get; set; } /// Transaction code of the successful transaction with which the payment for the checkout is completed. [JsonPropertyName("transaction_code")] [JsonInclude] diff --git a/src/SumUp/Models/CheckoutSuccessStatus.g.cs b/src/SumUp/Models/CheckoutSuccessStatus.g.cs new file mode 100644 index 0000000..6d17dab --- /dev/null +++ b/src/SumUp/Models/CheckoutSuccessStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutSuccessStatus +{ + [EnumMember(Value = "PENDING")] + Pending, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PAID")] + Paid, + [EnumMember(Value = "EXPIRED")] + Expired, +} \ No newline at end of file diff --git a/src/SumUp/Models/CheckoutSuccessTransactionsItem.g.cs b/src/SumUp/Models/CheckoutSuccessTransactionsItem.g.cs index be948bf..9245415 100644 --- a/src/SumUp/Models/CheckoutSuccessTransactionsItem.g.cs +++ b/src/SumUp/Models/CheckoutSuccessTransactionsItem.g.cs @@ -35,7 +35,7 @@ public sealed partial class CheckoutSuccessTransactionsItem public PaymentType? PaymentType { get; set; } /// Current status of the transaction. [JsonPropertyName("status")] - public string? Status { get; set; } + public CheckoutSuccessTransactionsItemStatus? Status { get; set; } /// Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code. [JsonPropertyName("timestamp")] public DateTimeOffset? Timestamp { get; set; } diff --git a/src/SumUp/Models/CheckoutSuccessTransactionsItemStatus.g.cs b/src/SumUp/Models/CheckoutSuccessTransactionsItemStatus.g.cs new file mode 100644 index 0000000..cf828e1 --- /dev/null +++ b/src/SumUp/Models/CheckoutSuccessTransactionsItemStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutSuccessTransactionsItemStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/CheckoutTransactionsItem.g.cs b/src/SumUp/Models/CheckoutTransactionsItem.g.cs index 7e560ab..4c0fbe2 100644 --- a/src/SumUp/Models/CheckoutTransactionsItem.g.cs +++ b/src/SumUp/Models/CheckoutTransactionsItem.g.cs @@ -35,7 +35,7 @@ public sealed partial class CheckoutTransactionsItem public PaymentType? PaymentType { get; set; } /// Current status of the transaction. [JsonPropertyName("status")] - public string? Status { get; set; } + public CheckoutTransactionsItemStatus? Status { get; set; } /// Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code. [JsonPropertyName("timestamp")] public DateTimeOffset? Timestamp { get; set; } diff --git a/src/SumUp/Models/CheckoutTransactionsItemStatus.g.cs b/src/SumUp/Models/CheckoutTransactionsItemStatus.g.cs new file mode 100644 index 0000000..3855096 --- /dev/null +++ b/src/SumUp/Models/CheckoutTransactionsItemStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CheckoutTransactionsItemStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/CreateReaderCheckoutRequest.g.cs b/src/SumUp/Models/CreateReaderCheckoutRequest.g.cs index fa7e88d..0168f94 100644 --- a/src/SumUp/Models/CreateReaderCheckoutRequest.g.cs +++ b/src/SumUp/Models/CreateReaderCheckoutRequest.g.cs @@ -13,7 +13,7 @@ public sealed partial class CreateReaderCheckoutRequest public CreateReaderCheckoutRequestAffiliate? Affiliate { get; set; } /// The card type of the card used for the transaction. Is is required only for some countries (e.g: Brazil). [JsonPropertyName("card_type")] - public string? CardType { get; set; } + public CreateReaderCheckoutRequestCardType? CardType { get; set; } /// Description of the checkout to be shown in the Merchant Sales [JsonPropertyName("description")] public string? Description { get; set; } diff --git a/src/SumUp/Models/CreateReaderCheckoutRequestCardType.g.cs b/src/SumUp/Models/CreateReaderCheckoutRequestCardType.g.cs new file mode 100644 index 0000000..dac2e35 --- /dev/null +++ b/src/SumUp/Models/CreateReaderCheckoutRequestCardType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum CreateReaderCheckoutRequestCardType +{ + [EnumMember(Value = "credit")] + Credit, + [EnumMember(Value = "debit")] + Debit, +} \ No newline at end of file diff --git a/src/SumUp/Models/FinancialPayoutsItem.g.cs b/src/SumUp/Models/FinancialPayoutsItem.g.cs index 2bf5565..080e1fa 100644 --- a/src/SumUp/Models/FinancialPayoutsItem.g.cs +++ b/src/SumUp/Models/FinancialPayoutsItem.g.cs @@ -19,9 +19,9 @@ public sealed partial class FinancialPayoutsItem [JsonPropertyName("reference")] public string? Reference { get; set; } [JsonPropertyName("status")] - public string? Status { get; set; } + public FinancialPayoutsItemStatus? Status { get; set; } [JsonPropertyName("transaction_code")] public string? TransactionCode { get; set; } [JsonPropertyName("type")] - public string? Type { get; set; } + public FinancialPayoutsItemType? Type { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/FinancialPayoutsItemStatus.g.cs b/src/SumUp/Models/FinancialPayoutsItemStatus.g.cs new file mode 100644 index 0000000..33e6221 --- /dev/null +++ b/src/SumUp/Models/FinancialPayoutsItemStatus.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum FinancialPayoutsItemStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "FAILED")] + Failed, +} \ No newline at end of file diff --git a/src/SumUp/Models/FinancialPayoutsItemType.g.cs b/src/SumUp/Models/FinancialPayoutsItemType.g.cs new file mode 100644 index 0000000..88fd462 --- /dev/null +++ b/src/SumUp/Models/FinancialPayoutsItemType.g.cs @@ -0,0 +1,22 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum FinancialPayoutsItemType +{ + [EnumMember(Value = "PAYOUT")] + Payout, + [EnumMember(Value = "CHARGE_BACK_DEDUCTION")] + ChargeBackDeduction, + [EnumMember(Value = "REFUND_DEDUCTION")] + RefundDeduction, + [EnumMember(Value = "DD_RETURN_DEDUCTION")] + DdReturnDeduction, + [EnumMember(Value = "BALANCE_DEDUCTION")] + BalanceDeduction, +} \ No newline at end of file diff --git a/src/SumUp/Models/MandatePayload.g.cs b/src/SumUp/Models/MandatePayload.g.cs index 4a0885f..5cf28c8 100644 --- a/src/SumUp/Models/MandatePayload.g.cs +++ b/src/SumUp/Models/MandatePayload.g.cs @@ -9,7 +9,7 @@ public sealed partial class MandatePayload { /// Indicates the mandate type [JsonPropertyName("type")] - public string Type { get; set; } = default!; + public MandatePayloadType Type { get; set; } /// Operating system and web client used by the end-user [JsonPropertyName("user_agent")] public string UserAgent { get; set; } = default!; diff --git a/src/SumUp/Models/MandatePayloadType.g.cs b/src/SumUp/Models/MandatePayloadType.g.cs new file mode 100644 index 0000000..d7b86d3 --- /dev/null +++ b/src/SumUp/Models/MandatePayloadType.g.cs @@ -0,0 +1,14 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum MandatePayloadType +{ + [EnumMember(Value = "recurrent")] + Recurrent, +} \ No newline at end of file diff --git a/src/SumUp/Models/MerchantSettingsPayload.g.cs b/src/SumUp/Models/MerchantSettingsPayload.g.cs index 9321329..dee4f6d 100644 --- a/src/SumUp/Models/MerchantSettingsPayload.g.cs +++ b/src/SumUp/Models/MerchantSettingsPayload.g.cs @@ -21,10 +21,10 @@ public sealed partial class MerchantSettingsPayload public string? PayoutOnDemandAvailable { get; set; } /// Payout period. [JsonPropertyName("payout_period")] - public string? PayoutPeriod { get; set; } + public MerchantSettingsPayloadPayoutPeriod? PayoutPeriod { get; set; } /// Payout type. [JsonPropertyName("payout_type")] - public string? PayoutType { get; set; } + public MerchantSettingsPayloadPayoutType? PayoutType { get; set; } /// Printers enabled. [JsonPropertyName("printers_enabled")] public bool? PrintersEnabled { get; set; } diff --git a/src/SumUp/Models/MerchantSettingsPayloadPayoutPeriod.g.cs b/src/SumUp/Models/MerchantSettingsPayloadPayoutPeriod.g.cs new file mode 100644 index 0000000..48afe41 --- /dev/null +++ b/src/SumUp/Models/MerchantSettingsPayloadPayoutPeriod.g.cs @@ -0,0 +1,18 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum MerchantSettingsPayloadPayoutPeriod +{ + [EnumMember(Value = "daily")] + Daily, + [EnumMember(Value = "weekly")] + Weekly, + [EnumMember(Value = "monthly")] + Monthly, +} \ No newline at end of file diff --git a/src/SumUp/Models/MerchantSettingsPayloadPayoutType.g.cs b/src/SumUp/Models/MerchantSettingsPayloadPayoutType.g.cs new file mode 100644 index 0000000..f78c174 --- /dev/null +++ b/src/SumUp/Models/MerchantSettingsPayloadPayoutType.g.cs @@ -0,0 +1,14 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum MerchantSettingsPayloadPayoutType +{ + [EnumMember(Value = "SINGLE_PAYMENT")] + SinglePayment, +} \ No newline at end of file diff --git a/src/SumUp/Models/OperatorValue.g.cs b/src/SumUp/Models/OperatorValue.g.cs index 231e33b..51967fb 100644 --- a/src/SumUp/Models/OperatorValue.g.cs +++ b/src/SumUp/Models/OperatorValue.g.cs @@ -8,7 +8,7 @@ namespace SumUp; public sealed partial class OperatorValue { [JsonPropertyName("account_type")] - public string AccountType { get; set; } = default!; + public OperatorValueAccountType AccountType { get; set; } /// The timestamp of when the operator was created. [JsonPropertyName("created_at")] public DateTimeOffset CreatedAt { get; set; } = default!; diff --git a/src/SumUp/Models/OperatorValueAccountType.g.cs b/src/SumUp/Models/OperatorValueAccountType.g.cs new file mode 100644 index 0000000..3ffd3b3 --- /dev/null +++ b/src/SumUp/Models/OperatorValueAccountType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum OperatorValueAccountType +{ + [EnumMember(Value = "operator")] + OperatorValue, + [EnumMember(Value = "normal")] + Normal, +} \ No newline at end of file diff --git a/src/SumUp/Models/PaymentInstrumentCard.g.cs b/src/SumUp/Models/PaymentInstrumentCard.g.cs index b34ef13..b862f15 100644 --- a/src/SumUp/Models/PaymentInstrumentCard.g.cs +++ b/src/SumUp/Models/PaymentInstrumentCard.g.cs @@ -12,5 +12,5 @@ public sealed partial class PaymentInstrumentCard public Card Card { get; set; } = default!; /// Type of the payment instrument. [JsonPropertyName("type")] - public string Type { get; set; } = default!; + public PaymentInstrumentCardType Type { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/PaymentInstrumentCardType.g.cs b/src/SumUp/Models/PaymentInstrumentCardType.g.cs new file mode 100644 index 0000000..d49a2b8 --- /dev/null +++ b/src/SumUp/Models/PaymentInstrumentCardType.g.cs @@ -0,0 +1,14 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum PaymentInstrumentCardType +{ + [EnumMember(Value = "card")] + Card, +} \ No newline at end of file diff --git a/src/SumUp/Models/PaymentInstrumentResponse.g.cs b/src/SumUp/Models/PaymentInstrumentResponse.g.cs index 4cdb2ac..d9f5591 100644 --- a/src/SumUp/Models/PaymentInstrumentResponse.g.cs +++ b/src/SumUp/Models/PaymentInstrumentResponse.g.cs @@ -26,5 +26,5 @@ public sealed partial class PaymentInstrumentResponse public string? Token { get; private set; } /// Type of the payment instrument. [JsonPropertyName("type")] - public string? Type { get; set; } + public PaymentInstrumentResponseType? Type { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/PaymentInstrumentResponseType.g.cs b/src/SumUp/Models/PaymentInstrumentResponseType.g.cs new file mode 100644 index 0000000..d6f5202 --- /dev/null +++ b/src/SumUp/Models/PaymentInstrumentResponseType.g.cs @@ -0,0 +1,14 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum PaymentInstrumentResponseType +{ + [EnumMember(Value = "card")] + Card, +} \ No newline at end of file diff --git a/src/SumUp/Models/ProcessCheckout.g.cs b/src/SumUp/Models/ProcessCheckout.g.cs index 90a15d8..eabd66b 100644 --- a/src/SumUp/Models/ProcessCheckout.g.cs +++ b/src/SumUp/Models/ProcessCheckout.g.cs @@ -21,7 +21,7 @@ public sealed partial class ProcessCheckout public MandatePayload? Mandate { get; set; } /// Describes the payment method used to attempt processing [JsonPropertyName("payment_type")] - public string PaymentType { get; set; } = default!; + public ProcessCheckoutPaymentType PaymentType { get; set; } /// Personal details for the customer. [JsonPropertyName("personal_details")] public PersonalDetails? PersonalDetails { get; set; } diff --git a/src/SumUp/Models/ProcessCheckoutPaymentType.g.cs b/src/SumUp/Models/ProcessCheckoutPaymentType.g.cs new file mode 100644 index 0000000..556de79 --- /dev/null +++ b/src/SumUp/Models/ProcessCheckoutPaymentType.g.cs @@ -0,0 +1,22 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum ProcessCheckoutPaymentType +{ + [EnumMember(Value = "card")] + Card, + [EnumMember(Value = "boleto")] + Boleto, + [EnumMember(Value = "ideal")] + Ideal, + [EnumMember(Value = "blik")] + Blik, + [EnumMember(Value = "bancontact")] + Bancontact, +} \ No newline at end of file diff --git a/src/SumUp/Models/ReaderCheckoutStatusChangePayload.g.cs b/src/SumUp/Models/ReaderCheckoutStatusChangePayload.g.cs index a754fd4..d1242a0 100644 --- a/src/SumUp/Models/ReaderCheckoutStatusChangePayload.g.cs +++ b/src/SumUp/Models/ReaderCheckoutStatusChangePayload.g.cs @@ -15,7 +15,7 @@ public sealed partial class ReaderCheckoutStatusChangePayload public string MerchantCode { get; set; } = default!; /// The current status of the transaction. [JsonPropertyName("status")] - public string Status { get; set; } = default!; + public ReaderCheckoutStatusChangePayloadStatus Status { get; set; } /// The transaction id. Deprecated: use `client_transaction_id` instead. [JsonPropertyName("transaction_id")] public Guid? TransactionId { get; set; } diff --git a/src/SumUp/Models/ReaderCheckoutStatusChangePayloadStatus.g.cs b/src/SumUp/Models/ReaderCheckoutStatusChangePayloadStatus.g.cs new file mode 100644 index 0000000..d03c74d --- /dev/null +++ b/src/SumUp/Models/ReaderCheckoutStatusChangePayloadStatus.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum ReaderCheckoutStatusChangePayloadStatus +{ + [EnumMember(Value = "successful")] + Successful, + [EnumMember(Value = "failed")] + Failed, +} \ No newline at end of file diff --git a/src/SumUp/Models/ReaderDevice.g.cs b/src/SumUp/Models/ReaderDevice.g.cs index 0787310..f271e5a 100644 --- a/src/SumUp/Models/ReaderDevice.g.cs +++ b/src/SumUp/Models/ReaderDevice.g.cs @@ -12,5 +12,5 @@ public sealed partial class ReaderDevice public string Identifier { get; set; } = default!; /// Identifier of the model of the device. [JsonPropertyName("model")] - public string Model { get; set; } = default!; + public ReaderDeviceModel Model { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/ReaderDeviceModel.g.cs b/src/SumUp/Models/ReaderDeviceModel.g.cs new file mode 100644 index 0000000..9b27a92 --- /dev/null +++ b/src/SumUp/Models/ReaderDeviceModel.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum ReaderDeviceModel +{ + [EnumMember(Value = "solo")] + Solo, + [EnumMember(Value = "virtual-solo")] + VirtualSolo, +} \ No newline at end of file diff --git a/src/SumUp/Models/StatusResponseData.g.cs b/src/SumUp/Models/StatusResponseData.g.cs index 6b43495..833e313 100644 --- a/src/SumUp/Models/StatusResponseData.g.cs +++ b/src/SumUp/Models/StatusResponseData.g.cs @@ -14,7 +14,7 @@ public sealed partial class StatusResponseData public int? BatteryTemperature { get; set; } /// Type of connection used by the device [JsonPropertyName("connection_type")] - public string? ConnectionType { get; set; } + public StatusResponseDataConnectionType? ConnectionType { get; set; } /// Firmware version of the device [JsonPropertyName("firmware_version")] public string? FirmwareVersion { get; set; } @@ -23,8 +23,8 @@ public sealed partial class StatusResponseData public DateTimeOffset? LastActivity { get; set; } /// Latest state of the device [JsonPropertyName("state")] - public string? State { get; set; } + public StatusResponseDataState? State { get; set; } /// Status of a device [JsonPropertyName("status")] - public string Status { get; set; } = default!; + public StatusResponseDataStatus Status { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/StatusResponseDataConnectionType.g.cs b/src/SumUp/Models/StatusResponseDataConnectionType.g.cs new file mode 100644 index 0000000..77cb5da --- /dev/null +++ b/src/SumUp/Models/StatusResponseDataConnectionType.g.cs @@ -0,0 +1,26 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum StatusResponseDataConnectionType +{ + [EnumMember(Value = "btle")] + Btle, + [EnumMember(Value = "edge")] + Edge, + [EnumMember(Value = "gprs")] + Gprs, + [EnumMember(Value = "lte")] + Lte, + [EnumMember(Value = "umts")] + Umts, + [EnumMember(Value = "usb")] + Usb, + [EnumMember(Value = "Wi-Fi")] + WiFi, +} \ No newline at end of file diff --git a/src/SumUp/Models/StatusResponseDataState.g.cs b/src/SumUp/Models/StatusResponseDataState.g.cs new file mode 100644 index 0000000..936867c --- /dev/null +++ b/src/SumUp/Models/StatusResponseDataState.g.cs @@ -0,0 +1,24 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum StatusResponseDataState +{ + [EnumMember(Value = "IDLE")] + Idle, + [EnumMember(Value = "SELECTING_TIP")] + SelectingTip, + [EnumMember(Value = "WAITING_FOR_CARD")] + WaitingForCard, + [EnumMember(Value = "WAITING_FOR_PIN")] + WaitingForPin, + [EnumMember(Value = "WAITING_FOR_SIGNATURE")] + WaitingForSignature, + [EnumMember(Value = "UPDATING_FIRMWARE")] + UpdatingFirmware, +} \ No newline at end of file diff --git a/src/SumUp/Models/StatusResponseDataStatus.g.cs b/src/SumUp/Models/StatusResponseDataStatus.g.cs new file mode 100644 index 0000000..63b4c27 --- /dev/null +++ b/src/SumUp/Models/StatusResponseDataStatus.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum StatusResponseDataStatus +{ + [EnumMember(Value = "ONLINE")] + Online, + [EnumMember(Value = "OFFLINE")] + Offline, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionBase.g.cs b/src/SumUp/Models/TransactionBase.g.cs index 3ffd015..fbde71a 100644 --- a/src/SumUp/Models/TransactionBase.g.cs +++ b/src/SumUp/Models/TransactionBase.g.cs @@ -24,7 +24,7 @@ public sealed partial class TransactionBase public PaymentType? PaymentType { get; set; } /// Current status of the transaction. [JsonPropertyName("status")] - public string? Status { get; set; } + public TransactionBaseStatus? Status { get; set; } /// Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code. [JsonPropertyName("timestamp")] public DateTimeOffset? Timestamp { get; set; } diff --git a/src/SumUp/Models/TransactionBaseStatus.g.cs b/src/SumUp/Models/TransactionBaseStatus.g.cs new file mode 100644 index 0000000..069da54 --- /dev/null +++ b/src/SumUp/Models/TransactionBaseStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionBaseStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFull.g.cs b/src/SumUp/Models/TransactionFull.g.cs index a3b685a..5c464d7 100644 --- a/src/SumUp/Models/TransactionFull.g.cs +++ b/src/SumUp/Models/TransactionFull.g.cs @@ -82,10 +82,10 @@ public sealed partial class TransactionFull public DateTime? PayoutDate { get; set; } /// Payout plan of the registered user at the time when the transaction was made. [JsonPropertyName("payout_plan")] - public string? PayoutPlan { get; set; } + public TransactionFullPayoutPlan? PayoutPlan { get; set; } /// Payout type for the transaction. [JsonPropertyName("payout_type")] - public string? PayoutType { get; set; } + public TransactionFullPayoutType? PayoutType { get; set; } /// Number of payouts that are made to the registered user specified in the `user` property. [JsonPropertyName("payouts_received")] public int? PayoutsReceived { get; set; } @@ -94,7 +94,7 @@ public sealed partial class TransactionFull public int? PayoutsTotal { get; set; } /// Debit/Credit. [JsonPropertyName("process_as")] - public string? ProcessAs { get; set; } + public TransactionFullProcessAs? ProcessAs { get; set; } /// Short description of the payment. The value is taken from the `description` property of the related checkout resource. [JsonPropertyName("product_summary")] public string? ProductSummary { get; set; } @@ -103,13 +103,13 @@ public sealed partial class TransactionFull public IEnumerable? Products { get; set; } /// Simple name of the payment type. [JsonPropertyName("simple_payment_type")] - public string? SimplePaymentType { get; set; } + public TransactionFullSimplePaymentType? SimplePaymentType { get; set; } /// Status generated from the processing status and the latest transaction state. [JsonPropertyName("simple_status")] - public string? SimpleStatus { get; set; } + public TransactionFullSimpleStatus? SimpleStatus { get; set; } /// Current status of the transaction. [JsonPropertyName("status")] - public string? Status { get; set; } + public TransactionFullStatus? Status { get; set; } /// Indicates whether tax deduction is enabled for the transaction. [JsonPropertyName("tax_enabled")] public bool? TaxEnabled { get; set; } @@ -136,5 +136,5 @@ public sealed partial class TransactionFull public IEnumerable? VatRates { get; set; } /// Verification method used for the transaction. [JsonPropertyName("verification_method")] - public string? VerificationMethod { get; set; } + public TransactionFullVerificationMethod? VerificationMethod { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullPayoutPlan.g.cs b/src/SumUp/Models/TransactionFullPayoutPlan.g.cs new file mode 100644 index 0000000..fe2ca2b --- /dev/null +++ b/src/SumUp/Models/TransactionFullPayoutPlan.g.cs @@ -0,0 +1,18 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullPayoutPlan +{ + [EnumMember(Value = "SINGLE_PAYMENT")] + SinglePayment, + [EnumMember(Value = "TRUE_INSTALLMENT")] + TrueInstallment, + [EnumMember(Value = "ACCELERATED_INSTALLMENT")] + AcceleratedInstallment, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullPayoutType.g.cs b/src/SumUp/Models/TransactionFullPayoutType.g.cs new file mode 100644 index 0000000..dc1f4ee --- /dev/null +++ b/src/SumUp/Models/TransactionFullPayoutType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullPayoutType +{ + [EnumMember(Value = "BANK_ACCOUNT")] + BankAccount, + [EnumMember(Value = "PREPAID_CARD")] + PrepaidCard, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullProcessAs.g.cs b/src/SumUp/Models/TransactionFullProcessAs.g.cs new file mode 100644 index 0000000..1669861 --- /dev/null +++ b/src/SumUp/Models/TransactionFullProcessAs.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullProcessAs +{ + [EnumMember(Value = "CREDIT")] + Credit, + [EnumMember(Value = "DEBIT")] + Debit, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullSimplePaymentType.g.cs b/src/SumUp/Models/TransactionFullSimplePaymentType.g.cs new file mode 100644 index 0000000..e28ff6c --- /dev/null +++ b/src/SumUp/Models/TransactionFullSimplePaymentType.g.cs @@ -0,0 +1,40 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullSimplePaymentType +{ + [EnumMember(Value = "CASH")] + Cash, + [EnumMember(Value = "CC_SIGNATURE")] + CcSignature, + [EnumMember(Value = "ELV")] + Elv, + [EnumMember(Value = "ELV_WITHOUT_SIGNATURE")] + ElvWithoutSignature, + [EnumMember(Value = "CC_CUSTOMER_ENTERED")] + CcCustomerEntered, + [EnumMember(Value = "MANUAL_ENTRY")] + ManualEntry, + [EnumMember(Value = "EMV")] + Emv, + [EnumMember(Value = "RECURRING")] + Recurring, + [EnumMember(Value = "BALANCE")] + Balance, + [EnumMember(Value = "MOTO")] + Moto, + [EnumMember(Value = "BOLETO")] + Boleto, + [EnumMember(Value = "APM")] + Apm, + [EnumMember(Value = "BITCOIN")] + Bitcoin, + [EnumMember(Value = "CARD")] + Card, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullSimpleStatus.g.cs b/src/SumUp/Models/TransactionFullSimpleStatus.g.cs new file mode 100644 index 0000000..c74bd44 --- /dev/null +++ b/src/SumUp/Models/TransactionFullSimpleStatus.g.cs @@ -0,0 +1,32 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullSimpleStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "PAID_OUT")] + PaidOut, + [EnumMember(Value = "CANCEL_FAILED")] + CancelFailed, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "CHARGEBACK")] + Chargeback, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "REFUND_FAILED")] + RefundFailed, + [EnumMember(Value = "REFUNDED")] + Refunded, + [EnumMember(Value = "NON_COLLECTION")] + NonCollection, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullStatus.g.cs b/src/SumUp/Models/TransactionFullStatus.g.cs new file mode 100644 index 0000000..5938224 --- /dev/null +++ b/src/SumUp/Models/TransactionFullStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionFullVerificationMethod.g.cs b/src/SumUp/Models/TransactionFullVerificationMethod.g.cs new file mode 100644 index 0000000..34e87e4 --- /dev/null +++ b/src/SumUp/Models/TransactionFullVerificationMethod.g.cs @@ -0,0 +1,24 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionFullVerificationMethod +{ + [EnumMember(Value = "none")] + None, + [EnumMember(Value = "signature")] + Signature, + [EnumMember(Value = "offline PIN")] + OfflinePin, + [EnumMember(Value = "online PIN")] + OnlinePin, + [EnumMember(Value = "offline PIN + signature")] + OfflinePinSignature, + [EnumMember(Value = "na")] + Na, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionHistory.g.cs b/src/SumUp/Models/TransactionHistory.g.cs index 55b4696..127c44e 100644 --- a/src/SumUp/Models/TransactionHistory.g.cs +++ b/src/SumUp/Models/TransactionHistory.g.cs @@ -33,10 +33,10 @@ public sealed partial class TransactionHistory public DateTime? PayoutDate { get; set; } /// Payout plan of the registered user at the time when the transaction was made. [JsonPropertyName("payout_plan")] - public string? PayoutPlan { get; set; } + public TransactionHistoryPayoutPlan? PayoutPlan { get; set; } /// Payout type. [JsonPropertyName("payout_type")] - public string? PayoutType { get; set; } + public TransactionHistoryPayoutType? PayoutType { get; set; } /// Number of payouts that are made to the registered user specified in the `user` property. [JsonPropertyName("payouts_received")] public int? PayoutsReceived { get; set; } @@ -51,7 +51,7 @@ public sealed partial class TransactionHistory public decimal? RefundedAmount { get; set; } /// Current status of the transaction. [JsonPropertyName("status")] - public string? Status { get; set; } + public TransactionHistoryStatus? Status { get; set; } /// Date and time of the creation of the transaction. Response format expressed according to [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) code. [JsonPropertyName("timestamp")] public DateTimeOffset? Timestamp { get; set; } @@ -63,7 +63,7 @@ public sealed partial class TransactionHistory public string? TransactionId { get; set; } /// Type of the transaction for the registered user specified in the `user` property. [JsonPropertyName("type")] - public string? Type { get; set; } + public TransactionHistoryType? Type { get; set; } /// Email address of the registered user (merchant) to whom the payment is made. [JsonPropertyName("user")] public string? User { get; set; } diff --git a/src/SumUp/Models/TransactionHistoryPayoutPlan.g.cs b/src/SumUp/Models/TransactionHistoryPayoutPlan.g.cs new file mode 100644 index 0000000..4d04633 --- /dev/null +++ b/src/SumUp/Models/TransactionHistoryPayoutPlan.g.cs @@ -0,0 +1,18 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionHistoryPayoutPlan +{ + [EnumMember(Value = "SINGLE_PAYMENT")] + SinglePayment, + [EnumMember(Value = "TRUE_INSTALLMENT")] + TrueInstallment, + [EnumMember(Value = "ACCELERATED_INSTALLMENT")] + AcceleratedInstallment, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionHistoryPayoutType.g.cs b/src/SumUp/Models/TransactionHistoryPayoutType.g.cs new file mode 100644 index 0000000..b630371 --- /dev/null +++ b/src/SumUp/Models/TransactionHistoryPayoutType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionHistoryPayoutType +{ + [EnumMember(Value = "BANK_ACCOUNT")] + BankAccount, + [EnumMember(Value = "PREPAID_CARD")] + PrepaidCard, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionHistoryStatus.g.cs b/src/SumUp/Models/TransactionHistoryStatus.g.cs new file mode 100644 index 0000000..2c85aa5 --- /dev/null +++ b/src/SumUp/Models/TransactionHistoryStatus.g.cs @@ -0,0 +1,20 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionHistoryStatus +{ + [EnumMember(Value = "SUCCESSFUL")] + Successful, + [EnumMember(Value = "CANCELLED")] + Cancelled, + [EnumMember(Value = "FAILED")] + Failed, + [EnumMember(Value = "PENDING")] + Pending, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionHistoryType.g.cs b/src/SumUp/Models/TransactionHistoryType.g.cs new file mode 100644 index 0000000..95c7f69 --- /dev/null +++ b/src/SumUp/Models/TransactionHistoryType.g.cs @@ -0,0 +1,18 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionHistoryType +{ + [EnumMember(Value = "PAYMENT")] + Payment, + [EnumMember(Value = "REFUND")] + Refund, + [EnumMember(Value = "CHARGE_BACK")] + ChargeBack, +} \ No newline at end of file diff --git a/src/SumUp/Models/TransactionMixinHistory.g.cs b/src/SumUp/Models/TransactionMixinHistory.g.cs index e425760..13679c2 100644 --- a/src/SumUp/Models/TransactionMixinHistory.g.cs +++ b/src/SumUp/Models/TransactionMixinHistory.g.cs @@ -9,7 +9,7 @@ public sealed partial class TransactionMixinHistory { /// Payout plan of the registered user at the time when the transaction was made. [JsonPropertyName("payout_plan")] - public string? PayoutPlan { get; set; } + public TransactionMixinHistoryPayoutPlan? PayoutPlan { get; set; } /// Number of payouts that are made to the registered user specified in the `user` property. [JsonPropertyName("payouts_received")] public int? PayoutsReceived { get; set; } diff --git a/src/SumUp/Models/TransactionMixinHistoryPayoutPlan.g.cs b/src/SumUp/Models/TransactionMixinHistoryPayoutPlan.g.cs new file mode 100644 index 0000000..77aa157 --- /dev/null +++ b/src/SumUp/Models/TransactionMixinHistoryPayoutPlan.g.cs @@ -0,0 +1,18 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum TransactionMixinHistoryPayoutPlan +{ + [EnumMember(Value = "SINGLE_PAYMENT")] + SinglePayment, + [EnumMember(Value = "TRUE_INSTALLMENT")] + TrueInstallment, + [EnumMember(Value = "ACCELERATED_INSTALLMENT")] + AcceleratedInstallment, +} \ No newline at end of file diff --git a/src/SumUp/Models/UnauthorizedErrors.g.cs b/src/SumUp/Models/UnauthorizedErrors.g.cs index d1258f3..8e4b0a9 100644 --- a/src/SumUp/Models/UnauthorizedErrors.g.cs +++ b/src/SumUp/Models/UnauthorizedErrors.g.cs @@ -11,5 +11,5 @@ public sealed partial class UnauthorizedErrors public string Detail { get; set; } = default!; /// Key indicating type of error. Present only for typed 401 responses (e.g. invalid token, invalid password). Absent for generic unauthorized responses. [JsonPropertyName("type")] - public string? Type { get; set; } + public UnauthorizedErrorsType? Type { get; set; } } \ No newline at end of file diff --git a/src/SumUp/Models/UnauthorizedErrorsType.g.cs b/src/SumUp/Models/UnauthorizedErrorsType.g.cs new file mode 100644 index 0000000..6fed1c7 --- /dev/null +++ b/src/SumUp/Models/UnauthorizedErrorsType.g.cs @@ -0,0 +1,16 @@ +// +#nullable enable + +namespace SumUp; + +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +[JsonConverter(typeof(EnumMemberJsonConverterFactory))] +public enum UnauthorizedErrorsType +{ + [EnumMember(Value = "INVALID_ACCESS_TOKEN")] + InvalidAccessToken, + [EnumMember(Value = "INVALID_PASSWORD")] + InvalidPassword, +} \ No newline at end of file