Используйте только значение столбца по умолчанию, если другое поле имеет определенное значение

Если для visibility установлено значение 'private' то только редактируемый пользователь может видеть отправленное сообщение. Я хочу, чтобы поле created_at было задано, только если для visibility установлено значение 'public' . Как я могу это сделать?

 class Post(db.Model): id = db.Column(db.Integer, primary_key=True) created_at = db.Column(db.DateTime(timezone=True), server_default=func.now()) visibility = db.Column(db.String) 

Что-то вроде:

 server_default=<submit date value only if visibility column is set to 'public' otherwise keep it null>