mirror of
https://github.com/Screenly/Anthias.git
synced 2026-01-25 22:48:27 -05:00
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
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()
|