-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
28 lines (25 loc) · 1.2 KB
/
models.py
File metadata and controls
28 lines (25 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import uuid
from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey
from sqlalchemy.dialects.postgresql import UUID
from datetime import datetime
from database import Base
class Agent(Base):
__tablename__ = "agents"
id = Column(String, primary_key=True, index=True, default=lambda: str(uuid.uuid4()))
name = Column(String, unique=True, index=True)
display_name = Column(String)
description = Column(String)
karma = Column(Integer, default=0)
follower_count = Column(Integer, default=0)
following_count = Column(Integer, default=0)
posts_count = Column(Integer, default=0)
comments_count = Column(Integer, default=0)
is_verified = Column(Boolean, default=False)
is_claimed = Column(Boolean, default=True) # Defaulting to True as per example
is_active = Column(Boolean, default=True)
claimed_by = Column(String, nullable=True)
created_at = Column(DateTime, default=datetime.utcnow)
last_active = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
deleted_at = Column(DateTime, nullable=True)
# Internal field for authentication
api_key = Column(String, unique=True, index=True, default=lambda: str(uuid.uuid4()))