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"