model.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from datetime import datetime
  2. from sqlalchemy import Boolean, DateTime, Integer, String, Text
  3. from sqlalchemy.orm import Mapped, mapped_column
  4. from app.core.base_model import PaymentModelMixin, TenantMixin
  5. from .enums import FacetofaceOrderStatus
  6. class FacetofaceOrderModel(PaymentModelMixin, TenantMixin):
  7. """当面付代开通申请单"""
  8. __tablename__ = "pay_facetoface_order"
  9. __table_args__ = {"comment": "当面付代开通申请单"}
  10. enterprise_id: Mapped[str | None] = mapped_column(
  11. String(64), unique=True, index=True, comment="关联企业ID"
  12. )
  13. batch_no: Mapped[str | None] = mapped_column(
  14. String(64), unique=True, index=True, comment="支付宝事务编号"
  15. )
  16. order_no: Mapped[str | None] = mapped_column(
  17. String(64), index=True, comment="签约单号"
  18. )
  19. order_status: Mapped[str] = mapped_column(
  20. String(32),
  21. default=FacetofaceOrderStatus.INIT.value,
  22. index=True,
  23. comment="申请单状态",
  24. )
  25. account: Mapped[str | None] = mapped_column(
  26. String(128), comment="商户支付宝账号/pid"
  27. )
  28. contact_name: Mapped[str | None] = mapped_column(
  29. String(32), comment="联系人名称"
  30. )
  31. contact_mobile: Mapped[str | None] = mapped_column(
  32. String(16), comment="联系人手机号"
  33. )
  34. contact_email: Mapped[str | None] = mapped_column(
  35. String(64), comment="联系人邮箱"
  36. )
  37. order_ticket: Mapped[str | None] = mapped_column(
  38. String(40), comment="订单授权凭证(预授权模式)"
  39. )
  40. rate: Mapped[str | None] = mapped_column(
  41. String(8), comment="费率(sign_and_auth=true时必填)"
  42. )
  43. sign_and_auth: Mapped[bool] = mapped_column(
  44. Boolean, default=False, comment="是否签约且授权"
  45. )
  46. merchant_pid: Mapped[str | None] = mapped_column(
  47. String(32), comment="商户pid(query返回)"
  48. )
  49. confirm_url: Mapped[str | None] = mapped_column(
  50. Text, comment="商家确认链接"
  51. )
  52. app_auth_token: Mapped[str | None] = mapped_column(
  53. String(128), comment="应用授权令牌"
  54. )
  55. app_refresh_token: Mapped[str | None] = mapped_column(
  56. String(128), comment="刷新令牌"
  57. )
  58. auth_app_id: Mapped[str | None] = mapped_column(
  59. String(32), comment="授权商户的appId"
  60. )
  61. user_id: Mapped[str | None] = mapped_column(
  62. String(32), comment="授权商户的userId"
  63. )
  64. open_id: Mapped[str | None] = mapped_column(
  65. String(128), comment="授权商户的openId"
  66. )
  67. expires_in: Mapped[str | None] = mapped_column(
  68. String(16), comment="授权令牌过期秒数"
  69. )
  70. re_expires_in: Mapped[str | None] = mapped_column(
  71. String(16), comment="刷新令牌过期秒数"
  72. )
  73. reject_reason: Mapped[str | None] = mapped_column(
  74. Text, comment="驳回原因"
  75. )
  76. remark: Mapped[str | None] = mapped_column(
  77. Text, comment="备注"
  78. )
  79. last_query_time: Mapped[datetime | None] = mapped_column(
  80. DateTime, comment="最后查询时间"
  81. )
  82. next_query_time: Mapped[datetime | None] = mapped_column(
  83. DateTime, index=True, comment="下次查询时间"
  84. )
  85. query_count: Mapped[int] = mapped_column(
  86. Integer, default=0, comment="已查询次数"
  87. )