refactor: 重构 schemas 结构,统一枚举定义

This commit is contained in:
qzl
2026-03-25 12:36:31 +08:00
parent 389f5248fc
commit d22ded21f8
122 changed files with 774 additions and 1456 deletions
+2 -1
View File
@@ -6,7 +6,7 @@ from models.automation_jobs import AutomationJob
from models.group_members import GroupMember
from models.groups import Group
from models.inbox_messages import InboxMessage
from models.invite_code import InviteCode, InviteCodeStatus
from models.invite_code import InviteCode
from models.llm import Llm
from models.llm_factory import LlmFactory
from models.memories import Memory
@@ -16,6 +16,7 @@ from models.schedule_subscriptions import ScheduleSubscription
from models.system_agents import SystemAgents
from models.todos import Todo
from models.todo_sources import TodoSource
from schemas.enums import InviteCodeStatus
__all__ = [
"AgentChatMessage",
+2 -7
View File
@@ -2,7 +2,6 @@ from __future__ import annotations
from decimal import Decimal
import uuid
from enum import Enum
from sqlalchemy import (
BigInteger,
@@ -19,13 +18,9 @@ from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import AgentChatMessageRole
class AgentChatMessageRole(str, Enum):
USER = "user"
ASSISTANT = "assistant"
SYSTEM = "system"
TOOL = "tool"
__all__ = ["AgentChatMessage", "AgentChatMessageRole"]
class AgentChatMessage(TimestampMixin, SoftDeleteMixin, Base):
+2 -12
View File
@@ -3,7 +3,6 @@ from __future__ import annotations
from datetime import datetime
from decimal import Decimal
import uuid
from enum import Enum
from sqlalchemy import (
DateTime,
@@ -19,18 +18,9 @@ from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import AgentChatSessionStatus, SessionType
class AgentChatSessionStatus(str, Enum):
PENDING = "pending"
RUNNING = "running"
COMPLETED = "completed"
FAILED = "failed"
class SessionType(str, Enum):
CHAT = "chat"
AUTOMATION = "automation"
__all__ = ["AgentChatSession", "AgentChatSessionStatus", "SessionType"]
class AgentChatSession(TimestampMixin, SoftDeleteMixin, Base):
+2 -10
View File
@@ -2,23 +2,15 @@ from __future__ import annotations
import uuid
from datetime import datetime
from enum import Enum
from sqlalchemy import DateTime, JSON, String
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import AutomationJobStatus, ScheduleType
class AutomationJobStatus(str, Enum):
ACTIVE = "active"
DISABLED = "disabled"
class ScheduleType(str, Enum):
DAILY = "daily"
WEEKLY = "weekly"
__all__ = ["AutomationJob", "AutomationJobStatus", "ScheduleType"]
class AutomationJob(TimestampMixin, SoftDeleteMixin, Base):
+2 -8
View File
@@ -2,21 +2,15 @@ from __future__ import annotations
import uuid
from datetime import datetime
from enum import Enum
from sqlalchemy import DateTime, String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import FriendshipStatus
class FriendshipStatus(str, Enum):
PENDING = "pending"
ACCEPTED = "accepted"
BLOCKED = "blocked"
DECLINED = "declined"
CANCELED = "canceled"
__all__ = ["Friendship", "FriendshipStatus"]
class Friendship(TimestampMixin, SoftDeleteMixin, Base):
+7 -17
View File
@@ -1,30 +1,20 @@
from __future__ import annotations
import uuid
from enum import Enum
from sqlalchemy import String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import GroupMemberRole, GroupMemberSource, GroupMemberStatus
class GroupMemberRole(str, Enum):
OWNER = "owner"
ADMIN = "admin"
MEMBER = "member"
class GroupMemberSource(str, Enum):
INVITED = "invited"
JOINED = "joined"
class GroupMemberStatus(str, Enum):
ACTIVE = "active"
MUTED = "muted"
REMOVED = "removed"
__all__ = [
"GroupMember",
"GroupMemberRole",
"GroupMemberSource",
"GroupMemberStatus",
]
class GroupMember(TimestampMixin, SoftDeleteMixin, Base):
+2 -5
View File
@@ -1,18 +1,15 @@
from __future__ import annotations
import uuid
from enum import Enum
from sqlalchemy import String, Text
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import GroupStatus
class GroupStatus(str, Enum):
ACTIVE = "active"
ARCHIVED = "archived"
__all__ = ["Group", "GroupStatus"]
class Group(TimestampMixin, SoftDeleteMixin, Base):
+2 -14
View File
@@ -1,27 +1,15 @@
from __future__ import annotations
import uuid
from enum import Enum
from sqlalchemy import Boolean, String
from sqlalchemy.dialects.postgresql import JSONB, UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, TimestampMixin
from schemas.enums import InboxMessageStatus, InboxMessageType
class InboxMessageType(str, Enum):
FRIEND_REQUEST = "friend_request"
CALENDAR = "calendar"
SYSTEM = "system"
GROUP = "group"
class InboxMessageStatus(str, Enum):
PENDING = "pending"
ACCEPTED = "accepted"
REJECTED = "rejected"
DISMISSED = "dismissed"
__all__ = ["InboxMessage", "InboxMessageType", "InboxMessageStatus"]
class InboxMessage(TimestampMixin, Base):
+2 -6
View File
@@ -2,7 +2,6 @@ from __future__ import annotations
import uuid
from datetime import datetime
from enum import Enum
from sqlalchemy import CheckConstraint, DateTime, ForeignKey, Integer, String
from sqlalchemy.dialects.postgresql import UUID
@@ -10,12 +9,9 @@ from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, TimestampMixin
from core.db.types import json_jsonb
from schemas.enums import InviteCodeStatus
class InviteCodeStatus(str, Enum):
ACTIVE = "active"
DISABLED = "disabled"
EXPIRED = "expired"
__all__ = ["InviteCode", "InviteCodeStatus"]
class InviteCode(TimestampMixin, Base):
+2 -10
View File
@@ -1,7 +1,6 @@
from __future__ import annotations
import uuid
from enum import Enum
from sqlalchemy import String
from sqlalchemy.dialects.postgresql import UUID
@@ -9,16 +8,9 @@ from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, TimestampMixin
from core.db.types import json_jsonb
from schemas.enums import MemoryStatus, MemoryType
class MemoryType(str, Enum):
USER = "user"
WORK = "work"
class MemoryStatus(str, Enum):
ACTIVE = "active"
DISABLED = "disabled"
__all__ = ["Memory", "MemoryType", "MemoryStatus"]
class Memory(TimestampMixin, Base):
+2 -13
View File
@@ -2,7 +2,6 @@ from __future__ import annotations
import uuid
from datetime import datetime
from enum import Enum
from sqlalchemy import DateTime, String, Text
from sqlalchemy.dialects.postgresql import UUID
@@ -10,19 +9,9 @@ from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from core.db.types import json_jsonb
from schemas.enums import ScheduleItemSourceType, ScheduleItemStatus
class ScheduleItemStatus(str, Enum):
ACTIVE = "active"
COMPLETED = "completed"
CANCELED = "canceled"
ARCHIVED = "archived"
class ScheduleItemSourceType(str, Enum):
MANUAL = "manual"
IMPORTED = "imported"
AGENT_GENERATED = "agent_generated"
__all__ = ["ScheduleItem", "ScheduleItemStatus", "ScheduleItemSourceType"]
class ScheduleItem(TimestampMixin, SoftDeleteMixin, Base):
+7 -20
View File
@@ -1,33 +1,20 @@
from __future__ import annotations
import uuid
from enum import Enum
from sqlalchemy import Integer, String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, TimestampMixin
from schemas.enums import NotifyLevel, SubscriptionPermission, SubscriptionStatus
class SubscriptionStatus(str, Enum):
ACTIVE = "active"
PENDING = "pending"
PAUSED = "paused"
UNSUBSCRIBED = "unsubscribed"
class NotifyLevel(str, Enum):
ALL = "all"
MENTIONS = "mentions"
NONE = "none"
class SubscriptionPermission(int, Enum):
VIEW = 1 # 001 - 可查看
INVITE = 2 # 010 - 可邀请
EDIT = 4 # 100 - 可编辑
OWNER = 7 # 111 - 所有者(VIEW + INVITE + EDIT
__all__ = [
"ScheduleSubscription",
"SubscriptionStatus",
"NotifyLevel",
"SubscriptionPermission",
]
class ScheduleSubscription(TimestampMixin, Base):
+2 -13
View File
@@ -2,26 +2,15 @@ from __future__ import annotations
import uuid
from datetime import datetime
from enum import Enum
from sqlalchemy import DateTime, Integer, String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import Mapped, mapped_column
from core.db.base import Base, SoftDeleteMixin, TimestampMixin
from schemas.enums import TodoPriority, TodoStatus
class TodoStatus(str, Enum):
PENDING = "pending"
DONE = "done"
CANCELED = "canceled"
class TodoPriority(int, Enum):
IMPORTANT_URGENT = 1
IMPORTANT_NOT_URGENT = 2
NOT_IMPORTANT_URGENT = 3
NOT_IMPORTANT_NOT_URGENT = 4
__all__ = ["Todo", "TodoStatus", "TodoPriority"]
class Todo(TimestampMixin, SoftDeleteMixin, Base):