from django.utils import timezone
from anthias_app.models import Asset
from rest_framework.serializers import (
BooleanField,
CharField,
DateTimeField,
IntegerField,
ModelSerializer,
Serializer,
)
from api.serializers import UpdateAssetSerializer
from api.serializers.mixins import CreateAssetSerializerMixin
class AssetSerializerV2(ModelSerializer, CreateAssetSerializerMixin):
class Meta:
model = Asset
fields = [
‘asset_id’,
‘name’,
‘uri’,
‘start_date’,
‘end_date’,
‘duration’,
‘mimetype’,
‘is_enabled’,
‘nocache’,
‘play_order’,
‘skip_asset_check’,
‘is_active’,
‘is_processing’,
]
class CreateAssetSerializerV2(Serializer, CreateAssetSerializerMixin):
def init(self, *args, unique_name=False, **kwargs):
self.unique_name = unique_name
super().init(*args, **kwargs)
asset_id = CharField(read_only=True)
ext = CharField(write_only=True, required=False)
name = CharField()
uri = CharField()
start_date = DateTimeField(default_timezone=timezone.utc)
end_date = DateTimeField(default_timezone=timezone.utc)
duration = IntegerField()
mimetype = CharField()
is_enabled = BooleanField()
is_processing = BooleanField(required=False)
nocache = BooleanField(required=False)
play_order = IntegerField(required=False)
skip_asset_check = BooleanField(required=False)
def validate(self, data):
return self.prepare_asset(data, version='v2')
class UpdateAssetSerializerV2(UpdateAssetSerializer):
is_enabled = BooleanField()
is_processing = BooleanField(required=False)
nocache = BooleanField(required=False)
skip_asset_check = BooleanField(required=False)
duration = IntegerField()