Commit Graph

18 Commits

Author SHA1 Message Date
Daniel Arantes Loverde
f49e4ea337 fix(payment): validate card expiry date month range and fix PaymentCardView character length 2026-06-04 15:48:00 -03:00
Daniel Arantes Loverde
2809131c25 fix(payment): move detectedBrandLogo computed property into correct scope inside PaymentCardView 2026-06-04 15:41:30 -03:00
Daniel Arantes Loverde
b633adad61 Merge branch 'feature/card-management' into feature/card-brand-logo
# Conflicts:
#	pedi-foods/Sources/PediFoods/Views/Main/CheckoutView.swift
2026-06-04 15:38:50 -03:00
Daniel Arantes Loverde
c31875ec3b fix(payment): set text field foreground color to brandDark for card input fields 2026-06-04 15:28:20 -03:00
Daniel Arantes Loverde
a319a8f534 feat(payment): add custom logo for PIX payment method 2026-06-04 15:27:15 -03:00
Daniel Arantes Loverde
46d955a92f feat(payment): identify card brand and display logo dynamically 2026-06-04 15:23:02 -03:00
Daniel Arantes Loverde
ee8745553e feat(payment): implement change payment method (PATCH /payment-method)
- ChangePaymentMethodPayload + ChangePaymentMethodResult models
- ApiService.changePaymentMethod()
- PixPaymentContext gains storeId + order data for payment switch
- PaymentPixView: Trocar button opens ChangePaymentSheet with 3 options
- ChangePaymentSheet: Novo PIX (new QR), Cartão (saved or new), Pagar na Entrega
- ChangePaymentCardSheet + ChangePaymentNewCardView with same card masks/validation
- OrdersView/OrderEntryDestinationView: threaded appState binding
2026-06-03 18:49:07 -03:00
Daniel Arantes Loverde
9525c19b6b fix(cards): propagate API validation error message to user on card submit failure 2026-06-03 18:06:43 -03:00
Daniel Arantes Loverde
abd58ac36d feat(cards): add input masks and char limits to card form fields
- Card number: groups of 4 digits (0000 0000 0000 0000), max 16 digits
- Expiry: MM/AAAA mask, max 6 digits
- CVV: digits only, max 4
- CPF: 000.000.000-00 mask, max 11 digits
- canSubmit validates stripped digit counts
2026-06-03 17:58:44 -03:00
Daniel Arantes Loverde
a548955320 fix(cards): replace NavigationStack header with custom X button, new card form opens as sheet 2026-06-03 17:44:10 -03:00
Daniel Arantes Loverde
6b397db494 feat(cards): implement full saved card management and transparent checkout
- ApiCardModels.swift: SavedCard, SaveCardPayload, CreditCardOrderPayload, etc.
- ApiOrderModels.swift: add savedCardId, clientCpfCnpj, creditCard, creditCardHolderInfo to CreateOrderPayload; Codable for item/addon payloads
- ApiService.swift: listCards, saveCard, updateCard, deleteCard, updateProfileCpf
- AppState.ProfileState: add cpf field
- CheckoutView: CardSelectionSheet (list saved cards + add new), rewrite PaymentCardView (submits order with card data), CardPaymentContext carries full order data
- CheckoutView+Logic: buildCreateOrderPayload accepts card params, new loadSavedCards/confirmOrderWithSavedCard/handleOrderResponse helpers, redirect credit card confirm to CardSelectionSheet
- OrdersView: CREDIT_CARD pending orders go to tracking (not card form, since card is now submitted with order)
- UserProfileView: CPF field with mask, save via PATCH /api/customer/profile
2026-06-03 17:32:30 -03:00
Daniel Arantes Loverde
2d27240cee feat(checkout): replace dual payment group cards with single toggle switch
Toggle ON = Pagar Pelo App (default), shows in-app methods (PIX, Credit Card)
Toggle OFF = Pagar Na Maquininha, shows store machine methods
Automatically resets paymentMethod on toggle switch
Removes paymentGroupCard helper, saves vertical space
2026-06-03 15:49:26 -03:00
Daniel Arantes Loverde
f51319b486 master merged 2026-06-03 14:52:27 -03:00
Daniel Arantes Loverde
9bdb9dfdea feat(android): complete first successful skip export 2026-03-20 10:56:22 -03:00
Daniel Arantes Loverde
cb7bfef356 fix(android): isolate platform-specific shared ui code 2026-03-19 16:11:07 -03:00
Daniel Arantes Loverde
ca83a275ac payment and list 2026-02-24 10:19:47 -03:00
Daniel Arantes Loverde
3a3dc7217b Fix login 2026-02-21 18:51:39 -03:00
Daniel Arantes Loverde
0f5ad4c268 Payments 2026-02-15 08:18:06 -03:00