"""Self-hosted employee directory. For sites with no external HR database. When employee_directory_mode is 'selfhosted', the employee lookup APIs read this app-owned table instead of the external directory, and the directory is managed in-app (CRUD + CSV import). to_dict emits the same keys the external contract returns (SSO, First_Name, Last_Name, Team, Role, Picture) so the frontend and both modes share one shape. """ from shopdb.api import db class DirectoryEmployee(db.Model): __tablename__ = 'directoryemployees' sso = db.Column(db.Integer, primary_key=True, autoincrement=False) firstname = db.Column(db.String(100), nullable=False) lastname = db.Column(db.String(100), nullable=False) team = db.Column(db.String(100)) role = db.Column(db.String(100)) picture = db.Column(db.String(255)) def to_dict(self): # Keys match the external employees contract the frontend consumes. return { 'SSO': self.sso, 'First_Name': self.firstname, 'Last_Name': self.lastname, 'Team': self.team, 'Role': self.role, 'Picture': self.picture, }