class tDocumentsSchema(ma.SQLAlchemyAutoSchema): class Meta: model = tDocuments load_instance = True created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S+09:00') updated_at = fields.DateTime('%Y-%m-%dT%H:%M:%S+09:00')
class FollowSchema(ma.Schema): class Meta: # 欲しいデータを記述 fields = ("id", "from_id", "to_id", "createTime", "updateTime") createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class ModelSchema(ma.ModelSchema): created_at = fields.DateTime('%Y/%m/%d') updated_at = fields.DateTime('%Y/%m/%d') def __init__(self, *args, **kwargs): include = kwargs.get('include', []) exclude = kwargs.get('exclude', []) if not (isinstance(include, list) or isinstance(include, tuple)): raise ValueError('`include` option must be a list or tuple.') elif include: self.opts.exclude = list(set(self.opts.exclude) - set(include)) del kwargs['include'] if not (isinstance(exclude, list) or isinstance(exclude, tuple)): raise ValueError('`exclude` option must be a list or tuple.') elif exclude: self.opts.exclude = list(set(self.opts.exclude) | set(exclude)) del kwargs['exclude'] super().__init__(*args, **kwargs) def dump(self, obj, many=None, update_fields=True, **kwargs): # 最新のmarshmallowのdumpは引数がmanyまでなのでflask_marshmallowのバージョンがあがれば変更 data = super().dump(obj, many=many, update_fields=update_fields, **kwargs) if hasattr(self.Meta, 'exclude'): # 親クラスのoptsは最初の1度しかインスタンスにならないためexcludeを元に戻す self.opts.exclude = self.Meta.exclude return data
class GenreSchema(ma.Schema): class Meta: # 欲しいデータを記述 fields = ("id", "name", "createTime", "updateTime") createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class NotificationSchema(ma.Schema): class Meta: # 欲しいデータを記述 fields = ("id", "user_id", "desc", "type", "img", "createTime", "updateTime") createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class ContentSchema(ma.ModelSchema): class Meta: model = Content id = field_for(Content, 'id', dump_only=False) user_id = field_for(Content, 'user_id', dump_only=False) created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S') updated_at = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class ApiKeyHistorySchema(ma.Schema): id = fields.UUID() name = fields.String() service_id = fields.UUID() expiry_date = fields.DateTime() created_at = fields.DateTime() updated_at = fields.DateTime() created_by_id = fields.UUID()
class MessageSchema(ma.Schema): class Meta: # 欲しいデータを記述 fields = ("id", "sentence", "thread_id", "sender_id", "createTime", "updateTime") createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class TaskSchema(EndDateValidationMixin, Schema): _id = fields.Str(dump_only=True, required=True) description = fields.Str(required=True, allow_none=False, validate=not_empty) end_date = fields.DateTime(required=True) created_at = fields.DateTime(missing=datetime.utcnow()) done = fields.Boolean(missing=False) user_id = fields.String()
class ServiceHistorySchema(ma.Schema): id = fields.UUID() name = fields.String() created_at = fields.DateTime() updated_at = fields.DateTime() active = fields.Boolean() message_limit = fields.Integer() restricted = fields.Boolean() email_from = fields.String() created_by_id = fields.UUID() version = fields.Integer()
class JobSchema(BaseSchema): created_by_user = fields.Nested(UserSchema, attribute="created_by", dump_to="created_by", only=["id", "name"], dump_only=True) created_by = field_for(models.Job, 'created_by', required=True, load_only=True) job_status = field_for(models.JobStatus, 'name', required=False) scheduled_for = fields.DateTime() service_name = fields.Nested(ServiceSchema, attribute="service", dump_to="service_name", only=["name"], dump_only=True) @validates('scheduled_for') def validate_scheduled_for(self, value): _validate_datetime_not_in_past(value) _validate_datetime_not_more_than_96_hours_in_future(value) class Meta: model = models.Job exclude = ('notifications', 'notifications_sent', 'notifications_delivered', 'notifications_failed') strict = True
class Publicacion_Schema(ma.Schema): class Meta: # Campos que se exponen fields = ('id', 'titulo', 'fecha', 'contraofertaDeseada', 'descripcionContaoferta', 'usuario_id', 'objeto_id') fecha = fd.DateTime(as_string=True)
class Trueque_Schema(ma.Schema): class Meta: # Campos que se exponen fields = ('id', 'activo', 'diaEntrega', 'etapa', 'localizacion_id', 'publicacion_id', 'contraoferta_id') diaEntrega = fd.DateTime(as_string=True)
class DownloadListSchema(BaseMarshmallow): class Meta: fields = ("id", "title", "description", "version", "frequency", "language", "size", "image", "category_structure", "category_id", "category", "update_time") update_time = fields.DateTime("%Y-%m-%d") image = fields.String(attribute="cover.url") category = fields.Nested(CategoryInfoSchema) category_structure = fields.Nested(CategoryInfoSchema, attribute="category.structure") size = fields.String(attribute="file.size")
class TransactionsSerializer(ma.SQLAlchemyAutoSchema): id = fields.Str() customer_id = fields.Str(required=True) doc_id = fields.Str(required=True) score = fields.Float(required=True, default=0.0) income = fields.Float(required=True, default=0.0) requested_value = fields.Float(required=True, default=0.0) installments = fields.Integer(required=True, default=0) status = fields.Integer(required=True, default=400) time = fields.DateTime(requested=True, default=datetime.now) class Meta: model = Transactions include_fk = True
class PaymentIsoClientRequestSchema(Schema): class Meta: strict = True required = True allow_none = False organisation_id = fields.Integer() trx_type_id = fields.Integer() trx_amount = fields.Number() va_number = fields.Str() location = fields.Str() transaction_date = fields.DateTime() description = fields.Str() trace_number = fields.Str() username = fields.Str() customer_name = fields.Str() obu_wallet_id = fields.Integer() customer_id = fields.Integer() @post_load def get_payment_isoclient_request(self, data): return PaymentIsoClientData(**data)
class TodoSchema(ma.ModelSchema): class Meta: model = Todo created = fields.DateTime('%Y-%m-%dT%H:%M:%S') updated = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class RecipesSchema(ma.ModelSchema): class Meta: model = RecipesModel created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S') updated_at = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class LoginSchema(ma.ModelSchema): class Meta: model = Login created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S+09:00') updated_at = fields.DateTime('%Y-%m-%dT%H:%M:%S+09:00')
class UserSchema(ma.ModelSchema): class Meta: model = User created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S') updated_at = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class HogeSchema(ma.ModelSchema): class Meta: model = HogeModel createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class UpdateTaskSchema(EndDateValidationMixin, Schema): description = fields.Str(allow_none=False, validate=not_empty) end_date = fields.DateTime() done = fields.Boolean()
class ResultSchema(ma.ModelSchema): class Meta: model = ResultModel createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class TaskSchema(ma.ModelSchema): class Meta: model = TaskModel createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class CategoryListAdminSchema(BaseMarshmallow): class Meta: fields = ("id", "title", "sort", "module", "create_time", "sub") sub = fields.Nested(SubCategorySchema, many=True) create_time = fields.DateTime('%Y-%m-%d %H:%M')
class InformationSchema(ma.ModelSchema): class Meta: model = Information created_at = fields.DateTime('%Y-%m-%dT%H:%M:%S')
class PictureAdminSchema(BaseMarshmallow): class Meta: fields = ("id", "description", "image", "update_time", "image_id") image = fields.String(attribute="image.url") update_time = fields.DateTime("%Y-%m-%d %H:%M")
# book_id = db.Column(db.String(255), nullable=True, ForeignKey('books.id')) createTime = db.Column(db.DateTime, nullable=False, default=datetime.now) updateTime = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now) message = db.relationship("MessageModel") def __init__(self, name, genre_id, book_id): # self.id = id self.name = name self.genre_id = genre_id self.book_id = book_id def __repr__(self): return '<ThreadModel {}:{}:{}:{}>'.format(self.id, self.name, self.genre_id, self.book_id) class ThreadSchema(ma.Schema): class Meta: # 欲しいデータを記述 fields = ("id", "name", "genre_id", "book_id", "createTime", "updateTime") createTime = fields.DateTime('%Y-%m-%dT%H:%M:%S') updateTime = fields.DateTime('%Y-%m-%dT%H:%M:%S')