from sqlalchemy import Column, Integer, String, ForeignKey, TIMESTAMP, Text, JSON
from passlib.context import CryptContext
from sqlalchemy.orm import sessionmaker, relationship
from datetime import datetime
from .database import Base

pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")

class Courses(Base):
    __tablename__ = "courses"
    
    id = Column(Integer, primary_key=True, index=True)
    course_id = Column(String(255), nullable=True)
    topic = Column(String, nullable=True)
    task_id = Column(String(255), nullable=True)
    skill_development = Column(String(255), nullable=True)
    education_degree = Column(String(255), nullable=True)
    allocated_time = Column(String(255), nullable=True)
    mode_of_delivery = Column(String(255), nullable=True)
    tone = Column(String(255), nullable=True)
    weblinks = Column(Text, nullable=True)
    language = Column(String(255), nullable=True)
    content_description = Column(Text, nullable=True)
    content_outcomes = Column(Text, nullable=True)
    content_objectives = Column(Text, nullable=True)
    content_summary = Column(Text, nullable=True)
    content_outline = Column(Text, nullable=True)
    learning_approach = Column(Text, nullable=True)
    no_of_modules = Column(Integer, nullable=True)
    email = Column(String(255), unique=True, nullable=True)
    status = Column(String(255), nullable=True)
    course_imscc_url = Column(String, nullable=True)
    course_step = Column(Integer, default=1)
    created_at = Column(TIMESTAMP, default=datetime.utcnow)
    updated_at = Column(TIMESTAMP, default=datetime.utcnow, onupdate=datetime.utcnow)


