from sqlalchemy import Index, create_engine, Column, Integer, String, Boolean, Text, ForeignKey from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from app.permit.engine import Base class PMDataPermit(Base): __tablename__ = 'pm_data_permit' id = Column(Integer, primary_key=True, autoincrement=True) use_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) # utf16 date_e = Column(String(50), nullable=True) deleted_at = Column(String(50), nullable=True) user_id = Column(Integer, nullable=False) service_id = Column(String(50), nullable=False) entity_type = Column(String(50), nullable=True) entity_id = Column(String(50), nullable=False) create = Column(Boolean, nullable=True) read = Column(Boolean, nullable=True) update = Column(Boolean, nullable=True) delete = Column(Boolean, nullable=True) perm_type = Column(Integer, nullable=True, comment='read : 1, write: 10, admin: 500, owner: 1000') class PMUserSteps(Base): __tablename__ = 'pm_user_steps' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) deleted_at = Column(String(50), nullable=True) section_id = Column(Integer, nullable=True) project_id = Column(Integer, nullable=True, index=True) step_id = Column(Integer, nullable=True) user_id = Column(Integer, nullable=True) perm_type = Column(Integer, nullable=True) meta = Column(Text, nullable=True) data_value = Column(String(255), nullable=True, index=True) class PMFilePermit(Base): __tablename__ = 'pm_file_permit' id = Column(Integer, primary_key=True, autoincrement=True) use_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) deleted_at = Column(String(50), nullable=True) user_id = Column(Integer, nullable=False, comment='شناسه کاربر مورد بحث دسترسی') service_id = Column(String(50), nullable=False, comment='micro_service_id : repo, message,...') entity_id = Column(String(50), nullable=False, comment='file_id') file_type = Column(String(50), nullable=True, comment='jpg, audio, video, owl, ....') file_name = Column(String(50), nullable=False, comment='نامی که به کاربر نشان داده میشود \\ پیش فرض نام اصلی هست') file_path = Column(String(255), nullable=False, comment='مسیر لوکال سرور برای دسترسی مستقیم میکروسرویس‌ها') create = Column(Boolean, nullable=True) read = Column(Boolean, nullable=True) update = Column(Boolean, nullable=True) delete = Column(Boolean, nullable=True) perm_type = Column(Integer, nullable=True, comment='read : 1, write: 10, admin: 500, owner: 1000') meta = Column(Text, nullable=True, comment='اطلاعات جانبی ذخیره شده در قالب json یا txt') class PMProjects(Base): __tablename__ = 'pm_projects' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) title = Column(String(255), nullable=True) users = Column(String(255), nullable=True, default='') organ = Column(String(255), nullable=True) owner = Column(Integer, nullable=False, default=0) comment = Column(Text, nullable=True) deleted_at = Column(String(50), nullable=True) link = Column(String(255), nullable=True) admin_users = Column(String(255), nullable=True) showInDashboard = Column(Boolean, nullable=True, default=True) tags = Column(String(255), nullable=True, default='') __table_args__ = ( Index('users', 'users'), ) class PMRoles(Base): __tablename__ = 'pm_roles' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) project_id = Column(Integer, nullable=False, index=True) title = Column(String(255), nullable=True, index=True) deleted_at = Column(String(50), nullable=True) class PMSectionRole(Base): __tablename__ = 'pm_section_role' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) section_id = Column(Integer, nullable=False, index=True) project_id = Column(Integer, nullable=False, index=True) role_id = Column(Integer, nullable=False, index=True) state = Column(Integer, nullable=False, default=0) deleted_at = Column(String(50), nullable=True) class PMSectionSteps(Base): __tablename__ = 'pm_section_steps' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) deleted_at = Column(String(50), nullable=True) section_id = Column(Integer, nullable=True) project_id = Column(Integer, nullable=True, index=True) title = Column(String(50), nullable=True, index=True) step_key = Column(String(50), nullable=True) step_order = Column(Integer, nullable=True) ok_next = Column(Integer, nullable=True) no_next = Column(Integer, nullable=True) meta = Column(Text, nullable=True) schema = Column(Text, nullable=True) data_type = Column(String(50), nullable=True) data_options = Column(Text, nullable=True) class PMSectionUser(Base): __tablename__ = 'pm_section_user' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) section_id = Column(Integer, nullable=False, index=True) project_id = Column(Integer, nullable=False, index=True) user_id = Column(Integer, nullable=False, index=True) state = Column(Integer, nullable=False, default=0) deleted_at = Column(String(50), nullable=True) role_id = Column(Integer, nullable=True) class PMSections(Base): __tablename__ = 'pm_sections' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) project_id = Column(Integer, nullable=False, index=True) section_title = Column(String(255), nullable=True, index=True) action_title = Column(String(255), nullable=True, index=True) section_tag = Column(String(50), nullable=True) action_tag = Column(String(50), nullable=True) deleted_at = Column(String(50), nullable=True) class PMUserRole(Base): __tablename__ = 'pm_user_role' id = Column(Integer, primary_key=True, autoincrement=True) user_c = Column(Integer, nullable=True) user_e = Column(Integer, nullable=True) date_c = Column(String(50), nullable=True) date_e = Column(String(50), nullable=True) user_id = Column(Integer, nullable=False, index=True) project_id = Column(Integer, nullable=True, index=True) role_id = Column(Integer, nullable=False, index=True) state = Column(Integer, nullable=False, default=0) deleted_at = Column(String(50), nullable=True)