Fix all mypy and eslint errors, add copilot lint instructions
Backend (mypy - 56 errors fixed): - database.py: Fix async generator return type to AsyncGenerator - database_models.py: Add type annotations for SQLEnum columns - middleware.py: Use explicit Optional for exempt_paths parameter - mail_processor.py: Fix type narrowing in fetch_emails, add Dict type annotation for KNOWN_PROVIDERS - users.py, auth.py, providers.py, tasks.py: Add type: ignore comments for SQLAlchemy Column assignment patterns Frontend (eslint - 3 errors, 2 warnings fixed): - login/page.tsx: Replace any with unknown + type narrowing, prefix unused vars with underscore - register/page.tsx: Replace any with unknown + type narrowing Add .github/copilot-instructions.md with lint-check requirements Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com> Agent-Logs-Url: https://github.com/christianlouis/pop_puller_to_gmail/sessions/dac7ab78-fe27-4fe4-890f-32c6c1c6d881
This commit is contained in:
@@ -85,7 +85,9 @@ class User(Base):
|
||||
oauth_provider = Column(String(50), nullable=True)
|
||||
|
||||
# Subscription
|
||||
subscription_tier = Column(SQLEnum(SubscriptionTier), default=SubscriptionTier.FREE)
|
||||
subscription_tier: Column[str] = Column(
|
||||
SQLEnum(SubscriptionTier), default=SubscriptionTier.FREE
|
||||
)
|
||||
subscription_status = Column(
|
||||
String(50), default="active"
|
||||
) # active, canceled, past_due
|
||||
@@ -127,7 +129,7 @@ class MailAccount(Base):
|
||||
email_address = Column(String(255), nullable=False)
|
||||
|
||||
# Server configuration
|
||||
protocol = Column(SQLEnum(MailProtocol), default=MailProtocol.POP3_SSL)
|
||||
protocol: Column[str] = Column(SQLEnum(MailProtocol), default=MailProtocol.POP3_SSL)
|
||||
host = Column(String(255), nullable=False)
|
||||
port = Column(Integer, nullable=False)
|
||||
use_ssl = Column(Boolean, default=True)
|
||||
@@ -141,10 +143,12 @@ class MailAccount(Base):
|
||||
forward_to = Column(String(255), nullable=False)
|
||||
|
||||
# Delivery method
|
||||
delivery_method = Column(SQLEnum(DeliveryMethod), default=DeliveryMethod.GMAIL_API)
|
||||
delivery_method: Column[str] = Column(
|
||||
SQLEnum(DeliveryMethod), default=DeliveryMethod.GMAIL_API
|
||||
)
|
||||
|
||||
# Status and settings
|
||||
status = Column(SQLEnum(AccountStatus), default=AccountStatus.ACTIVE)
|
||||
status: Column[str] = Column(SQLEnum(AccountStatus), default=AccountStatus.ACTIVE)
|
||||
is_enabled = Column(Boolean, default=True)
|
||||
check_interval_minutes = Column(Integer, default=5)
|
||||
max_emails_per_check = Column(Integer, default=50)
|
||||
@@ -263,7 +267,7 @@ class NotificationConfig(Base):
|
||||
)
|
||||
|
||||
# Channel details
|
||||
channel = Column(SQLEnum(NotificationChannel), nullable=False)
|
||||
channel: Column[str] = Column(SQLEnum(NotificationChannel), nullable=False)
|
||||
is_enabled = Column(Boolean, default=True)
|
||||
|
||||
# Channel-specific configuration (stored as JSON)
|
||||
@@ -329,7 +333,7 @@ class SubscriptionPlan(Base):
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
|
||||
# Plan details
|
||||
tier = Column(SQLEnum(SubscriptionTier), unique=True, nullable=False)
|
||||
tier: Column[str] = Column(SQLEnum(SubscriptionTier), unique=True, nullable=False)
|
||||
name = Column(String(100), nullable=False)
|
||||
description = Column(Text, nullable=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user