Refund & Dispute Flow

Proses refund dan penanganan keluhan dari Customer.

stateDiagram-v2
    [*] --> OrderDelivered: Pesanan sampai

    state OrderDelivered {
        [*] --> Happy: Pesanan sesuai
        [*] --> Issue: Salah / kurang / rusak
    }

    Happy --> [*]

    state Issue {
        [*] --> ContactSupport: Buka app → order → Help
        ContactSupport --> AttachPhoto: Foto barang
        AttachPhoto --> Describe: Deskripsi masalah
        Describe --> Review: Tim review (3-5 hari kerja)
    }

    Review --> Refund
    Review --> Reject: Tidak valid

    state Refund {
        [*] --> SendCoins: Kredit SendCoins
        [*] --> OriginalPayment: Kembali ke metode bayar
    }

    Refund --> [*]
    Reject --> [*]

    state NoShow {
        [*] --> Uncontactable: Customer tidak merespon 10 menit
        Uncontactable --> CancelNoRefund: Order dibatalkan tanpa refund
        CancelNoRefund --> [*]
    }

    state OrderCancellation {
        [*] --> BeforeAccepted: Cancel sebelum DB accept
        BeforeAccepted --> AutoCancel: Auto cancel 10 menit
        BeforeAccepted --> CustomerCancel: Customer cancel manual
        AutoCancel --> Refund
        CustomerCancel --> Refund

        [*] --> AfterAccepted: DB sudah accept
        AfterAccepted --> CannotCancel: Tidak bisa cancel
    }
diagrams/customers/06-refund-dispute-flow.md
# Refund & Dispute Flow

Proses refund dan penanganan keluhan dari Customer.

```mermaid
stateDiagram-v2
    [*] --> OrderDelivered: Pesanan sampai

    state OrderDelivered {
        [*] --> Happy: Pesanan sesuai
        [*] --> Issue: Salah / kurang / rusak
    }

    Happy --> [*]

    state Issue {
        [*] --> ContactSupport: Buka app → order → Help
        ContactSupport --> AttachPhoto: Foto barang
        AttachPhoto --> Describe: Deskripsi masalah
        Describe --> Review: Tim review (3-5 hari kerja)
    }

    Review --> Refund
    Review --> Reject: Tidak valid

    state Refund {
        [*] --> SendCoins: Kredit SendCoins
        [*] --> OriginalPayment: Kembali ke metode bayar
    }

    Refund --> [*]
    Reject --> [*]

    state NoShow {
        [*] --> Uncontactable: Customer tidak merespon 10 menit
        Uncontactable --> CancelNoRefund: Order dibatalkan tanpa refund
        CancelNoRefund --> [*]
    }

    state OrderCancellation {
        [*] --> BeforeAccepted: Cancel sebelum DB accept
        BeforeAccepted --> AutoCancel: Auto cancel 10 menit
        BeforeAccepted --> CustomerCancel: Customer cancel manual
        AutoCancel --> Refund
        CustomerCancel --> Refund

        [*] --> AfterAccepted: DB sudah accept
        AfterAccepted --> CannotCancel: Tidak bisa cancel
    }
```