File size: 790 Bytes
4a2ab42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import uuid

from sqlalchemy import JSON, Boolean, Column, DateTime, Integer, String, Text

from core.database import Base, utc_now


class FeatureFlag(Base):
    __tablename__ = "feature_flags"

    flag_id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))
    name = Column(String, unique=True, nullable=False, index=True)
    description = Column(Text)
    enabled = Column(Boolean, default=False, index=True)
    rollout_percentage = Column(Integer, default=0)  # 0-100
    target_users = Column(JSON)  # List of user IDs
    target_contexts = Column(JSON)  # Targeting rules
    created_at = Column(DateTime, default=utc_now)
    updated_at = Column(DateTime, default=utc_now, onupdate=utc_now)
    disabled_at = Column(DateTime)
    disabled_reason = Column(Text)