from enum import Enum class ProductAdminRole(str, Enum): """Level 1 — VerifyPack internal staff.""" super_admin = "super_admin" admin = "admin" finance = "finance" support = "support" class ClientRole(str, Enum): """Level 2 — roles inside a client organization.""" admin = "admin" finance = "finance" user = "user" class SubscriptionStatus(str, Enum): active = "active" grace = "grace" # 30 days after expiry: read-only, verify still works archived = "archived" # verify still works, no new products/batches/QRs deleted = "deleted" # no access, data retained class ProductStatus(str, Enum): active = "active" inactive = "inactive" draft = "draft" archived = "archived" class QRType(str, Enum): batch = "batch" # Option 1 — one QR for the whole batch per_pack = "per_pack" # Option 2 — unique serialized QR per pack class QRStatus(str, Enum): active = "active" inactive = "inactive" expired = "expired" draft = "draft" disabled = "disabled" class ComplianceStatus(str, Enum): complete = "complete" pending = "pending" expired = "expired" expiring = "expiring" # within 30 days class VerificationState(str, Enum): genuine = "genuine" unverified = "unverified" not_found = "not_found" recalled = "recalled" class PaymentStatus(str, Enum): paid = "paid" pending = "pending" failed = "failed" refunded = "refunded" overdue = "overdue"