from sqlalchemy import DateTime, String from sqlalchemy.orm import mapped_column from reworkd_platform.db.base import TrackedModel class Organization(TrackedModel): __tablename__ = "organization" name = mapped_column(String, nullable=False) created_by = mapped_column(String, nullable=False) class OrganizationUser(TrackedModel): __tablename__ = "organization_user" user_id = mapped_column(String, nullable=False) organization_id = mapped_column(String, nullable=False) role = mapped_column(String, nullable=False, default="member") class OauthCredentials(TrackedModel): __tablename__ = "oauth_credentials" user_id = mapped_column(String, nullable=False) organization_id = mapped_column(String, nullable=True) provider = mapped_column(String, nullable=False) state = mapped_column(String, nullable=False) redirect_uri = mapped_column(String, nullable=False) # Post-installation token_type = mapped_column(String, nullable=True) access_token_enc = mapped_column(String, nullable=True) access_token_expiration = mapped_column(DateTime, nullable=True) refresh_token_enc = mapped_column(String, nullable=True) scope = mapped_column(String, nullable=True)