51 lines
2.3 KiB
Go
51 lines
2.3 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/tech/sendico/pkg/db/storable"
|
|
)
|
|
|
|
type TreasuryOperationType string
|
|
|
|
const (
|
|
TreasuryOperationFund TreasuryOperationType = "fund"
|
|
TreasuryOperationWithdraw TreasuryOperationType = "withdraw"
|
|
)
|
|
|
|
type TreasuryRequestStatus string
|
|
|
|
const (
|
|
TreasuryRequestStatusCreated TreasuryRequestStatus = "created"
|
|
TreasuryRequestStatusConfirmed TreasuryRequestStatus = "confirmed"
|
|
TreasuryRequestStatusScheduled TreasuryRequestStatus = "scheduled"
|
|
TreasuryRequestStatusExecuted TreasuryRequestStatus = "executed"
|
|
TreasuryRequestStatusCancelled TreasuryRequestStatus = "cancelled"
|
|
TreasuryRequestStatusFailed TreasuryRequestStatus = "failed"
|
|
)
|
|
|
|
type TreasuryRequest struct {
|
|
storable.Base `bson:",inline" json:",inline"`
|
|
|
|
RequestID string `bson:"requestId,omitempty" json:"request_id,omitempty"`
|
|
OperationType TreasuryOperationType `bson:"operationType,omitempty" json:"operation_type,omitempty"`
|
|
TelegramUserID string `bson:"telegramUserId,omitempty" json:"telegram_user_id,omitempty"`
|
|
LedgerAccountID string `bson:"ledgerAccountId,omitempty" json:"ledger_account_id,omitempty"`
|
|
OrganizationRef string `bson:"organizationRef,omitempty" json:"organization_ref,omitempty"`
|
|
ChatID string `bson:"chatId,omitempty" json:"chat_id,omitempty"`
|
|
Amount string `bson:"amount,omitempty" json:"amount,omitempty"`
|
|
Currency string `bson:"currency,omitempty" json:"currency,omitempty"`
|
|
Status TreasuryRequestStatus `bson:"status,omitempty" json:"status,omitempty"`
|
|
|
|
ConfirmedAt time.Time `bson:"confirmedAt,omitempty" json:"confirmed_at,omitempty"`
|
|
ScheduledAt time.Time `bson:"scheduledAt,omitempty" json:"scheduled_at,omitempty"`
|
|
ExecutedAt time.Time `bson:"executedAt,omitempty" json:"executed_at,omitempty"`
|
|
CancelledAt time.Time `bson:"cancelledAt,omitempty" json:"cancelled_at,omitempty"`
|
|
|
|
IdempotencyKey string `bson:"idempotencyKey,omitempty" json:"idempotency_key,omitempty"`
|
|
LedgerReference string `bson:"ledgerReference,omitempty" json:"ledger_reference,omitempty"`
|
|
ErrorMessage string `bson:"errorMessage,omitempty" json:"error_message,omitempty"`
|
|
|
|
Active bool `bson:"active,omitempty" json:"active,omitempty"`
|
|
}
|