from imdb.models import ProductItem


class MetaItem:
    model = ProductItem

    # 同步资产系统产品信息
    def synchronous(self, _id, kwargs):
        return self.model.objects.update_or_create(defaults=kwargs, id=int(_id))

    # 解析数据整合
    @classmethod
    def parse_data(cls, data):
        params = {
            "sn": int(data.get("sn")) if data.get("sn") else None,
            "name": data.get("name", None),
            "type": data.get("type", None),
            "episodes": int(data.get("episodes")) if data.get("episodes") else None,
            "medium_episodes": int(data.get("medium_episodes")) if data.get("medium_episodes") else None,
            "item_status": data.get("item_status", None),
            "clarity": data.get("clarity", None),
            "authorized_start_time": data.get("authorized_start_time") if data.get("authorized_start_time") else None,
            "authorized_end_time": data.get("authorized_end_time") if data.get("authorized_end_time") else None,
            "authorized_way": data.get("authorized_way", None),
            "authorized_way_desc":  data.get("authorized_way_desc", None),
            "right": data.get("right", None),
            "up_copyright": data.get("up_copyright", None),
            "copy_chain": data.get("copy_chain", None),
            "site_limit": data.get("site_limit", None),
            "create_time": data.get("create_time", None),
            "update_time": data.get("update_time", None),
            "remark": data.get("remark", None),
            "status": data.get("status", None),
            "contract_id": data.get("contract_id", None),
            "grade": data.get("grade", None),
            "sold_from": data.get("authorized_start_time") if data.get("authorized_start_time") else None,
            "media_id": int(data.get("media_id")) if data.get("media_id") else None,
        }
        return {k: v for k, v in params.items() if v is not None}
