U
    KhkL                     @   sR   d dl Zd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 G dd de	jZdS )    N)settings)
migrationsmodelsc                   @   s	  e Zd ZdZddeejgZej	dde
jddddfd	e
jdd
ddfde
jejdddddfde
jddddfde
jdddddfde
jddejjdgdfde
jddddd fd!e
jdd"dd#fd$e
jdd%dd#fd&e
jdd'dejjjd(fd)e
jddd*d+fd,e
jd-ejjdgd.fd/e
jdd/d0dejj
jjd1d2d3fd4e
jdd5dejj
jjd6ejd7d8fd9e
jdd:dejj
jjd;ejd<d8fd=e
jdd>dejj
jjd?ejd@d8fdAe
jddAdBdejj
jjd1dCd3fgdDdddEdFgdGdHej	dIde
jddddfd	e
jdd
ddfde
jejdddddfde
jddddfde
jdddddfdJe
j ddKdLdMdNfdOe
j ddPdLdQdNfde
jddRdSdTfdUe
jddVdWdTfdXe
j ddYdLdZdNfd[e
j!dd\d]dTfd^e
j"d_d`dafdbe
j ddcdLdddNfdee
jdddfejjdgdgdhfdie
j ddjddkdlddmdnfd4e
jdd5dejj
jjd6ejd7d8fd9e
jdd:dejj
jjd;ejd<d8fd=e
jdd>dejj
jjd?ejd@d8fgdodpdIdqdrdsgdGdHej	dtde
jddddfd	e
jdd
ddfde
jejdddddfde
jddddfde
jdddddfdue
j!dddvddwdxfdye
j!ddzdd{dfd|e
j"dd}dd~dfd4e
jdd5dejj
jjd6ejd7d8fd9e
jdd:dejj
jjd;ejd<d8fde
jddddejj
jj#dddDdfd=e
jdd>dejj
jjd?ejd@d8fgdddtdugdGdHej	dde
jddddfd	e
jdd
ddfde
jejdddddfde
jddddfde
jdddddfde
j!ddddddxfde
jddddddfd4e
jdd5dejj
jjd6ejd7d8fd9e
jdd:dejj
jjd;ejd<d8fd=e
jdd>dejj
jjd?ejd@d8fde
jddddejj
jj#ddddfgdddddgdGdHej	dde
jddddfd	e
jdd
ddfde
jejdddddfde
jddddfde
jdddddfde
jdddddejjdgddfde
jddUddddWdfde
jddddejj
jjddddfd4e
jdd5dejj
jjd6ejd7d8fd9e
jdd:dejj
jjd;ejd<d8fd=e
jdd>dejj
jjd?ejd@d8fde
jddddejj
jj#ddddfgdddddge
j$ddgdde
j$dgdde
j$dgddge
j%e
&ddddgddHej'd1e
j$d/dgdddej'd1e
j$d!d$gdddej'd1e
j$d)dgdddej'd1e
j$dgdddej'd1e
j$dAgdddej(d1e
j%ddddej(d1e
j)e
j&de
*d$fddddddčdej'de
j$dJdOgdddej'de
j$dd[gdddej'de
j$dUdegdddej'de
j$dXdgdddej'de
j$dbgdddej'de
j$digdddej(de
j%ddddej'de
j$ddugdddej'de
j$dugdddej(de
j)e
j&de
*dyfddddddčdej'de
j$ddgdddej'de
j$dgdddgZ+dS )	MigrationT)	campaigns0001_initial)channelsr   	Playlists
created_atz&Timestamp when this object was createdz
Created At)auto_now_add	help_textverbose_name
updated_atz,Timestamp when this object was last modifiedz
Updated At)auto_nowr   r   idFz!Unique identifier for this object)defaulteditabler   primary_key	serialize
is_deletedz)Whether this object has been soft-deletedz
Is Deleted)r   r   r   
deleted_atz+Timestamp when this object was soft-deletedz
Deleted At)blankr   nullr   version   z*Version identifier for playlist versioningr   )r   r   
validatorsbroadcast_datezScheduled broadcast date)r   db_indexr   r   
start_datez%Start datetime for playlist broadcast)r   r   r   end_datez#End datetime for playlist broadcastxml_filez-Generated XML schedule file for this playlist)r   r   r   	upload_tois_draftz/Draft status flag (True=draft, False=published))r   r   r   draft_versionz#Version number for draft management)r   r   channelz$The channel this playlist belongs to	playlistszchannels.channel)r   	db_columnr   r   	on_deleterelated_nameto
created_byzUser who created this objectz%(class)s_createdz
Created By)r   r   r   r'   r(   r)   r   
deleted_byz!User who soft-deleted this objectz%(class)s_deletedz
Deleted By
updated_byz"User who last modified this objectz%(class)s_updatedz
Updated Byzone_channelz+Specific zone within the channel (optional)zchannels.channelzonePlaylistz-created_atz-id)r   verbose_name_pluraldb_tableordering)namefieldsoptionsVerifsnetworknamez Name of the broadcasting network   zNetwork Name)r   r   
max_lengthr   zonenamezName of the broadcasting zonez	Zone Namez)Date when the advertisement was broadcastzBroadcast Date)r   r   r   	trafficIdz/Traffic system identifier for the advertisementz
Traffic IDspotIdz,Unique identifier for the advertisement spotzSpot IDair_timez%Time when the advertisement was airedzAir Time
air_lengthz#Duration of the aired advertisementz
Air Length)r   r   airStatuscodez'Status code indicating broadcast resultzAir Status Coderevisionz+Revision number for the verification recordRevision)r   r   r   r   r   vercompleteverCompletezVerification completion status2   zVerification Complete)r   r&   r   r   r8   r   r   zAdvertisement VerificationzAdvertisement Verificationsz-broadcast_datez	-air_timez	-revisionWindowswindow_startz$Start time of the advertising windowzWindow Start)r   r   r   r   r   
window_endz"End time of the advertising windowz
Window Endwindow_durationz"Duration of the advertising windowzWindow Durationplaylistz#The playlist this window belongs towindowszplaylists.playlists)r   r&   r   r   r'   r(   r)   r   zAdvertising WindowzAdvertising WindowsAvailsavail_startz,Start time of the available advertising slotzAvail StartavailinwindowavailInWindowz1Position or identifier of avail within the windowzAvail in Window)r   r&   r   r   r   windowz,The advertising window this avail belongs toavailszplaylists.windowsWindowzAvailable SlotzAvailable SlotsAdspotsInAvailpositioninavailpositionInAvailz2Position of the ad spot within the avail (1-based)zPosition in Avail)r   r&   r   r   r   r   r   	trafficidz+Traffic system identifier for the placement)r   r&   r   r   r   r   adspotz#The advertisement spot being placedplacements_in_availzcampaigns.adspotszAd Spotavailz/The available slot where this ad spot is placedadspots_in_availzplaylists.availsAvailzAd Spot PlacementzAd Spot PlacementsAdspots_in_availadspot_avail_position_idx)r3   r2   adspot_spot_idxadspot_traffic_idx)positioninavail__isnullF)rW   rR    unique_adspot_position_per_avail)	conditionr3   r2   )r   r/   r0   r1   indexesconstraintsplaylist_channel_date_idx)
model_nameindexplaylist_datetime_range_idxplaylist_draft_created_idxplaylist_version_idxplaylist_zone_idx)r$   r   r   (unique_playlist_version_per_channel_date)rd   
constraintstart_date__lt)start_date__isnullT)end_date__isnullTOR)
_connectorplaylist_valid_date_range)checkr2   verifsverif_network_zone_idxverif_broadcast_air_idxverif_traffic_revision_idxverif_spot_date_idxverif_status_idxverif_complete_idx)r:   r;   r?   &unique_verif_per_traffic_spot_revisionwindow_playlist_start_idxwindow_start_idxwindow_start__lt)window_start__isnullT)window_end__isnullTwindow_valid_time_rangeavail_window_start_idxavail_position_idxN),__name__
__module____qualname__initialr   swappable_dependencyr   AUTH_USER_MODELdependenciesCreateModelr   DateTimeField	UUIDFielduuiduuid4BooleanFieldIntegerFielddjangocorer   MinValueValidator	DateField	FileFieldappsr%   utilsplaylist_xml_upload_path
ForeignKeydbdeletion
DO_NOTHINGSET_NULL	CharField	TimeFieldDurationFieldCASCADEIndexUniqueConstraintQAddIndexAddConstraintCheckConstraintF
operations r   r   A/var/www/html/Focus/src/apps/playlists/migrations/0001_initial.pyr      s  
"$$$""$$$$$$$$$$$&$$$$$.$$ r   )apps.playlists.utilsr   Zdjango.core.validatorsr   django.db.models.deletionr   django.confr   	django.dbr   r   r   r   r   r   r   <module>   s   