Files
mousehold/packages/domain/mousehold_domain/enums.py
2026-06-28 13:48:15 +02:00

183 lines
4.2 KiB
Python

from enum import StrEnum
class AccountType(StrEnum):
CHECKING = "checking"
SHARED_CHECKING = "shared_checking"
PAYPAL = "paypal"
CREDIT_CARD = "credit_card"
KLARNA = "klarna"
CASH = "cash"
LIABILITY = "liability"
SAVINGS = "savings"
OTHER = "other"
class VisibilityMode(StrEnum):
PRIVATE = "private"
SHARED_SUMMARY = "shared_summary"
SHARED_FULL = "shared_full"
SETTLEMENT_ONLY = "settlement_only"
class SourceType(StrEnum):
MANUAL = "manual"
BANK_CSV = "bank_csv"
FINTS = "fints"
PSD2_AGGREGATOR = "psd2_aggregator"
PAYPAL_API = "paypal_api"
PAYPAL_CSV = "paypal_csv"
PAYPAL_EMAIL = "paypal_email"
KLARNA_CSV = "klarna_csv"
KLARNA_EMAIL = "klarna_email"
ORDER_CONFIRMATION_EMAIL = "order_confirmation_email"
IMAP_EMAIL = "imap_email"
PDF_INVOICE = "pdf_invoice"
RECEIPT_PHOTO = "receipt_photo"
LOCAL_AGENT = "local_agent"
API = "api"
class ObservationStatus(StrEnum):
NEW = "new"
PARSED = "parsed"
CANDIDATE_CREATED = "candidate_created"
IGNORED = "ignored"
DUPLICATE_SOURCE = "duplicate_source"
ERROR = "error"
class FinancialEventType(StrEnum):
EXPENSE = "expense"
INCOME = "income"
TRANSFER = "transfer"
LIABILITY_PAYMENT = "liability_payment"
PROMISED_PAYMENT = "promised_payment"
REFUND = "refund"
REIMBURSEMENT = "reimbursement"
FEE = "fee"
INTEREST = "interest"
ADJUSTMENT = "adjustment"
class FinancialEventStatus(StrEnum):
CANDIDATE = "candidate"
ANNOUNCED = "announced"
OUTSTANDING = "outstanding"
CONFIRMED = "confirmed"
BOOKED = "booked"
SETTLED = "settled"
CANCELLED = "cancelled"
IGNORED = "ignored"
class EventObservationRelation(StrEnum):
EVIDENCE_FOR = "evidence_for"
DUPLICATE_SOURCE = "duplicate_source"
IMPORTED_FROM = "imported_from"
PARSER_SOURCE = "parser_source"
STATEMENT_SOURCE = "statement_source"
class RelationType(StrEnum):
DUPLICATE_OF = "duplicate_of"
SAME_ECONOMIC_EVENT_AS = "same_economic_event_as"
SETTLES = "settles"
FUNDS = "funds"
REIMBURSES = "reimburses"
REFUNDS = "refunds"
REVERSES = "reverses"
REPLACES_PENDING_AUTHORIZATION = "replaces_pending_authorization"
PART_OF_STATEMENT = "part_of_statement"
class ProjectStatus(StrEnum):
IDEA = "idea"
PLANNING = "planning"
ACTIVE = "active"
COMPLETED = "completed"
CANCELLED = "cancelled"
ARCHIVED = "archived"
class PlanningStatus(StrEnum):
IDEA = "idea"
ESTIMATED = "estimated"
COMMITTED = "committed"
CANCELLED = "cancelled"
class PaymentStatus(StrEnum):
UNPAID = "unpaid"
PARTIALLY_PAID = "partially_paid"
PAID = "paid"
REFUNDED = "refunded"
PARTIALLY_REFUNDED = "partially_refunded"
class ReconciliationStatus(StrEnum):
NO_EVIDENCE = "no_evidence"
EMAIL_SEEN = "email_seen"
RECEIPT_SEEN = "receipt_seen"
BANK_MATCHED = "bank_matched"
STATEMENT_MATCHED = "statement_matched"
MANUALLY_CONFIRMED = "manually_confirmed"
class SettlementStatus(StrEnum):
NOT_SHARED = "not_shared"
UNSETTLED = "unsettled"
PARTIALLY_SETTLED = "partially_settled"
SETTLED = "settled"
IGNORED = "ignored"
class PaymentLineStatus(StrEnum):
EXPECTED = "expected"
SCHEDULED = "scheduled"
PAID = "paid"
RECONCILED = "reconciled"
FAILED = "failed"
CANCELLED = "cancelled"
class RecurringInterval(StrEnum):
MONTHLY = "monthly"
YEARLY = "yearly"
QUARTERLY = "quarterly"
WEEKLY = "weekly"
CUSTOM = "custom"
class RecurringCommitmentStatus(StrEnum):
ACTIVE = "active"
PAUSED = "paused"
CANCELLED = "cancelled"
UNKNOWN = "unknown"
class PromisedPaymentStatus(StrEnum):
EXPECTED = "expected"
SCHEDULED = "scheduled"
DEBITED = "debited"
RECONCILED = "reconciled"
FAILED = "failed"
CANCELLED = "cancelled"
class ImportConnectionType(StrEnum):
FINTS = "fints"
PSD2_AGGREGATOR = "psd2_aggregator"
IMAP = "imap"
PAYPAL_API = "paypal_api"
CSV_FOLDER = "csv_folder"
LOCAL_FOLDER = "local_folder"
LOCAL_AGENT = "local_agent"
class ImportConnectionStatus(StrEnum):
ACTIVE = "active"
NEEDS_AUTH = "needs_auth"
ERROR = "error"
DISABLED = "disabled"