feat: cards, attributes and modules
This commit is contained in:
		
							
								
								
									
										33
									
								
								models/module.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								models/module.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
from typing import TYPE_CHECKING
 | 
			
		||||
 | 
			
		||||
from sqlalchemy import Table, Column, ForeignKey
 | 
			
		||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
 | 
			
		||||
 | 
			
		||||
from models.base import BaseModel
 | 
			
		||||
 | 
			
		||||
if TYPE_CHECKING:
 | 
			
		||||
    from models import Project
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
project_module = Table(
 | 
			
		||||
    'project_module',
 | 
			
		||||
    BaseModel.metadata,
 | 
			
		||||
    Column('project_id', ForeignKey('projects.id')),
 | 
			
		||||
    Column('module_id', ForeignKey('modules.id')),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Module(BaseModel):
 | 
			
		||||
    __tablename__ = 'modules'
 | 
			
		||||
 | 
			
		||||
    id: Mapped[int] = mapped_column(primary_key=True)
 | 
			
		||||
    key: Mapped[str] = mapped_column(unique=True, nullable=False)
 | 
			
		||||
    is_deleted: Mapped[bool] = mapped_column(default=False)
 | 
			
		||||
 | 
			
		||||
    projects: Mapped[list['Project']] = relationship(
 | 
			
		||||
        'Project',
 | 
			
		||||
        uselist=True,
 | 
			
		||||
        secondary='project_module',
 | 
			
		||||
        back_populates='modules',
 | 
			
		||||
        lazy='noload',
 | 
			
		||||
    )
 | 
			
		||||
		Reference in New Issue
	
	Block a user