models.py 286 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005
  1. from itertools import chain
  2. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  3. from django.db import models
  4. from django.utils import timezone
  5. from imagekit.models import ProcessedImageField
  6. from imagekit.processors import ResizeToFill
  7. from Ansjer.config import SERVER_DOMAIN
  8. class PermissionsManager(models.Manager):
  9. use_in_migrations = True
  10. def get_by_natural_key(self, permName):
  11. return self.get(
  12. permName=permName
  13. )
  14. class RoleManager(models.Manager):
  15. """
  16. The manager for the auth's Role model..
  17. """
  18. use_in_migrations = True
  19. def get_by_natural_key(self, roleName):
  20. return self.get(roleName=roleName)
  21. class UserManager(BaseUserManager):
  22. def create_user(self, username, password, userID, is_active,
  23. user_isValid, **extra_fields):
  24. user = self.model(
  25. username=username,
  26. userID=userID,
  27. is_active=is_active,
  28. user_isValid=user_isValid,
  29. **extra_fields
  30. )
  31. user.set_password(password)
  32. user.save(using=self._db)
  33. role = Role.objects.get(rid=1)
  34. user.role.add(role)
  35. return user
  36. def create_superuser(self, username, password, userID, is_active,
  37. user_isValid, **extra_fields):
  38. # extra_fields.setdefault('is_superuser', is_superuser)
  39. is_superuser = extra_fields.get('is_superuser', None)
  40. if is_superuser != 100 and is_superuser != 1:
  41. raise ValueError('Superuser must have is_superuser=1 or 100.')
  42. return self.create_user(username, password, userID, is_active,
  43. user_isValid, **extra_fields)
  44. class Permissions(models.Model):
  45. permName = models.CharField(blank=True, null=True, max_length=32, unique=True, verbose_name=u'权限名称')
  46. description = models.CharField(blank=True, null=True, max_length=128, verbose_name=u'描述信息', default='')
  47. objects = PermissionsManager()
  48. class Meta:
  49. ordering = ['permName']
  50. db_table = 'permissions'
  51. verbose_name = u'role permission'
  52. verbose_name_plural = verbose_name
  53. unique_together = (('permName'),)
  54. def natural_key(self):
  55. return (self.permName)
  56. class MenuModel(models.Model):
  57. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  58. parentId = models.IntegerField(default=0, verbose_name='父节点ID')
  59. name = models.CharField(max_length=50, null=True, default='',
  60. verbose_name='名称') # 首字母大写,一定要与vue文件的name对应起来,用于noKeepAlive缓存控制(该项特别重要)
  61. path = models.CharField(max_length=100, null=True, default='', verbose_name='路径')
  62. component = models.CharField(max_length=100, null=True, default='', verbose_name='vue文件路径') # 所谓的vue 组件
  63. hidden = models.BooleanField(blank=True, default=False, verbose_name=u'是否隐藏')
  64. alwaysShow = models.BooleanField(blank=True, default=False, verbose_name=u'始终显示当前节点')
  65. levelHidden = models.BooleanField(blank=True, default=False, verbose_name=u'是否隐藏一级路由')
  66. title = models.CharField(max_length=50, default='', verbose_name='标题')
  67. icon = models.CharField(max_length=50, default='', verbose_name='图标名')
  68. isCustomSvg = models.BooleanField(blank=True, default=False, verbose_name=u'是否是自定义svg图标')
  69. noKeepAlive = models.BooleanField(blank=True, default=False, verbose_name=u'当前路由是否不缓存')
  70. noClosable = models.BooleanField(blank=True, default=False, verbose_name=u'当前路由是否可关闭多标签页')
  71. badge = models.CharField(max_length=10, default='', verbose_name='badge小标签(只支持子级)')
  72. tabHidden = models.BooleanField(blank=True, default=False, verbose_name=u'当前路由是否不显示多标签页')
  73. activeMenu = models.CharField(max_length=50, default='', verbose_name='高亮指定菜单')
  74. dot = models.BooleanField(blank=True, default=False, verbose_name=u'小圆点')
  75. dynamicNewTab = models.BooleanField(blank=True, default=False, verbose_name=u'动态传参路由是否新开标签页')
  76. redirect = models.CharField(max_length=50, default='', verbose_name='重定向')
  77. menu_code = models.CharField(max_length=100, default='', verbose_name='菜单编码')
  78. menutype = models.SmallIntegerField(default=1, verbose_name=u'类型') # 类型: 1-菜单 2-按钮
  79. sort = models.IntegerField(default=0, verbose_name='排序')
  80. class Meta:
  81. db_table = 'menu'
  82. verbose_name = u'菜单表'
  83. verbose_name_plural = verbose_name
  84. class Role(models.Model):
  85. rid = models.SmallIntegerField(primary_key=True, unique=True, verbose_name=u'用户角色组ID')
  86. roleName = models.CharField(max_length=32, unique=True,
  87. default='User', verbose_name=u'角色名称')
  88. permission = models.ManyToManyField(to='Permissions', blank=True, verbose_name=u'权限', db_table='role_permissions')
  89. menu = models.ManyToManyField(to='MenuModel', blank=True, verbose_name=u'后台菜单权限', db_table='role_menu')
  90. Description = models.TextField(blank=True, default='', verbose_name=u'描述信息')
  91. objects = RoleManager()
  92. class Meta:
  93. ordering = ['roleName']
  94. db_table = 'role'
  95. verbose_name = u'用户角色'
  96. verbose_name_plural = verbose_name
  97. def __str__(self):
  98. return self.roleName
  99. def natural_key(self):
  100. return (self.roleName,)
  101. def get_all_permission(self):
  102. perms = self.permission.all()
  103. permslist = []
  104. if self.rid == 100:
  105. perms = Permissions.objects.all()
  106. for perm in perms:
  107. permslist.append(perm.permName)
  108. return permslist
  109. else:
  110. permlist_tmp = []
  111. for perm in perms:
  112. permlist_tmp.append(perm.permName)
  113. permSet = set(permlist_tmp)
  114. permslist = list(permSet)
  115. permslist.sort()
  116. return permslist
  117. class Device_User(AbstractBaseUser):
  118. userID = models.CharField(blank=True, max_length=32, primary_key=True,
  119. verbose_name=u'用户ID', unique=True)
  120. role = models.ManyToManyField(to='Role', blank=True, verbose_name=u'用户角色', db_table='user_role')
  121. username = models.CharField(max_length=64, db_index=True, verbose_name=u'用户名', default='', blank=True)
  122. password = models.CharField(max_length=128, verbose_name=u'密码')
  123. userEmail = models.EmailField(max_length=64, db_index=True, verbose_name=u'邮箱', default='', blank=True)
  124. # 实际的路径就是 MEDIA_ROOT/Image/filename,所以可用upload_to来指定文件存放的前缀路径
  125. userIconPath = ProcessedImageField(blank=True, upload_to='User/Images/', default='static/User/default.png',
  126. verbose_name=u'头像',
  127. # 图片将处理成85x85的尺寸
  128. processors=[ResizeToFill(85, 85)], )
  129. userIconUrl = models.URLField(blank=True, max_length=128,
  130. default=SERVER_DOMAIN + 'account/getAvatar/User/defaultUser.png')
  131. NickName = models.CharField(blank=True, max_length=64, default='', verbose_name=u'用户昵称')
  132. is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
  133. is_active = models.BooleanField(blank=True, default=False, verbose_name=u'用户活动状态')
  134. data_joined = models.DateTimeField(blank=True, verbose_name=u'加入时间', auto_now_add=True, db_index=True)
  135. last_login = models.DateTimeField(blank=True, verbose_name='u最后登录时间', auto_now=True, db_index=True)
  136. user_isValid = models.BooleanField(blank=True, default=False, verbose_name=u'用户有效性', help_text=u'是否是认证通过的用户')
  137. online = models.BooleanField(blank=True, default=False, verbose_name=u'用户登录状态')
  138. machine_code = models.CharField(blank=True, max_length=128, default='', verbose_name=u'机械码')
  139. language = models.CharField(blank=True, max_length=16, default='en', verbose_name=u'语言地区')
  140. # 手机注册增加字段
  141. phone = models.CharField(max_length=16, db_index=True, verbose_name=u'手机号', default='', blank=True)
  142. fingerprint_enable = models.SmallIntegerField(default=0, verbose_name=u'是否开启了指纹登录') # 0:未开启,1:已开启
  143. fingerprint_key = models.CharField(max_length=128, default='', verbose_name=u'客户端用于解码的密钥等信息')
  144. is_local = models.BooleanField(blank=True, default=False, verbose_name=u'是否是本地登录用户') # False:账号登录,1:本地登录
  145. subscribe_email = models.SmallIntegerField(default=0, verbose_name=u'是否订阅营销邮件') # 0:未订阅,1:订阅,2:不订阅
  146. region_country = models.IntegerField(blank=True, default=0, verbose_name='关联tb_country表id')
  147. region_status = models.BooleanField(blank=True, default=False, verbose_name='地区选择状态') # 0:未选, 1:已选
  148. objects = UserManager()
  149. USERNAME_FIELD = 'userID' # 必须有一个唯一标识
  150. REQUIRED_FIELDS = ['is_superuser'] # 创建superuser时的必须字段
  151. class Meta:
  152. ordering = ('-data_joined',)
  153. verbose_name = u'用户信息'
  154. db_table = 'device_user'
  155. get_latest_by = 'last_login'
  156. def __str__(self):
  157. return self.username
  158. def get_role_id(self):
  159. rids = []
  160. roles = self.role.all()
  161. for role in roles:
  162. rids.append(role.rid)
  163. return rids
  164. def get_all_permission(self):
  165. roles = self.role.all()
  166. permslist = []
  167. for role in roles:
  168. if role.rid == 100:
  169. perms = Permissions.objects.all()
  170. for perm in perms:
  171. permslist.append(perm.permName)
  172. return permslist
  173. permSet = set(permslist)
  174. for role in roles:
  175. permlist_tmp = []
  176. for perm in role.permission.all():
  177. permlist_tmp.append(perm.permName)
  178. permSet_tmp = set(permlist_tmp)
  179. permSet = permSet.union(permSet_tmp)
  180. permslist = list(permSet)
  181. permslist.sort()
  182. return permslist
  183. @property
  184. def is_staff(self):
  185. return self.is_superuser
  186. # 设备表是建项目开发者设计的,自己看着办
  187. # 谢谢提醒!我选择凉拌。
  188. # 我选择狗带
  189. class Device_Info(models.Model):
  190. id = models.CharField(blank=True, max_length=32, primary_key=True)
  191. userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
  192. NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
  193. UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID', default='')
  194. SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID', default='')
  195. View_Account = models.CharField(blank=True, max_length=32, verbose_name=u'设备用户名称', default='')
  196. View_Password = models.CharField(blank=True, max_length=32, verbose_name=u'设备密码', default='')
  197. AudioFormat = models.IntegerField(blank=True, default=1, verbose_name=u'初始化影像')
  198. EventNotification = models.IntegerField(blank=True, verbose_name=u'报警类型', default=0)
  199. ChannelIndex = models.IntegerField(blank=True, verbose_name=u'通道号', default=0)
  200. Online = models.BooleanField(blank=True, default=False, verbose_name=u'设备是否在线')
  201. mMonitorIndex = models.IntegerField(blank=True, default=-1)
  202. Type = models.IntegerField(blank=True, verbose_name='设备类型')
  203. DebugMode = models.IntegerField(blank=True, verbose_name=u'调试模式', default=0)
  204. NotificationMode = models.IntegerField(blank=True, verbose_name=u'是否报警', default=0)
  205. qvgaLevel = models.BooleanField(blank=True, verbose_name=u'SD与HD画面', default=0,
  206. help_text=u'0代表:SD、1代表:HD')
  207. isShare = models.BooleanField(blank=True, verbose_name=u'共享设备',
  208. help_text=u'是否为共享获取的设备', default=False)
  209. primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
  210. primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
  211. vodPrimaryUserID = models.CharField(blank=True, verbose_name='云存主用户id', max_length=32, default='')
  212. vodPrimaryMaster = models.CharField(max_length=64, verbose_name=u'云存主用户名', default='')
  213. data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True, db_index=True)
  214. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
  215. ip = models.CharField(blank=True, max_length=20, default='', verbose_name=u'设备区域ip')
  216. area = models.CharField(blank=True, max_length=100, default='', verbose_name=u'设备区域area')
  217. # ios要求新增字段
  218. version = models.CharField(blank=True, max_length=20, default='', verbose_name=u'版本号')
  219. iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)', default=False)
  220. isVod = models.SmallIntegerField(blank=True, default=0, verbose_name='是否支持云存') # 是否支持云存设备
  221. isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除') # 是否被删除了(需主用户交互) 1存在,0不存在,2设备被重置
  222. isCameraOpenCloud = models.SmallIntegerField(blank=True, default=1, verbose_name='是否开启云存') # 0:不开启 1:开启
  223. serial_number = models.CharField(blank=True, max_length=9, default='', verbose_name='关联序列号')
  224. # 分享用户备注名
  225. noteName = models.CharField(max_length=64, verbose_name=u'用户备注名', default='', blank=True)
  226. ###
  227. REQUIRED_FIELDS = []
  228. def __str__(self):
  229. return self.NickName
  230. def model_to_dict(self, fields=None, exclude=None):
  231. opts = self._meta
  232. data = {}
  233. for f in chain(opts.concrete_fields, opts.private_fields, opts.many_to_many):
  234. if not getattr(f, 'editable', False):
  235. continue
  236. if fields and f.name not in fields:
  237. continue
  238. if exclude and f.name in exclude:
  239. continue
  240. data[f.name] = f.value_from_object(self)
  241. return data
  242. class Meta:
  243. db_table = 'device_info'
  244. ordering = ('-data_joined',)
  245. verbose_name = u'用户设备信息表'
  246. verbose_name_plural = verbose_name
  247. class Access_Log(models.Model):
  248. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  249. user = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'用户')
  250. operation = models.CharField(max_length=100, db_index=True, default='', blank=True, verbose_name=u'操作')
  251. ip = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'访问ip地址')
  252. url = models.CharField(max_length=150, default='', blank=True, verbose_name=u'访问路径')
  253. status = models.IntegerField(default=0, blank=True, verbose_name=u'状态')
  254. time = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name=u'访问时间')
  255. content = models.TextField(blank=True, default='', verbose_name=u'参数内容')
  256. class Meta:
  257. db_table = 'access_log'
  258. verbose_name = u'访问日志表'
  259. verbose_name_plural = verbose_name
  260. class Equipment_Info(models.Model):
  261. id = models.BigAutoField(primary_key=True, verbose_name=u'自增标记ID')
  262. devUid = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'设备ID')
  263. devNickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
  264. Channel = models.IntegerField(default=1, blank=True, verbose_name=u'设备通道')
  265. eventType = models.IntegerField(default=0, blank=True, verbose_name=u'事件类型')
  266. status = models.BooleanField(blank=True, default=False, verbose_name=u'事件状态')
  267. alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
  268. eventTime = models.CharField(blank=True, db_index=True, default='', max_length=16, verbose_name=u'设备报警时间')
  269. receiveTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'接收到报警时间')
  270. userID_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户ID')
  271. is_st = models.SmallIntegerField(default=0, verbose_name='是否截图') # 0 否,1 是图,2,视频
  272. storage_location = models.SmallIntegerField(default=1, verbose_name='数据信息存储位置。1:阿里云oss,2:aws')
  273. borderCoords = models.TextField(default='', blank=True, verbose_name=u'ai类型图片边框位置信息')
  274. addTime = models.IntegerField(verbose_name='添加时间', db_index=True, default=0)
  275. def __str__(self):
  276. return self.id
  277. class Meta:
  278. db_table = 'equipment_info'
  279. verbose_name = u'设备信息推送表'
  280. verbose_name_plural = verbose_name
  281. ordering = ('-id',)
  282. app_label = "PushModel"
  283. class EquipmentInfo1(models.Model):
  284. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  285. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  286. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  287. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  288. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  289. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  290. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  291. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  292. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  293. # (51,)表示一个事件标签。(51,57,)两个事件标签
  294. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  295. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  296. # 0:无图, 1:单图, 3:多图
  297. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  298. # 1: 阿里云, 2: AWS
  299. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  300. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  301. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  302. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  303. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  304. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  305. class Meta:
  306. db_table = 'equipment_info_1'
  307. verbose_name = '推送数据表1'
  308. app_label = 'PushModel'
  309. class EquipmentInfo2(models.Model):
  310. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  311. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  312. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  313. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  314. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  315. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  316. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  317. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  318. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  319. # (51,)表示一个事件标签。(51,57,)两个事件标签
  320. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  321. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  322. # 0:无图, 1:单图, 3:多图
  323. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  324. # 1: 阿里云, 2: AWS
  325. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  326. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  327. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  328. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  329. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  330. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  331. class Meta:
  332. db_table = 'equipment_info_2'
  333. verbose_name = '推送数据表2'
  334. app_label = 'PushModel'
  335. class EquipmentInfo3(models.Model):
  336. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  337. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  338. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  339. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  340. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  341. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  342. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  343. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  344. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  345. # (51,)表示一个事件标签。(51,57,)两个事件标签
  346. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  347. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  348. # 0:无图, 1:单图, 3:多图
  349. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  350. # 1: 阿里云, 2: AWS
  351. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  352. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  353. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  354. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  355. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  356. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  357. class Meta:
  358. db_table = 'equipment_info_3'
  359. verbose_name = '推送数据表3'
  360. app_label = 'PushModel'
  361. class EquipmentInfo4(models.Model):
  362. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  363. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  364. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  365. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  366. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  367. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  368. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  369. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  370. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  371. # (51,)表示一个事件标签。(51,57,)两个事件标签
  372. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  373. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  374. # 0:无图, 1:单图, 3:多图
  375. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  376. # 1: 阿里云, 2: AWS
  377. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  378. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  379. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  380. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  381. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  382. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  383. class Meta:
  384. db_table = 'equipment_info_4'
  385. verbose_name = '推送数据表4'
  386. app_label = 'PushModel'
  387. class EquipmentInfo5(models.Model):
  388. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  389. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  390. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  391. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  392. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  393. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  394. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  395. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  396. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  397. # (51,)表示一个事件标签。(51,57,)两个事件标签
  398. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  399. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  400. # 0:无图, 1:单图, 3:多图
  401. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  402. # 1: 阿里云, 2: AWS
  403. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  404. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  405. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  406. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  407. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  408. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  409. class Meta:
  410. db_table = 'equipment_info_5'
  411. verbose_name = '推送数据表5'
  412. app_label = 'PushModel'
  413. class EquipmentInfo6(models.Model):
  414. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  415. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  416. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  417. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  418. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  419. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  420. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  421. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  422. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  423. # (51,)表示一个事件标签。(51,57,)两个事件标签
  424. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  425. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  426. # 0:无图, 1:单图, 3:多图
  427. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  428. # 1: 阿里云, 2: AWS
  429. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  430. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  431. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  432. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  433. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  434. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  435. class Meta:
  436. db_table = 'equipment_info_6'
  437. verbose_name = '推送数据表6'
  438. app_label = 'PushModel'
  439. class EquipmentInfo7(models.Model):
  440. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  441. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  442. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  443. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  444. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  445. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  446. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  447. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  448. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  449. # (51,)表示一个事件标签。(51,57,)两个事件标签
  450. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  451. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  452. # 0:无图, 1:单图, 3:多图
  453. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  454. # 1: 阿里云, 2: AWS
  455. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  456. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  457. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  458. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  459. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  460. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  461. class Meta:
  462. db_table = 'equipment_info_7'
  463. verbose_name = '推送数据表7'
  464. app_label = 'PushModel'
  465. class EquipmentInfo8(models.Model):
  466. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  467. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  468. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  469. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  470. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  471. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  472. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  473. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  474. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  475. # (51,)表示一个事件标签。(51,57,)两个事件标签
  476. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  477. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  478. # 0:无图, 1:单图, 3:多图
  479. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  480. # 1: 阿里云, 2: AWS
  481. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  482. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  483. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  484. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  485. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  486. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  487. class Meta:
  488. db_table = 'equipment_info_8'
  489. verbose_name = '推送数据表8'
  490. app_label = 'PushModel'
  491. class EquipmentInfo9(models.Model):
  492. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  493. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  494. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  495. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  496. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  497. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  498. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  499. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  500. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  501. # (51,)表示一个事件标签。(51,57,)两个事件标签
  502. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  503. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  504. # 0:无图, 1:单图, 3:多图
  505. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  506. # 1: 阿里云, 2: AWS
  507. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  508. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  509. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  510. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  511. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  512. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  513. class Meta:
  514. db_table = 'equipment_info_9'
  515. verbose_name = '推送数据表9'
  516. app_label = 'PushModel'
  517. class EquipmentInfo10(models.Model):
  518. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  519. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  520. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  521. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  522. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  523. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  524. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  525. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  526. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  527. # (51,)表示一个事件标签。(51,57,)两个事件标签
  528. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  529. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  530. # 0:无图, 1:单图, 3:多图
  531. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  532. # 1: 阿里云, 2: AWS
  533. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  534. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  535. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  536. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  537. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  538. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  539. class Meta:
  540. db_table = 'equipment_info_10'
  541. verbose_name = '推送数据表10'
  542. app_label = 'PushModel'
  543. class EquipmentInfo11(models.Model):
  544. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  545. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  546. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  547. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  548. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  549. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  550. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  551. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  552. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  553. # (51,)表示一个事件标签。(51,57,)两个事件标签
  554. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  555. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  556. # 0:无图, 1:单图, 3:多图
  557. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  558. # 1: 阿里云, 2: AWS
  559. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  560. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  561. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  562. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  563. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  564. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  565. class Meta:
  566. db_table = 'equipment_info_11'
  567. verbose_name = '推送数据表11'
  568. app_label = 'PushModel'
  569. class EquipmentInfo12(models.Model):
  570. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  571. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  572. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  573. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  574. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  575. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  576. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  577. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  578. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  579. # (51,)表示一个事件标签。(51,57,)两个事件标签
  580. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  581. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  582. # 0:无图, 1:单图, 3:多图
  583. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  584. # 1: 阿里云, 2: AWS
  585. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  586. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  587. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  588. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  589. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  590. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  591. class Meta:
  592. db_table = 'equipment_info_12'
  593. verbose_name = '推送数据表12'
  594. app_label = 'PushModel'
  595. class EquipmentInfo13(models.Model):
  596. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  597. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  598. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  599. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  600. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  601. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  602. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  603. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  604. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  605. # (51,)表示一个事件标签。(51,57,)两个事件标签
  606. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  607. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  608. # 0:无图, 1:单图, 3:多图
  609. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  610. # 1: 阿里云, 2: AWS
  611. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  612. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  613. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  614. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  615. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  616. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  617. class Meta:
  618. db_table = 'equipment_info_13'
  619. verbose_name = '推送数据表13'
  620. app_label = 'PushModel'
  621. class EquipmentInfo14(models.Model):
  622. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  623. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  624. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  625. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  626. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  627. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  628. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  629. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  630. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  631. # (51,)表示一个事件标签。(51,57,)两个事件标签
  632. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  633. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  634. # 0:无图, 1:单图, 3:多图
  635. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  636. # 1: 阿里云, 2: AWS
  637. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  638. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  639. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  640. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  641. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  642. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  643. class Meta:
  644. db_table = 'equipment_info_14'
  645. verbose_name = '推送数据表14'
  646. app_label = 'PushModel'
  647. class EquipmentInfo15(models.Model):
  648. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  649. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  650. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  651. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  652. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  653. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  654. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  655. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  656. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  657. # (51,)表示一个事件标签。(51,57,)两个事件标签
  658. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  659. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  660. # 0:无图, 1:单图, 3:多图
  661. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  662. # 1: 阿里云, 2: AWS
  663. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  664. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  665. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  666. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  667. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  668. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  669. class Meta:
  670. db_table = 'equipment_info_15'
  671. verbose_name = '推送数据表15'
  672. app_label = 'PushModel'
  673. class EquipmentInfo16(models.Model):
  674. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  675. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  676. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  677. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  678. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  679. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  680. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  681. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  682. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  683. # (51,)表示一个事件标签。(51,57,)两个事件标签
  684. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  685. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  686. # 0:无图, 1:单图, 3:多图
  687. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  688. # 1: 阿里云, 2: AWS
  689. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  690. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  691. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  692. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  693. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  694. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  695. class Meta:
  696. db_table = 'equipment_info_16'
  697. verbose_name = '推送数据表16'
  698. app_label = 'PushModel'
  699. class EquipmentInfo17(models.Model):
  700. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  701. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  702. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  703. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  704. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  705. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  706. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  707. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  708. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  709. # (51,)表示一个事件标签。(51,57,)两个事件标签
  710. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  711. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  712. # 0:无图, 1:单图, 3:多图
  713. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  714. # 1: 阿里云, 2: AWS
  715. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  716. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  717. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  718. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  719. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  720. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  721. class Meta:
  722. db_table = 'equipment_info_17'
  723. verbose_name = '推送数据表17'
  724. app_label = 'PushModel'
  725. class EquipmentInfo18(models.Model):
  726. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  727. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  728. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  729. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  730. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  731. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  732. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  733. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  734. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  735. # (51,)表示一个事件标签。(51,57,)两个事件标签
  736. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  737. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  738. # 0:无图, 1:单图, 3:多图
  739. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  740. # 1: 阿里云, 2: AWS
  741. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  742. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  743. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  744. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  745. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  746. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  747. class Meta:
  748. db_table = 'equipment_info_18'
  749. verbose_name = '推送数据表18'
  750. app_label = 'PushModel'
  751. class EquipmentInfo19(models.Model):
  752. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  753. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  754. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  755. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  756. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  757. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  758. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  759. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  760. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  761. # (51,)表示一个事件标签。(51,57,)两个事件标签
  762. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  763. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  764. # 0:无图, 1:单图, 3:多图
  765. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  766. # 1: 阿里云, 2: AWS
  767. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  768. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  769. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  770. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  771. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  772. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  773. class Meta:
  774. db_table = 'equipment_info_19'
  775. verbose_name = '推送数据表19'
  776. app_label = 'PushModel'
  777. class EquipmentInfo20(models.Model):
  778. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  779. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  780. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  781. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  782. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  783. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  784. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  785. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  786. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  787. # (51,)表示一个事件标签。(51,57,)两个事件标签
  788. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  789. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  790. # 0:无图, 1:单图, 3:多图
  791. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  792. # 1: 阿里云, 2: AWS
  793. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  794. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  795. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  796. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  797. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  798. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  799. class Meta:
  800. db_table = 'equipment_info_20'
  801. verbose_name = '推送数据表20'
  802. app_label = 'PushModel'
  803. class EquipmentInfo21(models.Model):
  804. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  805. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  806. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  807. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  808. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  809. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  810. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  811. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  812. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  813. # (51,)表示一个事件标签。(51,57,)两个事件标签
  814. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  815. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  816. # 0:无图, 1:单图, 3:多图
  817. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  818. # 1: 阿里云, 2: AWS
  819. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  820. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  821. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  822. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  823. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  824. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  825. class Meta:
  826. db_table = 'equipment_info_21'
  827. verbose_name = '推送数据表21'
  828. app_label = 'PushModel'
  829. class EquipmentInfo22(models.Model):
  830. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  831. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  832. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  833. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  834. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  835. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  836. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  837. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  838. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  839. # (51,)表示一个事件标签。(51,57,)两个事件标签
  840. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  841. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  842. # 0:无图, 1:单图, 3:多图
  843. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  844. # 1: 阿里云, 2: AWS
  845. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  846. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  847. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  848. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  849. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  850. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  851. class Meta:
  852. db_table = 'equipment_info_22'
  853. verbose_name = '推送数据表22'
  854. app_label = 'PushModel'
  855. class EquipmentInfo23(models.Model):
  856. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  857. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  858. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  859. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  860. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  861. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  862. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  863. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  864. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  865. # (51,)表示一个事件标签。(51,57,)两个事件标签
  866. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  867. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  868. # 0:无图, 1:单图, 3:多图
  869. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  870. # 1: 阿里云, 2: AWS
  871. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  872. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  873. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  874. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  875. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  876. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  877. class Meta:
  878. db_table = 'equipment_info_23'
  879. verbose_name = '推送数据表23'
  880. app_label = 'PushModel'
  881. class EquipmentInfo24(models.Model):
  882. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  883. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  884. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  885. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  886. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  887. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  888. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  889. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  890. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  891. # (51,)表示一个事件标签。(51,57,)两个事件标签
  892. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  893. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  894. # 0:无图, 1:单图, 3:多图
  895. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  896. # 1: 阿里云, 2: AWS
  897. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  898. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  899. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  900. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  901. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  902. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  903. class Meta:
  904. db_table = 'equipment_info_24'
  905. verbose_name = '推送数据表24'
  906. app_label = 'PushModel'
  907. class EquipmentInfo25(models.Model):
  908. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  909. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  910. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  911. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  912. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  913. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  914. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  915. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  916. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  917. # (51,)表示一个事件标签。(51,57,)两个事件标签
  918. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  919. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  920. # 0:无图, 1:单图, 3:多图
  921. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  922. # 1: 阿里云, 2: AWS
  923. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  924. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  925. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  926. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  927. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  928. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  929. class Meta:
  930. db_table = 'equipment_info_25'
  931. verbose_name = '推送数据表25'
  932. app_label = 'PushModel'
  933. class EquipmentInfo26(models.Model):
  934. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  935. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  936. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  937. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  938. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  939. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  940. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  941. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  942. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  943. # (51,)表示一个事件标签。(51,57,)两个事件标签
  944. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  945. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  946. # 0:无图, 1:单图, 3:多图
  947. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  948. # 1: 阿里云, 2: AWS
  949. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  950. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  951. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  952. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  953. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  954. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  955. class Meta:
  956. db_table = 'equipment_info_26'
  957. verbose_name = '推送数据表26'
  958. app_label = 'PushModel'
  959. class EquipmentInfo27(models.Model):
  960. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  961. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  962. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  963. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  964. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  965. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  966. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  967. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  968. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  969. # (51,)表示一个事件标签。(51,57,)两个事件标签
  970. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  971. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  972. # 0:无图, 1:单图, 3:多图
  973. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  974. # 1: 阿里云, 2: AWS
  975. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  976. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  977. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  978. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  979. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  980. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  981. class Meta:
  982. db_table = 'equipment_info_27'
  983. verbose_name = '推送数据表27'
  984. app_label = 'PushModel'
  985. class EquipmentInfo28(models.Model):
  986. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  987. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  988. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  989. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  990. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  991. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  992. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  993. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  994. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  995. # (51,)表示一个事件标签。(51,57,)两个事件标签
  996. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  997. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  998. # 0:无图, 1:单图, 3:多图
  999. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1000. # 1: 阿里云, 2: AWS
  1001. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1002. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1003. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1004. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1005. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1006. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1007. class Meta:
  1008. db_table = 'equipment_info_28'
  1009. verbose_name = '推送数据表28'
  1010. app_label = 'PushModel'
  1011. class EquipmentInfo29(models.Model):
  1012. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1013. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1014. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1015. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1016. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1017. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1018. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1019. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1020. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1021. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1022. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1023. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1024. # 0:无图, 1:单图, 3:多图
  1025. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1026. # 1: 阿里云, 2: AWS
  1027. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1028. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1029. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1030. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1031. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1032. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1033. class Meta:
  1034. db_table = 'equipment_info_29'
  1035. verbose_name = '推送数据表29'
  1036. app_label = 'PushModel'
  1037. class EquipmentInfo30(models.Model):
  1038. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1039. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1040. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1041. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1042. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1043. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1044. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1045. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1046. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1047. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1048. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1049. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1050. # 0:无图, 1:单图, 3:多图
  1051. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1052. # 1: 阿里云, 2: AWS
  1053. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1054. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1055. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1056. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1057. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1058. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1059. class Meta:
  1060. db_table = 'equipment_info_30'
  1061. verbose_name = '推送数据表30'
  1062. app_label = 'PushModel'
  1063. class EquipmentInfo31(models.Model):
  1064. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1065. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1066. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1067. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1068. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1069. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1070. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1071. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1072. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1073. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1074. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1075. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1076. # 0:无图, 1:单图, 3:多图
  1077. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1078. # 1: 阿里云, 2: AWS
  1079. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1080. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1081. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1082. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1083. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1084. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1085. class Meta:
  1086. db_table = 'equipment_info_31'
  1087. verbose_name = '推送数据表31'
  1088. app_label = 'PushModel'
  1089. class EquipmentInfo32(models.Model):
  1090. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1091. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1092. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1093. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1094. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1095. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1096. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1097. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1098. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1099. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1100. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1101. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1102. # 0:无图, 1:单图, 3:多图
  1103. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1104. # 1: 阿里云, 2: AWS
  1105. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1106. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1107. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1108. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1109. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1110. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1111. class Meta:
  1112. db_table = 'equipment_info_32'
  1113. verbose_name = '推送数据表32'
  1114. app_label = 'PushModel'
  1115. class EquipmentInfo33(models.Model):
  1116. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1117. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1118. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1119. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1120. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1121. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1122. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1123. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1124. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1125. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1126. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1127. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1128. # 0:无图, 1:单图, 3:多图
  1129. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1130. # 1: 阿里云, 2: AWS
  1131. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1132. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1133. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1134. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1135. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1136. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1137. class Meta:
  1138. db_table = 'equipment_info_33'
  1139. verbose_name = '推送数据表33'
  1140. app_label = 'PushModel'
  1141. class EquipmentInfo34(models.Model):
  1142. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1143. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1144. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1145. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1146. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1147. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1148. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1149. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1150. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1151. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1152. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1153. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1154. # 0:无图, 1:单图, 3:多图
  1155. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1156. # 1: 阿里云, 2: AWS
  1157. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1158. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1159. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1160. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1161. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1162. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1163. class Meta:
  1164. db_table = 'equipment_info_34'
  1165. verbose_name = '推送数据表34'
  1166. app_label = 'PushModel'
  1167. class EquipmentInfo35(models.Model):
  1168. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1169. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1170. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1171. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1172. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1173. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1174. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1175. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1176. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1177. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1178. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1179. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1180. # 0:无图, 1:单图, 3:多图
  1181. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1182. # 1: 阿里云, 2: AWS
  1183. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1184. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1185. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1186. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1187. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1188. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1189. class Meta:
  1190. db_table = 'equipment_info_35'
  1191. verbose_name = '推送数据表35'
  1192. app_label = 'PushModel'
  1193. class EquipmentInfo36(models.Model):
  1194. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1195. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1196. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1197. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1198. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1199. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1200. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1201. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1202. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1203. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1204. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1205. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1206. # 0:无图, 1:单图, 3:多图
  1207. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1208. # 1: 阿里云, 2: AWS
  1209. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1210. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1211. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1212. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1213. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1214. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1215. class Meta:
  1216. db_table = 'equipment_info_36'
  1217. verbose_name = '推送数据表36'
  1218. app_label = 'PushModel'
  1219. class EquipmentInfo37(models.Model):
  1220. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1221. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1222. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1223. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1224. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1225. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1226. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1227. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1228. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1229. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1230. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1231. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1232. # 0:无图, 1:单图, 3:多图
  1233. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1234. # 1: 阿里云, 2: AWS
  1235. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1236. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1237. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1238. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1239. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1240. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1241. class Meta:
  1242. db_table = 'equipment_info_37'
  1243. verbose_name = '推送数据表37'
  1244. app_label = 'PushModel'
  1245. class EquipmentInfo38(models.Model):
  1246. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1247. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1248. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1249. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1250. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1251. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1252. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1253. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1254. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1255. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1256. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1257. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1258. # 0:无图, 1:单图, 3:多图
  1259. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1260. # 1: 阿里云, 2: AWS
  1261. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1262. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1263. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1264. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1265. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1266. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1267. class Meta:
  1268. db_table = 'equipment_info_38'
  1269. verbose_name = '推送数据表38'
  1270. app_label = 'PushModel'
  1271. class EquipmentInfo39(models.Model):
  1272. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1273. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1274. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1275. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1276. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1277. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1278. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1279. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1280. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1281. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1282. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1283. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1284. # 0:无图, 1:单图, 3:多图
  1285. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1286. # 1: 阿里云, 2: AWS
  1287. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1288. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1289. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1290. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1291. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1292. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1293. class Meta:
  1294. db_table = 'equipment_info_39'
  1295. verbose_name = '推送数据表39'
  1296. app_label = 'PushModel'
  1297. class EquipmentInfo40(models.Model):
  1298. id = models.BigAutoField(primary_key=True, verbose_name='主键')
  1299. device_user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
  1300. device_uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='设备uid')
  1301. device_nick_name = models.CharField(default='', max_length=32, verbose_name='设备昵称')
  1302. channel = models.PositiveSmallIntegerField(default=1, verbose_name='设备通道')
  1303. # 0:空字符,1:ai人,2:ai动物,3:车,123:组合类型(人/车/动物),
  1304. # 51:移动侦测,52:传感器报警,53:影像遗失,54:PIR,55:门磁报警,56:外部发报,57:人型报警,
  1305. # 702:摄像头休眠,703:摄像头唤醒,704:电量过低
  1306. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1307. # (51,)表示一个事件标签。(51,57,)两个事件标签
  1308. event_tag = models.CharField(default='', max_length=128, db_index=True, verbose_name='事件标签')
  1309. alarm = models.CharField(default='', max_length=256, verbose_name='报警信息')
  1310. # 0:无图, 1:单图, 3:多图
  1311. is_st = models.PositiveSmallIntegerField(default=0, verbose_name='图片信息')
  1312. # 1: 阿里云, 2: AWS
  1313. storage_location = models.PositiveSmallIntegerField(default=1, verbose_name='存储桶位置')
  1314. border_coords = models.TextField(default='', verbose_name='ai类型图片边框位置信息')
  1315. status = models.BooleanField(default=False, verbose_name='已读状态') # 0: 未读, 1: 已读
  1316. answer_status = models.BooleanField(default=False, verbose_name='接听状态') # 0: 未接听,1: 已接听
  1317. event_time = models.CharField(default='', max_length=10, db_index=True, verbose_name='上报时间')
  1318. add_time = models.IntegerField(default=0, db_index=True, verbose_name='添加时间')
  1319. class Meta:
  1320. db_table = 'equipment_info_40'
  1321. verbose_name = '推送数据表40'
  1322. app_label = 'PushModel'
  1323. class PushInaccurateFeedback(models.Model):
  1324. id = models.AutoField(primary_key=True, verbose_name='主键id')
  1325. equipment_info_id = models.CharField(default='', max_length=32, verbose_name='推送表id')
  1326. user_id = models.CharField(default='', max_length=32, verbose_name='用户id')
  1327. uid = models.CharField(default='', max_length=32, verbose_name='uid')
  1328. channel = models.PositiveSmallIntegerField(default=1, verbose_name='通道')
  1329. # 事件类型, 1,2,3,3:aws rekognition识别,其他为设备识别
  1330. event_type = models.IntegerField(default=0, verbose_name='事件类型')
  1331. event_time = models.CharField(default='', max_length=16, verbose_name='事件时间')
  1332. is_st = models.SmallIntegerField(default=0, verbose_name='是否多图') # 1:单图, 3:多图
  1333. identify_type = models.SmallIntegerField(default=0, verbose_name='AI识别类型') # 0:云端检测, 1:本地检测
  1334. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  1335. tag = models.CharField(default='', max_length=128, verbose_name='标签')
  1336. class Meta:
  1337. db_table = 'push_inaccurate_feedback'
  1338. verbose_name = '推送不准确反馈表'
  1339. verbose_name_plural = verbose_name
  1340. app_label = 'PushModel'
  1341. class Ai_Push_Info(models.Model):
  1342. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1343. devUid = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'设备ID')
  1344. devNickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
  1345. Channel = models.IntegerField(default=1, blank=True, verbose_name=u'设备通道')
  1346. eventType = models.CharField(blank=True, max_length=100, default='', verbose_name=u'事件类型')
  1347. status = models.BooleanField(blank=True, default=False, verbose_name=u'事件状态')
  1348. alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
  1349. eventTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'设备报警时间')
  1350. receiveTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'接收到报警时间')
  1351. userID_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户ID')
  1352. is_st = models.SmallIntegerField(default=0, verbose_name='是否截图') # 0 否,1 是图,2,视频
  1353. storage_location = models.SmallIntegerField(default=1, db_index=True, verbose_name='数据信息存储位置。1:阿里云oss,2:aws')
  1354. # message_id = models.CharField(blank=True, max_length=32, default='', verbose_name='第三方推送服务器返回的id')
  1355. # push_type = models.SmallIntegerField(blank=True, default=0, verbose_name='第三方推送服务器标志。0:APNS推送,1:谷歌推送,2:极光推送')
  1356. # push_server_status = models.IntegerField(blank=True, default=200, verbose_name='是否成功推送到第三方服务器。200:成功,other:失败')
  1357. # push_device_status = models.SmallIntegerField(blank=True, default=-1, verbose_name='是否成功推送到目标设备。0:失败,1:成功')
  1358. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1359. def __str__(self):
  1360. return self.id
  1361. class Meta:
  1362. db_table = 'ai_push_info'
  1363. verbose_name = u'ai信息推送表'
  1364. verbose_name_plural = verbose_name
  1365. ordering = ('-id',)
  1366. class StatResModel(models.Model):
  1367. id = models.AutoField(primary_key=True, verbose_name='自动ID')
  1368. name = models.CharField(default='', max_length=120, verbose_name='图片名称', unique=True)
  1369. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1370. def __str__(self):
  1371. return self.name
  1372. class Meta:
  1373. db_table = 'statres'
  1374. verbose_name = '静态资源表'
  1375. verbose_name_plural = verbose_name
  1376. ordering = ('id',)
  1377. class FeedBackModel(models.Model):
  1378. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1379. userID = models.ForeignKey(Device_User, null=True, blank=True, to_field='userID', on_delete=models.CASCADE)
  1380. type = models.SmallIntegerField(default=0, verbose_name='反馈类型') # 【0:产品建议,1:功能异常,2:安全问题】
  1381. status = models.SmallIntegerField(default=0, verbose_name='状态:0未解决/解决')
  1382. content = models.TextField(blank=True, null=True, verbose_name=u'反馈描述')
  1383. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1384. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  1385. FS = models.ManyToManyField(to='StatResModel', blank=True, verbose_name=u'用户反馈关联资源',
  1386. db_table='fb_res')
  1387. app = models.CharField(max_length=8, default='', verbose_name='类型') # [ios,android]
  1388. phone_model = models.CharField(max_length=64, default='', verbose_name='手机型号') # [小米,android]
  1389. os_version = models.CharField(max_length=16, default='', verbose_name='系统版本')
  1390. uid = models.CharField(max_length=20, default='', verbose_name='设备uid')
  1391. product_type = models.CharField(max_length=32, default='', verbose_name='设备uid')
  1392. app_version = models.CharField(max_length=32, default='', verbose_name='app版本信息')
  1393. appBundleId = models.CharField(max_length=32, default='', verbose_name='app版本appBundleId')
  1394. email = models.CharField(max_length=32, default='', verbose_name='app版本email')
  1395. score = models.CharField(max_length=32, default='0', verbose_name='评分--星星数')
  1396. collect_status = models.SmallIntegerField(default=0, verbose_name='收藏[0:未收藏, 1:已收藏]')
  1397. def __str__(self):
  1398. return self.id
  1399. class Meta:
  1400. db_table = 'feedback'
  1401. verbose_name = u'用户反馈信息表'
  1402. verbose_name_plural = verbose_name
  1403. ordering = ('-id',)
  1404. class User_Brand(models.Model):
  1405. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1406. # 关联用户
  1407. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
  1408. deviceSupplier = models.CharField(max_length=32, default='', verbose_name='(必填)设备供应商 string (例:华为、小米...)')
  1409. deviceModel = models.CharField(max_length=64, default='', verbose_name='(必填)设备型号 string @mock=HM NOTE 1TD')
  1410. osType = models.CharField(max_length=32, default='', verbose_name='(必填)操作系统名称 string @mock=Android')
  1411. osVersion = models.CharField(max_length=32, default='', verbose_name='(必填)操作系统版本号 string @mock=4.0')
  1412. country = models.CharField(max_length=200, default='', verbose_name='国家')
  1413. province = models.CharField(max_length=150, default='', verbose_name='省')
  1414. city = models.CharField(max_length=132, default='', verbose_name='市')
  1415. area = models.CharField(max_length=132, default='', verbose_name='区')
  1416. street = models.CharField(max_length=132, default='', verbose_name='街道')
  1417. longitude = models.CharField(max_length=30, default='', verbose_name='经度')
  1418. latitude = models.CharField(max_length=30, default='', verbose_name='纬度')
  1419. appId = models.CharField(max_length=50, default='', verbose_name='appid_值')
  1420. status = models.IntegerField(default=0, verbose_name='传国家省市信息过来就为状态:1 ,不传就为状态:0')
  1421. ip = models.CharField(blank=True, max_length=20, default='', verbose_name=u'区域ip')
  1422. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1423. def __str__(self):
  1424. return self.id
  1425. class Meta:
  1426. db_table = 'user_brand'
  1427. verbose_name = u'用户登录手机端手机品牌统计表'
  1428. verbose_name_plural = verbose_name
  1429. ordering = ('id',)
  1430. # 存储桶表
  1431. class VodBucketModel(models.Model):
  1432. id = models.AutoField(primary_key=True, verbose_name='主键')
  1433. bucket = models.CharField(max_length=60, verbose_name='存储桶名称')
  1434. storeDay = models.IntegerField(default=0, verbose_name='存储生命周期(天)')
  1435. content = models.TextField(verbose_name='描述', default='')
  1436. endpoint = models.CharField(max_length=125, default='', verbose_name='存储节点')
  1437. area = models.CharField(max_length=16, default='', verbose_name='区域')
  1438. region = models.CharField(max_length=16, default='', verbose_name='regionID')
  1439. is_free = models.SmallIntegerField(default=0, verbose_name='是否为免费存储桶[0:否,1:是]')
  1440. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1441. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  1442. mold = models.SmallIntegerField(default=0, verbose_name='存储区域类型') # 0:国内阿里 1:国外aws
  1443. region_id = models.IntegerField(default=1, verbose_name='大洲编号')
  1444. def __str__(self):
  1445. return self.id
  1446. class Meta:
  1447. db_table = 'vod_bucket'
  1448. verbose_name = u'存储通信息'
  1449. verbose_name_plural = verbose_name
  1450. ordering = ('-id',)
  1451. class Store_Meal(models.Model):
  1452. id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
  1453. # title = models.CharField(blank=True, max_length=32, verbose_name=u'标题')
  1454. currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币符号')
  1455. symbol = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'符号')
  1456. price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
  1457. virtual_price = models.CharField(blank=True, max_length=32, verbose_name=u'虚拟价格')
  1458. is_discounts = models.SmallIntegerField(default=0, verbose_name=u'该套餐是否有优惠 [0=否,1是]') # 0没有;1有
  1459. discount_price = models.CharField(blank=True, max_length=32, verbose_name=u'第二年优惠价格')
  1460. day = models.IntegerField(default=0, blank=True, verbose_name=u'云存录像保存天数(循环)') # 7,30,180,360
  1461. expire = models.IntegerField(default=0, blank=True, verbose_name=u'有效期') # 单位月
  1462. # content = models.TextField(blank=True, null=True, verbose_name=u'描述')
  1463. add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
  1464. # type = models.SmallIntegerField(default=0, verbose_name='付款类型') # 0是paypal,1为支付宝
  1465. pay_type = models.ManyToManyField(to='Pay_Type', verbose_name='付款类型', db_table='store_meal_pay')
  1466. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
  1467. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE,
  1468. default=1, verbose_name='存储空间')
  1469. commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型') # 0:事件型 1:连续型
  1470. commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
  1471. is_show = models.SmallIntegerField(default=0, verbose_name=u'是否隐藏 [0=否,1是]')
  1472. # lang = models.CharField(default='', max_length=20, verbose_name='语言/国家')
  1473. lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='store_meal_lang')
  1474. cycle_config_id = models.IntegerField(null=True, verbose_name='周期付款配置表id')
  1475. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前') # 单位月
  1476. icloud_store_meal_id = models.IntegerField(default=0, verbose_name='关联云盘套餐id')
  1477. pixel_level = models.SmallIntegerField(default=0, verbose_name='像素等级') # 0:低于4k像素;1:大于等于4k像素
  1478. is_ai = models.SmallIntegerField(default=0, verbose_name='是否支持AI') # 0:不支持;1:支持
  1479. def __str__(self):
  1480. return self.id
  1481. class Meta:
  1482. db_table = 'store_meal'
  1483. verbose_name = u'存储套餐'
  1484. verbose_name_plural = verbose_name
  1485. ordering = ('id',)
  1486. class AiStoreMeal(models.Model):
  1487. id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
  1488. price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
  1489. virtual_price = models.CharField(blank=True, max_length=32, verbose_name=u'虚拟价格')
  1490. symbol = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'符号')
  1491. currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币符号')
  1492. is_show = models.SmallIntegerField(default=0, verbose_name=u'是否显示') # 0: 否, 1: 是
  1493. is_beta = models.SmallIntegerField(default=0, verbose_name=u'是否显示beta') # 0: 否, 1: 是
  1494. is_discounts = models.SmallIntegerField(default=0, verbose_name=u'是否有优惠') # 0: 没有, 1: 有
  1495. discount_price = models.CharField(blank=True, max_length=32, verbose_name=u'第二年优惠价格')
  1496. effective_day = models.IntegerField(default=0, blank=True, verbose_name=u'有效天数') # 7, 30
  1497. pay_type = models.ManyToManyField(to='Pay_Type', verbose_name='付款类型', db_table='ai_store_meal_pay')
  1498. lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='ai_store_meal_lang')
  1499. add_time = models.DateTimeField(blank=True, verbose_name=u'添加时间', auto_now_add=True)
  1500. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
  1501. def __str__(self):
  1502. return self.id
  1503. class Meta:
  1504. db_table = 'ai_store_meal'
  1505. verbose_name = u'AI套餐'
  1506. verbose_name_plural = verbose_name
  1507. ordering = ('id',)
  1508. class Pay_Type(models.Model):
  1509. id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
  1510. payment = models.CharField(max_length=32, verbose_name=u'支付方式')
  1511. def __str__(self):
  1512. return self.id
  1513. class Meta:
  1514. db_table = 'pay_type'
  1515. verbose_name = u'付款类型'
  1516. verbose_name_plural = verbose_name
  1517. ordering = ('id',)
  1518. # 套餐语言表
  1519. class Lang(models.Model):
  1520. id = models.AutoField(primary_key=True, verbose_name='自增ID')
  1521. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
  1522. title = models.CharField(blank=True, max_length=320, verbose_name='标题')
  1523. new_title = models.JSONField(null=True, verbose_name='新套餐标题')
  1524. content = models.TextField(blank=True, null=True, verbose_name='描述')
  1525. discount_content = models.CharField(blank=True, max_length=320, verbose_name=u'优惠信息描述')
  1526. type = models.SmallIntegerField(default=0, verbose_name='类型') # 0:云存 1:AI 2:4G 3:云盘
  1527. def __str__(self):
  1528. return self.id
  1529. class Meta:
  1530. db_table = 'lang'
  1531. verbose_name = '套餐语言'
  1532. verbose_name_plural = verbose_name
  1533. ordering = ('id',)
  1534. class Equipment_Version(models.Model):
  1535. eid = models.CharField(blank=True, max_length=32, primary_key=True)
  1536. ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
  1537. code = models.CharField(blank=True, max_length=64, verbose_name=u'设备规格代码')
  1538. version = models.CharField(blank=True, max_length=64, verbose_name=u'设备版本')
  1539. softwareVersion = models.CharField(blank=True, max_length=32, verbose_name=u'软件版本')
  1540. chipModelList2Code = models.CharField(max_length=32, blank=True, verbose_name=u'主芯片码')
  1541. channel = models.IntegerField(blank=True, verbose_name=u'通道数')
  1542. resolutionRatio = models.IntegerField(blank=True, verbose_name=u'分辨率')
  1543. type = models.CharField(blank=True, max_length=16, verbose_name=u'设备机型')
  1544. companyCode = models.CharField(blank=True, max_length=128, verbose_name=u'用户公司名称')
  1545. data_joined = models.DateTimeField(blank=True, verbose_name=u'加入时间', auto_now_add=True)
  1546. fileSize = models.IntegerField(blank=True, verbose_name=u'文件总大小')
  1547. filePath = models.CharField(blank=True, max_length=256, verbose_name=u'升级文件路径')
  1548. Description = models.TextField(blank=True, default='', verbose_name=u'描述信息')
  1549. fileMd5 = models.CharField(blank=True, max_length=32, default='', verbose_name=u'上传文件MD5加密')
  1550. status = models.BooleanField(blank=True, default=True, verbose_name=u'是否开启更新状态')
  1551. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
  1552. lang = models.CharField(blank=True, default='en', max_length=32, verbose_name=u'ota包内置语言')
  1553. mci = models.CharField(default='', blank=True, max_length=10, verbose_name='设备类型')
  1554. img = models.CharField(max_length=300, blank=True, default='', verbose_name=u'图片路径')
  1555. max_ver = models.CharField(default='', max_length=16, verbose_name='最大版本号')
  1556. is_popup = models.SmallIntegerField(default=0, verbose_name=u'是否弹窗')
  1557. data_json = models.JSONField(null=True, verbose_name='版本号附加数据,关联国家或者指定UID,{uid_list:[],country_list:[]}')
  1558. auto_update = models.BooleanField(blank=True, default=False, verbose_name=u'是否自动升级')
  1559. def __str__(self):
  1560. return self.eid
  1561. class Meta:
  1562. verbose_name = '设备版本信息'
  1563. ordering = ('-data_joined',)
  1564. db_table = 'equipment_version'
  1565. class AVSSVersion(models.Model):
  1566. id = models.AutoField(primary_key=True, verbose_name='主键')
  1567. online_version = models.CharField(default='', max_length=32, verbose_name='线上版本')
  1568. force_update_version = models.CharField(default='', max_length=32, verbose_name='强制更新版本')
  1569. class Meta:
  1570. verbose_name = 'AVSS版本'
  1571. db_table = 'avss_version'
  1572. class App_Info(models.Model):
  1573. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1574. appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
  1575. appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
  1576. systemLanguage = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
  1577. newAppversion = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
  1578. minAppversion = models.CharField(default='', blank=True, max_length=12, verbose_name=u'最小系统版本')
  1579. bundleVersion = models.CharField(blank=True, max_length=12, verbose_name=u'项目版本')
  1580. content = models.TextField(blank=True, default='', verbose_name=u'更新内容')
  1581. app_type = models.IntegerField(default=0, blank=True, verbose_name=u'app类型') # ios 1,android 2
  1582. add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
  1583. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
  1584. downloadLink = models.CharField(max_length=300, blank=True, default='', verbose_name='升级')
  1585. img = models.CharField(default='', max_length=128, verbose_name='图片路径')
  1586. def __str__(self):
  1587. return self.id
  1588. class Meta:
  1589. db_table = 'app_info'
  1590. verbose_name = u'app信息表'
  1591. verbose_name_plural = verbose_name
  1592. ordering = ('id',)
  1593. class App_Colophon(models.Model):
  1594. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1595. app_id = models.ForeignKey(App_Info, to_field='id', on_delete=models.CASCADE, verbose_name='appid编号', blank=True,
  1596. default=1)
  1597. lang = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
  1598. newApp_version = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
  1599. content = models.TextField(blank=True, default='', verbose_name=u'更新内容')
  1600. version_time = models.IntegerField(default=0, blank=True, verbose_name=u'版本更新的时间')
  1601. def __str__(self):
  1602. return self.id
  1603. class Meta:
  1604. db_table = 'app_colophon'
  1605. verbose_name = u'app信息表的记录关联到App_Info'
  1606. verbose_name_plural = verbose_name
  1607. ordering = ('id',)
  1608. class Order_Model(models.Model):
  1609. orderID = models.CharField(blank=True, max_length=20, primary_key=True, verbose_name=u'订单id')
  1610. paymentID = models.CharField(blank=True, max_length=64, default='', verbose_name='付款id')
  1611. trade_no = models.CharField(blank=True, max_length=64, default='', verbose_name='第三方订单号')
  1612. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE) # 订单关联用户
  1613. UID = models.CharField(max_length=20, verbose_name='设备UID')
  1614. channel = models.SmallIntegerField(default=0, verbose_name=u'通道数')
  1615. desc = models.CharField(max_length=50, default='', verbose_name='商品描述')
  1616. price = models.CharField(default='', max_length=16, verbose_name='价格')
  1617. fee = models.CharField(default='', max_length=8, verbose_name='手续费')
  1618. refunded_amount = models.FloatField(default=0, verbose_name=u'已退款金额')
  1619. currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币')
  1620. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1621. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  1622. isSelectDiscounts = models.SmallIntegerField(default=0, verbose_name=u'用户是否选择了第二年优惠 [0=否,1是]')
  1623. # 0: 待支付, 1:支付成功, 2: 取消支付, 4: 退款失败, 5: 全额退款, 6: 部分退款, 7: PayPal已退款, 9:处理中, 10:支付失败
  1624. status = models.SmallIntegerField(default=0, verbose_name='付款状态')
  1625. # 1: PayPal, 2: 支付宝, 3: 微信, 10: 免费体验, 11: 激活码
  1626. payType = models.SmallIntegerField(default=0, verbose_name='支付方式')
  1627. payTime = models.IntegerField(verbose_name='支付成功时间', default=0)
  1628. rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='关联云存套餐表')
  1629. ai_rank = models.ForeignKey(AiStoreMeal, to_field='id', default='', on_delete=models.CASCADE,
  1630. verbose_name='关联ai套餐表')
  1631. order_type = models.SmallIntegerField(default=0, verbose_name='订单类型:0:云存,1:AI+云存,2:联通4G,3:五兴,4:云盘')
  1632. unify_combo_id = models.CharField(blank=True, default='', max_length=32, verbose_name=u'统一套餐id')
  1633. nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
  1634. uid_bucket_id = models.IntegerField(default=0, verbose_name='关联uid_bucket的字段')
  1635. commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型')
  1636. commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
  1637. pay_url = models.CharField(max_length=2000, default='', verbose_name='支付url')
  1638. paypal = models.CharField(max_length=500, null=True, blank=True, verbose_name='支付批准url')
  1639. promotion_rule_id = models.CharField(blank=True, max_length=64, default='', verbose_name='促销id')
  1640. plan_id = models.CharField(default='', blank=True, max_length=64, verbose_name=u'paypal计划id')
  1641. agreement_id = models.CharField(default='', blank=True, max_length=64, verbose_name=u'paypal协议id')
  1642. coupon_id = models.CharField(default='', blank=True, max_length=10, verbose_name=u'优惠券id')
  1643. store_meal_name = models.CharField(default='', blank=True, max_length=64, verbose_name=u'关联套餐名')
  1644. create_vod = models.SmallIntegerField(default=0, verbose_name='是否生成云存服务') # 0:未生成,1:已生成
  1645. def __str__(self):
  1646. return self.orderID
  1647. class Meta:
  1648. db_table = 'orders'
  1649. verbose_name = u'订单信息表'
  1650. verbose_name_plural = verbose_name
  1651. ordering = ('-orderID',)
  1652. # 优惠券文案语言表
  1653. class CouponLang(models.Model):
  1654. id = models.AutoField(primary_key=True, verbose_name='自增ID')
  1655. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
  1656. instruction = models.CharField(blank=True, default='', max_length=200, verbose_name=u'用法')
  1657. quota = models.CharField(blank=True, default='', max_length=200, verbose_name=u'优惠额度, 例如20.0%')
  1658. unit = models.CharField(blank=True, default='', max_length=200, verbose_name=u'优惠单位, 例如off, 折')
  1659. remark = models.CharField(blank=True, default='', max_length=200, verbose_name=u'备注')
  1660. def __str__(self):
  1661. return self.id
  1662. class Meta:
  1663. db_table = 'coupon_lang'
  1664. verbose_name = '套餐语言'
  1665. verbose_name_plural = verbose_name
  1666. ordering = ('id',)
  1667. class CouponConfigModel(models.Model):
  1668. id = models.AutoField(primary_key=True, verbose_name='主键')
  1669. type = models.SmallIntegerField(default=0, verbose_name='优惠类型') # 1打折; 2抵扣
  1670. use_range = models.CharField(default=0, max_length=100, verbose_name='使用限制') # 0:所有服务都可使用; 1:云存;2:ai;多种1,2,3
  1671. coupon_discount = models.CharField(blank=True, max_length=32, verbose_name=u'折扣力度')
  1672. lang = models.ManyToManyField(to='CouponLang', verbose_name='套餐语言', db_table='coupon_lang_associated')
  1673. def __str__(self):
  1674. return self.id
  1675. class Meta:
  1676. db_table = 'coupon_config'
  1677. verbose_name = u'优惠券配置表'
  1678. verbose_name_plural = verbose_name
  1679. class CouponModel(models.Model):
  1680. id = models.AutoField(primary_key=True, verbose_name='主键')
  1681. use_status = models.SmallIntegerField(default=0, verbose_name='使用状态') # 0未使用;1冻结;2已使用
  1682. distribute_time = models.IntegerField(verbose_name='发放到用户账户时间', default=0)
  1683. valid_time = models.PositiveIntegerField(default=9999999999, verbose_name='有效期间') # 超过有效期不可在使用;0永久
  1684. # userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE) # 关联用户
  1685. userID = models.CharField(blank=True, max_length=32, db_index=True, verbose_name=u'用户ID')
  1686. coupon_config = models.ForeignKey(CouponConfigModel, null=True, blank=True, to_field='id', on_delete=models.CASCADE,
  1687. verbose_name='关联优惠券配置表的id')
  1688. update_time = models.IntegerField(verbose_name='更新时间', default=0)
  1689. create_time = models.IntegerField(verbose_name='添加时间', default=0)
  1690. def __str__(self):
  1691. return self.id
  1692. class Meta:
  1693. db_table = 'coupon'
  1694. verbose_name = u'优惠券'
  1695. verbose_name_plural = verbose_name
  1696. class CouponCombo(models.Model):
  1697. id = models.AutoField(primary_key=True, verbose_name='主键')
  1698. coupon_id = models.IntegerField(default=0, verbose_name='优惠券id')
  1699. combo_id = models.IntegerField(default=0, verbose_name='套餐id')
  1700. # 0:云存,1:AI,2:4G
  1701. coupon_type = models.SmallIntegerField(verbose_name='类型', default=0)
  1702. update_time = models.IntegerField(verbose_name='更新时间', default=0)
  1703. create_time = models.IntegerField(verbose_name='添加时间', default=0)
  1704. class Meta:
  1705. db_table = 'coupon_combo'
  1706. verbose_name = u'优惠券关联套餐'
  1707. verbose_name_plural = verbose_name
  1708. class PayCycleConfigModel(models.Model):
  1709. id = models.AutoField(primary_key=True, verbose_name='主键')
  1710. # name = models.CharField(default='',max_length=200, verbose_name='计划名字')
  1711. # tax = models.CharField(max_length=2000, default='', verbose_name='税金')
  1712. cycles = models.IntegerField(verbose_name='周期:0代表无限期', default=0)
  1713. frequency = models.CharField(max_length=50, verbose_name='频率,MONTH,WEEK,YEAR', default=0)
  1714. frequencyInterval = models.IntegerField(default=0, verbose_name='频率周期')
  1715. remark = models.CharField(max_length=1000, default='', verbose_name='备注')
  1716. def __str__(self):
  1717. return self.id
  1718. class Meta:
  1719. db_table = 'pay_cycle_config'
  1720. verbose_name = u'周期付款计划'
  1721. verbose_name_plural = verbose_name
  1722. class PromotionRuleModel(models.Model):
  1723. id = models.AutoField(primary_key=True, verbose_name='主键')
  1724. # json格式, 例: {"cn": "黑色星期五", "en": "Black Friday"}
  1725. ruleName = models.TextField(default='', verbose_name='规则名字')
  1726. # json格式, 例: {"cn": "买一送一","en": "buy one get one free"}
  1727. ruleDesc = models.TextField(default='', verbose_name='规则描述')
  1728. # json格式, 例: {"buy": 1, "get": 1}
  1729. ruleConfig = models.CharField(max_length=2000, default='', verbose_name='规则配置')
  1730. startTime = models.IntegerField(default=0, verbose_name='促销活动开始时间')
  1731. endTime = models.IntegerField(default=0, verbose_name='促销活动结束时间')
  1732. # 0: 未进行, 1: 进行中
  1733. status = models.SmallIntegerField(default=0, verbose_name='活动状态')
  1734. remark = models.CharField(max_length=50, default='', verbose_name='备注')
  1735. # json格式, 例: {"cn": "买一送一", "en": "buy one get one free"}
  1736. popups = models.CharField(max_length=2000, default='', verbose_name='app弹窗消息')
  1737. def __str__(self):
  1738. return self.id
  1739. class Meta:
  1740. db_table = 'promotion_rule'
  1741. verbose_name = u'促销规则表'
  1742. verbose_name_plural = verbose_name
  1743. ordering = ('-id',)
  1744. class VodHlsModel(models.Model):
  1745. id = models.AutoField(primary_key=True, verbose_name='回放列表主键')
  1746. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  1747. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1748. time = models.IntegerField(verbose_name='播放列表名字时间戳', default=0, db_index=True)
  1749. endTime = models.IntegerField(verbose_name='云存储删除时间(周期)', default=0, db_index=True)
  1750. sec = models.IntegerField(verbose_name='秒数', default=0)
  1751. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
  1752. verbose_name='存储空间')
  1753. fg = models.CharField(max_length=20, verbose_name='ts个数,时间描述片段数') # 阿里为时间片段数,亚马逊为一个32bit整型,前28bit代表ts文件的时长
  1754. def __str__(self):
  1755. return self.id
  1756. class Meta:
  1757. db_table = 'vod_hls'
  1758. verbose_name = u'云存回放信息表'
  1759. verbose_name_plural = verbose_name
  1760. ordering = ('-id',)
  1761. class VodHlsMon(models.Model):
  1762. id = models.AutoField(primary_key=True, verbose_name='主键')
  1763. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1764. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1765. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1766. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1767. sec = models.IntegerField(default=0, verbose_name='秒数')
  1768. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1769. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1770. def __str__(self):
  1771. return self.id
  1772. class Meta:
  1773. db_table = 'vod_hls_mon'
  1774. verbose_name = '星期一云存回放信息表'
  1775. ordering = ('-id',)
  1776. class VodHlsTues(models.Model):
  1777. id = models.AutoField(primary_key=True, verbose_name='主键')
  1778. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1779. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1780. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1781. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1782. sec = models.IntegerField(default=0, verbose_name='秒数')
  1783. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1784. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1785. def __str__(self):
  1786. return self.id
  1787. class Meta:
  1788. db_table = 'vod_hls_tues'
  1789. verbose_name = '星期二云存回放信息表'
  1790. ordering = ('-id',)
  1791. class VodHlsWed(models.Model):
  1792. id = models.AutoField(primary_key=True, verbose_name='主键')
  1793. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1794. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1795. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1796. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1797. sec = models.IntegerField(default=0, verbose_name='秒数')
  1798. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1799. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1800. def __str__(self):
  1801. return self.id
  1802. class Meta:
  1803. db_table = 'vod_hls_wed'
  1804. verbose_name = '星期三云存回放信息表'
  1805. ordering = ('-id',)
  1806. class VodHlsThur(models.Model):
  1807. id = models.AutoField(primary_key=True, verbose_name='主键')
  1808. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1809. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1810. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1811. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1812. sec = models.IntegerField(default=0, verbose_name='秒数')
  1813. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1814. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1815. def __str__(self):
  1816. return self.id
  1817. class Meta:
  1818. db_table = 'vod_hls_thur'
  1819. verbose_name = '星期四云存回放信息表'
  1820. ordering = ('-id',)
  1821. class VodHlsFri(models.Model):
  1822. id = models.AutoField(primary_key=True, verbose_name='主键')
  1823. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1824. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1825. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1826. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1827. sec = models.IntegerField(default=0, verbose_name='秒数')
  1828. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1829. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1830. def __str__(self):
  1831. return self.id
  1832. class Meta:
  1833. db_table = 'vod_hls_fri'
  1834. verbose_name = '星期五云存回放信息表'
  1835. ordering = ('-id',)
  1836. class VodHlsSat(models.Model):
  1837. id = models.AutoField(primary_key=True, verbose_name='主键')
  1838. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1839. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1840. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1841. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1842. sec = models.IntegerField(default=0, verbose_name='秒数')
  1843. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1844. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1845. def __str__(self):
  1846. return self.id
  1847. class Meta:
  1848. db_table = 'vod_hls_sat'
  1849. verbose_name = '星期六云存回放信息表'
  1850. ordering = ('-id',)
  1851. class VodHlsSun(models.Model):
  1852. id = models.AutoField(primary_key=True, verbose_name='主键')
  1853. uid = models.CharField(max_length=20, db_index=True, verbose_name='uid')
  1854. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1855. start_time = models.IntegerField(default=0, db_index=True, verbose_name='开始时间')
  1856. end_time = models.IntegerField(default=0, db_index=True, verbose_name='结束时间')
  1857. sec = models.IntegerField(default=0, verbose_name='秒数')
  1858. bucket_id = models.SmallIntegerField(default=1, blank=True, verbose_name='关联vod_bucket表id')
  1859. fg = models.CharField(max_length=20, verbose_name='ts文件信息数据')
  1860. def __str__(self):
  1861. return self.id
  1862. class Meta:
  1863. db_table = 'vod_hls_sun'
  1864. verbose_name = '星期天云存回放信息表'
  1865. ordering = ('-id',)
  1866. class OssCrdModel(models.Model):
  1867. id = models.AutoField(primary_key=True, verbose_name='主键')
  1868. uid = models.CharField(max_length=20, verbose_name='设备UID')
  1869. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1870. data = models.TextField(verbose_name='设备sts')
  1871. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1872. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
  1873. verbose_name='存储空间')
  1874. def __str__(self):
  1875. return self.id
  1876. class Meta:
  1877. db_table = 'osscrd'
  1878. verbose_name = u'设备证书'
  1879. verbose_name_plural = verbose_name
  1880. ordering = ('-id',)
  1881. class StsCrdModel(models.Model):
  1882. id = models.AutoField(primary_key=True, verbose_name='主键')
  1883. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  1884. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1885. data = models.TextField(verbose_name='设备sts')
  1886. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1887. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
  1888. verbose_name='存储空间')
  1889. type = models.SmallIntegerField(default=0, verbose_name='sts类型') # 0:阿里云,1:s3
  1890. def __str__(self):
  1891. return self.id
  1892. class Meta:
  1893. db_table = 'stscrd'
  1894. verbose_name = u'设备证书'
  1895. verbose_name_plural = verbose_name
  1896. ordering = ('-id',)
  1897. class UID_Bucket(models.Model):
  1898. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1899. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  1900. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1901. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
  1902. status = models.SmallIntegerField(default=0, verbose_name='状态[0:关闭,1:开启]')
  1903. orderId = models.CharField(max_length=20, verbose_name='关联订单号', default='', db_index=True)
  1904. endTime = models.BigIntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
  1905. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1906. updateTime = models.BigIntegerField(verbose_name='更新时间', default=0)
  1907. use_status = models.IntegerField(verbose_name='使用状态[1:使用中,2已过期]', default=0)
  1908. has_unused = models.SmallIntegerField(default=0, verbose_name='是否拥有其它未使用的套餐[0:否,1:是]')
  1909. class Meta:
  1910. db_table = 'vod_uid_bucket'
  1911. verbose_name = '设备关联套餐表'
  1912. verbose_name_plural = verbose_name
  1913. ordering = ('id',)
  1914. class Unused_Uid_Meal(models.Model):
  1915. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1916. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  1917. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  1918. bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
  1919. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1920. expire = models.IntegerField(verbose_name='存储桶存储时长[月份]', default=0)
  1921. is_ai = models.SmallIntegerField(verbose_name='是否开通AI服务', default=0) # 0:不开通;1:开通
  1922. order_id = models.CharField(max_length=20, verbose_name='关联订单号', default='', db_index=True)
  1923. # num = models.IntegerField(verbose_name='个数', default=0)
  1924. # effect_time = models.BigIntegerField(verbose_name='生效时间', db_index=True, default=0)
  1925. # uid_bucket = models.ForeignKey(UID_Bucket, blank=True, to_field='id', on_delete=models.CASCADE, default=0,
  1926. # verbose_name='uid_bucket关联')
  1927. class Meta:
  1928. db_table = 'unused_uid_Meal'
  1929. verbose_name = '未使用的设备关联套餐表'
  1930. verbose_name_plural = verbose_name
  1931. ordering = ('id',)
  1932. class UID_Preview(models.Model):
  1933. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1934. uid = models.CharField(default='', max_length=20, db_index=True, verbose_name='设备UID')
  1935. channel = models.SmallIntegerField(verbose_name=u'通道号', default=0)
  1936. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1937. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  1938. class Meta:
  1939. db_table = 'uid_preview'
  1940. verbose_name = '设备预览图'
  1941. verbose_name_plural = verbose_name
  1942. ordering = ('id',)
  1943. # 系统发送信息新到用户
  1944. class SysMsgModel(models.Model):
  1945. id = models.AutoField(primary_key=True, verbose_name='自增id')
  1946. userID_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户ID')
  1947. title = models.CharField(default='', max_length=64, verbose_name='标题')
  1948. msg = models.TextField(blank=True, default='', verbose_name='发送内容')
  1949. status = models.SmallIntegerField(verbose_name='是否已读', default=0) # 0:否,1:是
  1950. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  1951. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  1952. # 消息类型, 0:系统通知, 702:休眠, 704:低电量
  1953. eventType = models.IntegerField(verbose_name='消息类型', default=0)
  1954. jumpLink = models.TextField(default='', verbose_name='跳转链接')
  1955. uid = models.CharField(default='', max_length=20, db_index=True, verbose_name='设备UID')
  1956. class Meta:
  1957. db_table = 'sys_msg'
  1958. verbose_name = '系统消息'
  1959. verbose_name_plural = verbose_name
  1960. ordering = ('-id',)
  1961. app_label = "PushModel"
  1962. # 设备推送重构
  1963. # 设备配置表,新
  1964. class UidSetModel(models.Model):
  1965. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  1966. uid = models.CharField(max_length=20, db_index=True, unique=True, verbose_name='设备UID')
  1967. channel = models.SmallIntegerField(default=0, verbose_name='通道数量') #
  1968. detect_status = models.SmallIntegerField(default=0, verbose_name='推送开关') # 状态[0:关闭,1:开启,2:用户解绑]
  1969. detect_interval = models.IntegerField(verbose_name='推送间隔', default=60) # 秒
  1970. addTime = models.IntegerField(verbose_name='添加时间', default=0, db_index=True)
  1971. updTime = models.IntegerField(verbose_name='更新时间', default=0, db_index=True)
  1972. ucode = models.CharField(max_length=32, verbose_name='设备产品码', default='')
  1973. version = models.CharField(max_length=32, verbose_name='设备版本', default='')
  1974. p2p_region = models.CharField(max_length=16, verbose_name='设备p2p区域', default='ALL') # ALL CN EU US
  1975. tz = models.CharField(default='', max_length=16, verbose_name='设备时区') # +8
  1976. video_code = models.SmallIntegerField(default=0, verbose_name='编码类型') # 0:264,1:265
  1977. nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
  1978. ip = models.CharField(max_length=20, default='', verbose_name=u'设备ip')
  1979. # 设备重置后第一次启动时间
  1980. detect_group = models.CharField(default='', max_length=32, verbose_name=u'检测类型')
  1981. pwd = models.CharField(max_length=32, default='', verbose_name=u'设备密码') # 暂时是预留字段
  1982. resetTime = models.IntegerField(default=0, verbose_name='设备重置时间')
  1983. region_alexa = models.CharField(max_length=8, verbose_name='设备alexa区域', default='ALL') # ALL CN EU US
  1984. deviceModel = models.CharField(blank=True, max_length=64, default='', verbose_name=u'设备型号')
  1985. TimeZone = models.CharField(blank=True, max_length=50, default='', verbose_name=u'时区')
  1986. TimeStatus = models.SmallIntegerField(default=0, verbose_name='同步手机时间开关。0:关闭,1:开启')
  1987. SpaceUsable = models.CharField(blank=True, max_length=20, default='', verbose_name=u'可用空间')
  1988. SpaceSum = models.CharField(blank=True, max_length=20, default='', verbose_name=u'总空间')
  1989. MirrorType = models.IntegerField(blank=True, default=0, verbose_name=u'镜像类型 0:关闭镜像,1:上下镜像,2:左右镜像,3:上下左右镜像')
  1990. RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式(0:关闭,1:全是录像,3:报警录像)')
  1991. OutdoorModel = models.IntegerField(blank=True, default=0, verbose_name=u'室外模式 0:关闭,1:开启')
  1992. WIFIName = models.CharField(blank=True, max_length=50, default='', verbose_name=u'无线名称')
  1993. isDetector = models.SmallIntegerField(default=0, verbose_name=u'侦测开关0:关闭,1:开启')
  1994. DetectorRank = models.IntegerField(default=0, verbose_name=u'侦测灵敏度 0:低,1:中,2:高,3:最高')
  1995. is_human = models.IntegerField(default=0, verbose_name='是否支持人形追踪。0:不支持,1:支持')
  1996. is_custom_voice = models.IntegerField(default=0, verbose_name='是否支持自定义语音。0:不支持,1:支持')
  1997. double_wifi = models.IntegerField(default=0, verbose_name='是否支持双频wifi。0:不支持,1:支持')
  1998. isSupportFourPoint = models.SmallIntegerField(default=0, verbose_name='是否支持预置点') # 0:不支持, 1:支持
  1999. mobile_4g = models.IntegerField(default=0, verbose_name='是否支持4g。0:不支持,1:支持')
  2000. is_ptz = models.IntegerField(default=0, verbose_name='是否支持云台。0:不支持,1:支持')
  2001. is_ai = models.IntegerField(default=2, verbose_name='是否支持ai') # 0,关闭,1开启,2,不支持
  2002. cloud_vod = models.SmallIntegerField(default=2, verbose_name='云存开关') # 0,关闭,1开启,2,不支持
  2003. is_alexa = models.IntegerField(default=0, verbose_name='是否支持alexa') # 0为不支持,1为支持,2为开启alexa发现
  2004. is_notification = models.IntegerField(blank=True, default=1, verbose_name='新加-消息提醒开关') # 0:关闭,1:开启
  2005. new_detect_interval = models.IntegerField(blank=True, verbose_name='新加-消息提醒间隔', default=60) # 秒
  2006. tb_country = models.IntegerField(blank=True, default=0, verbose_name='国家')
  2007. tb_city_information_id = models.IntegerField(blank=True, default=0, verbose_name='城市信息')
  2008. device_type = models.SmallIntegerField(default=0, verbose_name='设备类型')
  2009. ai_type = models.IntegerField(default=0, verbose_name='检测类型')
  2010. msg_notify = models.JSONField(null=True, verbose_name='消息通知Json')
  2011. class Meta:
  2012. db_table = 'uid_set'
  2013. verbose_name = u'设备配置表'
  2014. verbose_name_plural = verbose_name
  2015. ordering = ('id',)
  2016. # 设备关联用户推送
  2017. class UidPushModel(models.Model):
  2018. id = models.AutoField(primary_key=True, verbose_name='自增id')
  2019. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
  2020. uid_set = models.ForeignKey(UidSetModel, to_field='id', on_delete=models.CASCADE)
  2021. appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
  2022. app_type = models.IntegerField(default=0, verbose_name=u'app类型 1:ios,2:安卓')
  2023. push_type = models.IntegerField(default=0,
  2024. verbose_name=u'推送类型') # 0: apns, 1: 安卓gcm, 2: 极光, 3:华为, 4:小米, 5:vivo, 6:oppo, 7:魅族, 8:荣耀
  2025. token_val = models.CharField(default='', max_length=500, verbose_name=u'设备验证令牌')
  2026. jg_token_val = models.CharField(default='', max_length=500, verbose_name=u'极光推送令牌')
  2027. m_code = models.CharField(default='', max_length=64, verbose_name='手机唯一标识')
  2028. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2029. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  2030. lang = models.CharField(max_length=8, verbose_name='推送语言类型', default='en') # en英文 cn中文
  2031. tz = models.CharField(max_length=8, verbose_name='utc时区', default='0')
  2032. class Meta:
  2033. db_table = 'uid_push'
  2034. verbose_name = '设备绑定'
  2035. verbose_name_plural = verbose_name
  2036. ordering = ('-id',)
  2037. class GatewayPush(models.Model):
  2038. id = models.AutoField(primary_key=True, verbose_name='自增id')
  2039. user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name=u'用户id')
  2040. app_bundle_id = models.CharField(default='', max_length=32, verbose_name=u'app包id')
  2041. app_type = models.IntegerField(default=0, verbose_name=u'app类型') # 1: ios, 2: 安卓
  2042. push_type = models.IntegerField(default=0,
  2043. verbose_name=u'推送类型') # 0: apns, 1: 安卓gcm, 2: 极光, 3:华为, 4:小米, 5:vivo, 6:oppo, 7:魅族
  2044. token_val = models.CharField(default='', max_length=500, verbose_name=u'设备验证令牌')
  2045. m_code = models.CharField(default='', max_length=64, db_index=True, verbose_name='手机唯一标识')
  2046. lang = models.CharField(default='en', max_length=8, verbose_name='推送语言')
  2047. tz = models.CharField(default='0', max_length=8, verbose_name='时区')
  2048. logout = models.BooleanField(default=False, verbose_name=u'退出登录')
  2049. class Meta:
  2050. db_table = 'gateway_push'
  2051. verbose_name = '网关推送'
  2052. verbose_name_plural = verbose_name
  2053. app_label = 'PushModel'
  2054. # 设备通道配置
  2055. class UidChannelSetModel(models.Model):
  2056. id = models.AutoField(primary_key=True, verbose_name='自增id')
  2057. uid = models.ForeignKey(UidSetModel, to_field='id', on_delete=models.CASCADE)
  2058. channel = models.IntegerField(default=1, verbose_name='通道号')
  2059. channel_name = models.CharField(blank=True, default='', max_length=20, verbose_name=u'通道名')
  2060. pir_audio = models.SmallIntegerField(default=0, verbose_name='pir声音。0:关闭,1:开启')
  2061. mic_audio = models.SmallIntegerField(default=0, verbose_name='mic声音。0:关闭,1:开启')
  2062. battery_status = models.SmallIntegerField(default=0, verbose_name='低电量提醒状态。0:关闭,1:开启')
  2063. battery_level = models.SmallIntegerField(default=0, verbose_name='低电量提醒级别。0: 低于10%;1:低于25%;2:低于50%;3:低于75%')
  2064. sleep_status = models.SmallIntegerField(default=0, verbose_name='是否开启【休眠通知】。0:关闭;1:开启')
  2065. sleep_time = models.SmallIntegerField(default=0, verbose_name='摄像机进入休眠时间。0:不休眠;1:10秒;2:20秒;3:30秒')
  2066. light_night_model = models.IntegerField(default=0, verbose_name='夜视模式') # 0:全彩模式,1:黑白模式,2:智能夜视模式
  2067. light_alarm_type = models.IntegerField(default=0, verbose_name='警报人形类型') # 0为人形,1为移动,3是人形和移动侦测0x0f
  2068. # 声光报警级别: 0: 关闭,1:强烈声光告警,2:轻微声光告警,3: 强烈声告警,4:轻微声告警,5:强烈光告警
  2069. light_alarm_level = models.IntegerField(default=0, verbose_name='声光报警级别')
  2070. light_alarm_man_en = models.IntegerField(default=0, verbose_name='人为告警状态') # 0:关,1:开
  2071. light_alarm_vol = models.IntegerField(default=0, verbose_name='报警音量') # 音量值0-100
  2072. light_long_light = models.IntegerField(default=0, verbose_name='长亮')
  2073. voice_prompt_status = models.SmallIntegerField(default=0, verbose_name='个性语音提示快关。0:关闭,1:开启')
  2074. voice_prompt_enter = models.IntegerField(default=0, verbose_name='进入铃声id')
  2075. voice_prompt_leave = models.IntegerField(default=0, verbose_name='离开铃声id')
  2076. voice_prompt_intelligent_mute = models.SmallIntegerField(default=0, verbose_name='智能静音。0:关闭,1:开启')
  2077. voice_start_x = models.FloatField(default=0, verbose_name='起始坐标的x')
  2078. voice_start_y = models.FloatField(default=18, verbose_name='起始坐标的y')
  2079. voice_end_x = models.FloatField(default=44, verbose_name='结束坐标的x')
  2080. voice_end_y = models.FloatField(default=18, verbose_name='结束坐标的y')
  2081. voice_start_time = models.IntegerField(default=0, verbose_name='语音执行的起始时间')
  2082. voice_end_time = models.IntegerField(default=0, verbose_name='语音执行的结束时间')
  2083. voice_repeat_day = models.IntegerField(default=127, verbose_name='语音执行的日期,周几')
  2084. voice_direction = models.IntegerField(default=0, verbose_name='语音方向。')
  2085. # 0:移动侦测,1:人形检测,2:挥手识别,3:人脸检测,4:异声感知,5:车辆检测,7:宠物检测,6:哭声检测,8:徘徊检测
  2086. # 9:区域闯入,10:区域闯出,11:长时间无人检测,12:往来检测,13:云相册
  2087. algorithm_type = models.SmallIntegerField(default=99, verbose_name='关联算法类型')
  2088. class Meta:
  2089. db_table = 'uid_channel'
  2090. verbose_name = '设备通道设置'
  2091. verbose_name_plural = verbose_name
  2092. # oauth2 第三方登录补全信息
  2093. class UserExModel(models.Model):
  2094. id = models.AutoField(primary_key=True, verbose_name='自增id')
  2095. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
  2096. appBundleId = models.CharField(default='', max_length=32, verbose_name=u'appID')
  2097. # {'cn': '简体中文', 'tc': '繁体中文', 'fr': '法文', 'ru': '俄文', 'es': '西班牙文',
  2098. # 'pl': '波兰文', 'ja': '日文', 'de': '德文', 'en': '英文'}
  2099. region = models.CharField(default='', max_length=16, verbose_name='区域语言')
  2100. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2101. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  2102. class Meta:
  2103. db_table = 'user_ex'
  2104. verbose_name = '用户扩展信息表'
  2105. verbose_name_plural = verbose_name
  2106. ordering = ('-id',)
  2107. # oauth2 第三方登录补全信息
  2108. class UserOauth2Model(models.Model):
  2109. id = models.AutoField(primary_key=True, verbose_name='自增id')
  2110. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
  2111. authType = models.SmallIntegerField(default=0, verbose_name=0) # 授权类型 0 非授权,1 微信授权,2 苹果授权
  2112. unionID = models.CharField(default='', max_length=64, verbose_name='唯一标记') # 绑定唯一标记 unionID
  2113. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2114. updTime = models.IntegerField(verbose_name='更新时间', default=0)
  2115. class Meta:
  2116. db_table = 'user_oauth2'
  2117. verbose_name = '用户oauth2关联'
  2118. verbose_name_plural = verbose_name
  2119. ordering = ('-id',)
  2120. class SysMassModel(models.Model):
  2121. id = models.AutoField(primary_key=True, verbose_name='主键自增id')
  2122. sender = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE) # 发送人
  2123. platform = models.CharField(default='', verbose_name='平台', max_length=16)
  2124. lang = models.TextField(blank=True, default='', verbose_name=u'语种')
  2125. recever = models.TextField(blank=True, default='', verbose_name=u'接受者')
  2126. msg = models.TextField(blank=True, default='', verbose_name=u'发送内容')
  2127. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2128. updTime = models.IntegerField(verbose_name='修改时间', default=0)
  2129. class Meta:
  2130. db_table = 'sys_mass'
  2131. verbose_name = '群发消息记录表'
  2132. verbose_name_plural = verbose_name
  2133. ordering = ('-id',)
  2134. class UidUserModel(models.Model):
  2135. id = models.CharField(max_length=32, primary_key=True)
  2136. userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
  2137. NickName = models.CharField(max_length=32, verbose_name=u'设备名称')
  2138. UID = models.CharField(max_length=32, verbose_name=u'设备UID', default='')
  2139. View_Account = models.CharField(max_length=32, verbose_name=u'设备用户名称', default='')
  2140. View_Password = models.CharField(max_length=32, verbose_name=u'设备密码', default='')
  2141. ChannelIndex = models.IntegerField(verbose_name=u'通道号', default=0)
  2142. Type = models.IntegerField(verbose_name='设备类型')
  2143. NotificationMode = models.IntegerField(verbose_name=u'是否报警', default=0)
  2144. isShare = models.BooleanField(verbose_name=u'共享设备', default=False)
  2145. primaryUserID = models.CharField(verbose_name='主用户id', max_length=32, default='')
  2146. primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
  2147. data_joined = models.DateTimeField(verbose_name=u'设备添加时间', auto_now_add=True)
  2148. version = models.CharField(max_length=20, default='', verbose_name=u'版本号')
  2149. isVod = models.SmallIntegerField(default=0, verbose_name='是否支持云存') # 是否支持云存设备
  2150. isExist = models.SmallIntegerField(default=1, verbose_name='是否被删除') # 是否被删除了(需主用户交互) 1存在,0不存在
  2151. is_ap = models.SmallIntegerField(default=1, verbose_name='是否为ap模式添加') # 1为ap模式添加,0为非ap模式添加
  2152. class Meta:
  2153. db_table = 'uid_user'
  2154. ordering = ('-data_joined',)
  2155. verbose_name = u'用户设备ap表'
  2156. verbose_name_plural = verbose_name
  2157. class pushDeployModel(models.Model):
  2158. id = models.AutoField(primary_key=True, verbose_name='主键自增id')
  2159. name = models.CharField(max_length=32, default='', verbose_name=u'推送配置名称')
  2160. key = models.CharField(max_length=32, default='', verbose_name=u'推送配置key')
  2161. secret = models.CharField(max_length=32, default='', verbose_name=u'推送配置密钥')
  2162. pem = models.CharField(max_length=32, default='', verbose_name=u'推送配置路径')
  2163. type = models.CharField(max_length=32, default='', verbose_name=u'推送配置类型') # ios 1,android 2
  2164. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2165. updTime = models.IntegerField(verbose_name='修改时间', default=0)
  2166. class Meta:
  2167. db_table = 'push_deploy'
  2168. verbose_name = '推送配置表'
  2169. verbose_name_plural = verbose_name
  2170. ordering = ('-id',)
  2171. class AppSetModel(models.Model):
  2172. id = models.AutoField(primary_key=True, verbose_name='主键自增id')
  2173. appBundleId = models.CharField(max_length=64, default='', verbose_name=u'APPid')
  2174. content = models.TextField(default='', verbose_name=u'里面包含评分,用户帮助,ap添加方式,ap工具,广告模块等json字段值')
  2175. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2176. updTime = models.IntegerField(verbose_name='修改时间', default=0)
  2177. class Meta:
  2178. db_table = 'app_set'
  2179. verbose_name = 'app的各个版本控制表'
  2180. verbose_name_plural = verbose_name
  2181. ordering = ('-id',)
  2182. # 认证客户端类型表
  2183. class ApplicationModel(models.Model):
  2184. CLIENT_TYPES = (
  2185. ('confidential', 'confidential'),
  2186. ('public', 'public'),
  2187. )
  2188. # authorization_code
  2189. # 授权码模式(即先登录获取code, 再获取token)
  2190. # password
  2191. # 密码模式(将用户名, 密码传过去, 直接获取token)
  2192. # client_credentials
  2193. # 客户端模式(无用户, 用户向客户端注册, 然后客户端以自己的名义向’服务端’获取资源)
  2194. # implicit
  2195. # 简化模式(在redirect_uri
  2196. # 的Hash传递token;
  2197. # Auth客户端运行在浏览器中, 如JS, Flash)
  2198. # refresh_token
  2199. # 刷新access_token
  2200. GRANT_TYPES = (
  2201. ('authorization_code', "authorization_code"),
  2202. ('password', "password"),
  2203. ('client_credentials', "client_credentials"),
  2204. ('implicit', "implicit"),
  2205. ('refresh_token', "refresh_token"),
  2206. )
  2207. id = models.BigAutoField(primary_key=True)
  2208. name = models.CharField(max_length=128, blank=True, verbose_name='client名字描述')
  2209. client_id = models.CharField(max_length=50, unique=True, verbose_name='客户端id')
  2210. client_secret = models.CharField(max_length=50, unique=True, verbose_name='客户端secret')
  2211. client_type = models.CharField(max_length=32, choices=CLIENT_TYPES, verbose_name='客户端类型')
  2212. grant_type = models.CharField(max_length=32, choices=GRANT_TYPES, blank=True, null=True)
  2213. redirect_uri = models.TextField(blank=True, null=True, verbose_name='重定向url')
  2214. skip_auth = models.BooleanField(default=False, verbose_name='是否跳过点击授权')
  2215. add_time = models.IntegerField(verbose_name='添加时间', default=0)
  2216. update_time = models.IntegerField(verbose_name='更新时间', default=0)
  2217. class Meta:
  2218. ordering = ('-add_time',)
  2219. verbose_name = u'可授权客户端表'
  2220. db_table = 'oauth_application'
  2221. # 授权码信息表
  2222. class GrantCodeModel(models.Model):
  2223. id = models.BigAutoField(primary_key=True)
  2224. userID = models.ForeignKey(Device_User, verbose_name="用户表userID", to_field='userID', on_delete=models.CASCADE)
  2225. code = models.CharField(max_length=32, unique=True)
  2226. app_id = models.CharField(max_length=100, default='', verbose_name="appBundleId")
  2227. application = models.ForeignKey(ApplicationModel, verbose_name="用户表id", to_field='id', on_delete=models.CASCADE)
  2228. expire_time = models.IntegerField(verbose_name='过期时间', default=0)
  2229. add_time = models.IntegerField(verbose_name='添加时间', default=0)
  2230. update_time = models.IntegerField(verbose_name='更新时间', default=0)
  2231. # 输出的永远是本地时间输出的永远是本地时间
  2232. def is_expired(self):
  2233. return timezone.now() >= self.expire_time
  2234. class Meta:
  2235. ordering = ('-add_time',)
  2236. verbose_name = u'授权码表'
  2237. db_table = 'oauth_grant_code'
  2238. class UserAppFrequencyModel(models.Model):
  2239. id = models.AutoField(primary_key=True)
  2240. user = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE, verbose_name='关联设备用户表')
  2241. type = models.SmallIntegerField(default=0, verbose_name='使用频率类型') # 1:每天,2:三天,3:一周,4:两周,5:一个月,6:一个月以上
  2242. data_time = models.IntegerField(default=0, verbose_name='数据时间')
  2243. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2244. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2245. class Meta:
  2246. verbose_name = '用户使用APP频率表'
  2247. verbose_name_plural = verbose_name
  2248. db_table = 'user_app_frequency'
  2249. ordering = ('-add_time',)
  2250. class AppFrequencyStatisticsModel(models.Model):
  2251. id = models.AutoField(primary_key=True)
  2252. data = models.TextField(default='', verbose_name='统计好的数据')
  2253. month = models.IntegerField(default=0, verbose_name='月份')
  2254. year = models.IntegerField(default=0, verbose_name='年份')
  2255. class Meta:
  2256. verbose_name = 'app月使用频率统计表'
  2257. verbose_name_plural = verbose_name
  2258. db_table = 'app_frequency_statistics'
  2259. class AppFrequencyYearStatisticsModel(models.Model):
  2260. id = models.AutoField(primary_key=True)
  2261. data = models.TextField(default='', verbose_name='统计好的数据')
  2262. year = models.IntegerField(default=0, verbose_name='年份')
  2263. num = models.IntegerField(default=0, verbose_name='总人数')
  2264. class Meta:
  2265. verbose_name = 'app使用频率统计表,年度统计'
  2266. verbose_name_plural = verbose_name
  2267. db_table = 'app_frequency_year_statistics'
  2268. # alexa连接数统计表
  2269. class AlexaConnectStatisticsModel(models.Model):
  2270. id = models.AutoField(primary_key=True)
  2271. num = models.IntegerField(default=0, verbose_name='总人数')
  2272. data_time = models.IntegerField(default=0, verbose_name='数据时间')
  2273. class Meta:
  2274. verbose_name = 'alexa连接数统计表'
  2275. verbose_name_plural = verbose_name
  2276. db_table = 'alexa_statistics'
  2277. class FAQModel(models.Model):
  2278. id = models.AutoField(primary_key=True)
  2279. title = models.CharField(max_length=64, default='', unique=True, verbose_name='标题')
  2280. content = models.TextField(default='', verbose_name='内容')
  2281. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2282. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2283. class Meta:
  2284. db_table = 'tb_faq'
  2285. verbose_name = '问题帮助表'
  2286. verbose_name_plural = verbose_name
  2287. class AppLogModel(models.Model):
  2288. id = models.AutoField(primary_key=True)
  2289. user = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE, verbose_name='关联设备用户表')
  2290. uid = models.CharField(max_length=20, default='', verbose_name='设备uid')
  2291. average_delay = models.CharField(max_length=32, default='', verbose_name='最高平均延时')
  2292. status = models.SmallIntegerField(default=0, verbose_name='失败状态') # 0: 成功,1: 失败
  2293. filename = models.CharField(max_length=120, default='', verbose_name='文件名')
  2294. add_time = models.IntegerField(default=0, verbose_name='日期')
  2295. class Meta:
  2296. db_table = 'app_log'
  2297. verbose_name = 'APP日志表'
  2298. verbose_name_plural = verbose_name
  2299. class DeviceLogModel(models.Model):
  2300. id = models.AutoField(primary_key=True)
  2301. ip = models.CharField(default='', max_length=32, verbose_name='ip')
  2302. uid = models.CharField(max_length=32, default='', verbose_name='设备uid', db_index=True)
  2303. serial_number = models.CharField(max_length=9, default='', verbose_name='序列号', db_index=True)
  2304. status = models.SmallIntegerField(default=0, verbose_name='上传状态') # 0: 成功,1: 失败, 3非文件形式,与error_info相关
  2305. filename = models.CharField(max_length=120, default='', verbose_name='文件名')
  2306. error_info = models.TextField(blank=True, default='', verbose_name='设备异常信息')
  2307. add_time = models.DateTimeField(blank=True, auto_now_add=True, verbose_name=u'添加时间')
  2308. class Meta:
  2309. db_table = 'device_log'
  2310. verbose_name = '设备日志表'
  2311. verbose_name_plural = verbose_name
  2312. class EquipmentInfoExStatisticsModel(models.Model):
  2313. id = models.AutoField(primary_key=True)
  2314. push_type = models.SmallIntegerField(default=0, verbose_name='第三方推送服务器标志。0:APNS推送,1:谷歌推送,2:极光推送')
  2315. number_of_successes = models.IntegerField(default=0, verbose_name='推送成功数量')
  2316. number_of_failures = models.IntegerField(default=0, verbose_name='推送失败数量')
  2317. number_of_arrival = models.IntegerField(default=0, verbose_name='推送到达数量')
  2318. statistics_date = models.IntegerField(default=0, verbose_name='属于哪天、哪月的统计')
  2319. date_type = models.SmallIntegerField(default=0, verbose_name='统计日期的类型。0:天,1:月')
  2320. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2321. class Meta:
  2322. db_table = 'equipment_info_ex_statistics'
  2323. verbose_name = '推送消息统计表'
  2324. verbose_name_plural = verbose_name
  2325. class CountryIPModel(models.Model):
  2326. id = models.AutoField(primary_key=True)
  2327. ip = models.CharField(default='', max_length=32, verbose_name='ip')
  2328. user_ex = models.ForeignKey(UserExModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联用户扩展信息表id')
  2329. country = models.CharField(default='', max_length=100, verbose_name='国家')
  2330. status = models.SmallIntegerField(default=0, verbose_name='是否已经查找,0:否,1:是')
  2331. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2332. class Meta:
  2333. db_table = 'country_ip'
  2334. verbose_name = 'ip-国家统计表'
  2335. verbose_name_plural = verbose_name
  2336. class ZositechHelpModel(models.Model):
  2337. id = models.AutoField(primary_key=True)
  2338. locale = models.CharField(default='', db_index=True, max_length=50, verbose_name='语言')
  2339. label_names = models.CharField(default='', db_index=True, max_length=50, verbose_name='标签')
  2340. origin = models.CharField(default='', db_index=True, max_length=50, verbose_name='来源')
  2341. # author_id = models.CharField(default='', max_length=50, verbose_name='管理员id')
  2342. # body = models.TextField(default='', blank=True, verbose_name='内容')
  2343. # comments_disabled = models.CharField(default='', max_length=10, verbose_name='comments')
  2344. # created_at = models.CharField(default='', max_length=50, verbose_name='创建时间')
  2345. # draft = models.CharField(default='', max_length=10, verbose_name='草稿')
  2346. # edited_at = models.CharField(default='',max_length=50, verbose_name='修改时间')
  2347. # html_url = models.CharField(default='', blank=True, verbose_name='跳转路径')
  2348. # body = models.CharField(default='', blank=True, verbose_name='标签')
  2349. # body = models.CharField(default='', blank=True, verbose_name='标签')
  2350. # body = models.TextField(default='', blank=True, verbose_name='标签')
  2351. # body = models.TextField(default='', blank=True, verbose_name='标签')
  2352. # body = models.CharField(default='', blank=True, verbose_name='标签')
  2353. # body = models.CharField(default='', blank=True, verbose_name='标签')
  2354. content = models.TextField(blank=True, default='', verbose_name=u'内容')
  2355. class Meta:
  2356. db_table = 'zositech_help'
  2357. verbose_name = '周视使用帮助表'
  2358. verbose_name_plural = verbose_name
  2359. class EquipmentVersionLimitModel(models.Model):
  2360. id = models.AutoField(primary_key=True)
  2361. type = models.SmallIntegerField(default=0, verbose_name='限制类型')
  2362. content = models.TextField(default='', verbose_name='限制内容')
  2363. equipment_version = models.ForeignKey(Equipment_Version, to_field='eid', on_delete=models.CASCADE,
  2364. verbose_name='关联设备版本信息id')
  2365. status = models.SmallIntegerField(default=0, verbose_name='是否启用。0:不启用,1:启用')
  2366. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2367. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2368. class Meta:
  2369. db_table = 'equipment_version_limit'
  2370. verbose_name = '设备版本信息限制表'
  2371. verbose_name_plural = verbose_name
  2372. class ExperienceContextModel(models.Model):
  2373. id = models.AutoField(primary_key=True)
  2374. experience_type = models.SmallIntegerField(default=0, verbose_name='体验类型') # 0: 免费体验套餐, 1: 激活码
  2375. uid = models.CharField(max_length=20, default='', verbose_name='设备uid')
  2376. do_time = models.IntegerField(default=0, verbose_name='激活时间')
  2377. # is_experience = models.SmallIntegerField(default=0, verbose_name=u'是否云存体验用户') # 0:不是体验用户,1:是体验用户
  2378. class Meta:
  2379. db_table = 'experience_context'
  2380. verbose_name = '设备体验表'
  2381. verbose_name_plural = verbose_name
  2382. class ExperienceAiModel(models.Model):
  2383. id = models.AutoField(primary_key=True)
  2384. experience_type = models.SmallIntegerField(default=0, verbose_name='体验类型') # 0: 免费体验, 1: 激活码
  2385. uid = models.CharField(max_length=20, default='', verbose_name='设备uid')
  2386. do_time = models.IntegerField(default=0, verbose_name='激活时间')
  2387. class Meta:
  2388. db_table = 'experience_ai'
  2389. verbose_name = 'ai体验表'
  2390. verbose_name_plural = verbose_name
  2391. class CDKcontextModel(models.Model):
  2392. id = models.AutoField(primary_key=True)
  2393. cdk = models.CharField(max_length=50, unique=True, verbose_name='激活码')
  2394. create_time = models.IntegerField(default=0, verbose_name='创建时间')
  2395. valid_time = models.IntegerField(default=0, verbose_name='有效期间') # 超过有效期激活码不可在激活 ,0:永久
  2396. is_activate = models.SmallIntegerField(default=0, verbose_name='是否已激活') # 0 未激活 1 已激活
  2397. is_down = models.SmallIntegerField(default=0, verbose_name='是否已下载') # 0 未下载 1 已下载
  2398. rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')
  2399. order = models.CharField(max_length=20, blank=True, unique=True, verbose_name='订单id')
  2400. express_id = models.CharField(blank=True, max_length=128, verbose_name='速卖通订单id')
  2401. # 备用字段
  2402. spare_1 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段1')
  2403. spare_2 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段2')
  2404. spare_3 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段3')
  2405. class Meta:
  2406. db_table = 'cdk_context'
  2407. verbose_name = '激活码表'
  2408. verbose_name_plural = verbose_name
  2409. class VoicePromptModel(models.Model):
  2410. id = models.AutoField(primary_key=True)
  2411. title = models.CharField(max_length=128, default='', verbose_name='语音标题')
  2412. type = models.SmallIntegerField(default=0, verbose_name='语音类型。0:进入语音,1:离开语音')
  2413. filename = models.CharField(max_length=120, default='', verbose_name='文件名')
  2414. language = models.CharField(max_length=16, default='', verbose_name='语言类型')
  2415. classification = models.SmallIntegerField(default=1, verbose_name='语音分类。0:系统,1:自定义')
  2416. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2417. uid = models.CharField(max_length=20, default='0', verbose_name='关联设备UID')
  2418. # 0:移动侦测,1:人形检测,2:挥手识别,3:人脸检测,4:异声感知,5:车辆检测,7:宠物检测,6:哭声检测,8:徘徊检测
  2419. # 9:区域闯入,10:区域闯出,11:长时间无人检测,12:往来检测,13:云相册
  2420. algorithm_type = models.SmallIntegerField(default=99, verbose_name='关联算法类型')
  2421. channel = models.IntegerField(default=0, verbose_name='通道号')
  2422. status = models.SmallIntegerField(default=1, verbose_name='是否启用。0:不启用,1:启用')
  2423. class Meta:
  2424. db_table = 'voice_prompt'
  2425. verbose_name = '语音提示表'
  2426. verbose_name_plural = verbose_name
  2427. class DeviceTypeModel(models.Model):
  2428. id = models.AutoField(primary_key=True)
  2429. name = models.CharField(max_length=64, default='', verbose_name='设备名称')
  2430. model = models.SmallIntegerField(default=0, verbose_name='设备大类。1:dvr,2:ipc')
  2431. type = models.IntegerField(default=0, verbose_name='设备类型')
  2432. ptz_type = models.IntegerField(default=0, verbose_name='ptz类型。1:dvr球机,2:IPCPTZ,3:同轴菜单')
  2433. icon = models.CharField(max_length=120, default='', verbose_name='文件名')
  2434. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2435. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2436. class Meta:
  2437. db_table = 'device_type'
  2438. verbose_name = '设备类型表'
  2439. verbose_name_plural = verbose_name
  2440. class AppBundle(models.Model):
  2441. id = models.AutoField(primary_key=True)
  2442. app_bundle_id = models.CharField(default='', max_length=32, verbose_name='app版本id')
  2443. app_device_type = models.ManyToManyField(to='AppDeviceType', db_table='app_bundle_device_type',
  2444. verbose_name='APP版本-设备类型')
  2445. class Meta:
  2446. db_table = 'app_bundle'
  2447. verbose_name = 'APP版本表'
  2448. verbose_name_plural = verbose_name
  2449. class AppVersionNumber(models.Model):
  2450. id = models.AutoField(primary_key=True)
  2451. app_bundle = models.ForeignKey(AppBundle, to_field='id', default='', on_delete=models.DO_NOTHING,
  2452. verbose_name='关联APP版本表')
  2453. version_number = models.CharField(max_length=32, verbose_name='版本号', default='')
  2454. class Meta:
  2455. db_table = 'app_version_number'
  2456. verbose_name = 'APP版本号表'
  2457. verbose_name_plural = verbose_name
  2458. class AppDeviceType(models.Model):
  2459. id = models.AutoField(primary_key=True)
  2460. # 1:DVR, 2:IPC
  2461. model = models.SmallIntegerField(default=0, verbose_name='设备类型')
  2462. type = models.IntegerField(default=0, verbose_name='设备型号')
  2463. icon = models.CharField(default='', max_length=200, verbose_name='图标文件路径')
  2464. config = models.JSONField(null=True, verbose_name='关联配网方式、网络频段配置json')
  2465. app_version_number_id = models.CharField(default='', max_length=32, verbose_name='关联APP版本号表id')
  2466. class Meta:
  2467. db_table = 'app_device_type'
  2468. verbose_name = 'APP设备类型表'
  2469. verbose_name_plural = verbose_name
  2470. class DeviceNameLanguage(models.Model):
  2471. id = models.AutoField(primary_key=True)
  2472. app_device_type = models.ForeignKey(AppDeviceType, to_field='id', default='', on_delete=models.CASCADE,
  2473. verbose_name='关联APP设备类型表id')
  2474. lang = models.CharField(default='', max_length=10, verbose_name='语言')
  2475. name = models.CharField(default='', max_length=32, verbose_name='设备名称')
  2476. sort = models.SmallIntegerField(default=0, verbose_name=u'升序排序')
  2477. class Meta:
  2478. ordering = ('sort',)
  2479. db_table = 'device_name_language'
  2480. verbose_name = '设备名称语言表'
  2481. verbose_name_plural = verbose_name
  2482. class OperatingLogsModel(models.Model):
  2483. id = models.AutoField(primary_key=True)
  2484. userId = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作人')
  2485. operatingtime = models.DateTimeField(blank=True, verbose_name=u'操作时间', auto_now=True)
  2486. operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
  2487. operatingtype = models.CharField(blank=True, verbose_name=u'操作类型', max_length=32)
  2488. is_saveprocessinfo = models.SmallIntegerField(default=1, verbose_name=u'是否保存过程信息。1:保存,2:不保存')
  2489. devUid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备ID')
  2490. userIp = models.CharField(blank=True, max_length=20, default='', verbose_name=u'用户ip')
  2491. class Meta:
  2492. db_table = 'operating_logs'
  2493. verbose_name = '操作数据表'
  2494. verbose_name_plural = verbose_name
  2495. class ProcessInfoLogsModel(models.Model):
  2496. id = models.AutoField(primary_key=True)
  2497. userId = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作人')
  2498. devUid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备ID')
  2499. operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
  2500. operatingtime = models.DateTimeField(blank=True, verbose_name=u'操作时间', auto_now=True)
  2501. class Meta:
  2502. db_table = 'processinfo_logs'
  2503. verbose_name = '过程信息表'
  2504. verbose_name_plural = verbose_name
  2505. class UserModel(models.Model):
  2506. id = models.AutoField(primary_key=True)
  2507. username = models.CharField(unique=True, max_length=128, null=False, verbose_name='用户名')
  2508. password = models.CharField(max_length=128, null=False, verbose_name='密码')
  2509. permission = models.CharField(max_length=24, null=False, verbose_name='权限')
  2510. login_time = models.IntegerField(blank=True, default=0, verbose_name='登录时间')
  2511. online = models.SmallIntegerField(default=0, verbose_name='是否在线')
  2512. phone = models.CharField(max_length=11, default='', verbose_name='手机号')
  2513. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2514. class Meta:
  2515. verbose_name = '用户表'
  2516. verbose_name_plural = verbose_name
  2517. db_table = 'user'
  2518. class CompanyModel(models.Model):
  2519. id = models.AutoField(primary_key=True)
  2520. name = models.CharField(max_length=64, unique=True, default='', verbose_name='企业名称')
  2521. mark = models.CharField(max_length=3, unique=True, default='', verbose_name='企业标志,用于序列号的后三位')
  2522. secret = models.CharField(max_length=10, db_index=True, default='', verbose_name='企业秘钥')
  2523. quantity = models.IntegerField(default=0, verbose_name='已购买的序列号的数量')
  2524. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2525. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2526. class Meta:
  2527. db_table = 'tb_company'
  2528. verbose_name = '企业表'
  2529. verbose_name_plural = verbose_name
  2530. class RegionModel(models.Model):
  2531. id = models.AutoField(primary_key=True)
  2532. name = models.CharField(max_length=32, default='', verbose_name='区域名称')
  2533. continent_code = models.CharField(max_length=3, default='', verbose_name='洲代码')
  2534. api = models.CharField(max_length=50, default='', verbose_name='域名')
  2535. zosi_api = models.CharField(max_length=50, default='', verbose_name='周视域名')
  2536. loocam_api = models.CharField(max_length=50, default='', verbose_name='录看域名')
  2537. neutral_api = models.CharField(max_length=50, default='', verbose_name='中性域名')
  2538. push_api = models.CharField(max_length=50, default='', verbose_name='推送域名')
  2539. class Meta:
  2540. db_table = 'tb_region'
  2541. verbose_name = '区域表'
  2542. verbose_name_plural = verbose_name
  2543. class VPGModel(models.Model):
  2544. id = models.AutoField(primary_key=True)
  2545. name = models.CharField(max_length=32, default='', verbose_name='群组名称')
  2546. uid_count = models.IntegerField(default=0, verbose_name='uid数量')
  2547. region = models.ForeignKey(RegionModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='群组用于的地区')
  2548. company = models.ForeignKey(CompanyModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联企业表')
  2549. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2550. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2551. class Meta:
  2552. db_table = 'tb_vpg'
  2553. verbose_name = 'vpg表'
  2554. verbose_name_plural = verbose_name
  2555. class UIDModel(models.Model):
  2556. id = models.AutoField(primary_key=True)
  2557. uid = models.CharField(max_length=20, null=False, db_index=True, unique=True, verbose_name='设备id')
  2558. mac = models.CharField(max_length=17, null=True, default='', verbose_name='设备id对应的mac地址')
  2559. uid_extra = models.TextField(default='', verbose_name='uid的额外描述')
  2560. status = models.SmallIntegerField(default=0, verbose_name='使用状态') # 0:未使用, 2:已使用, 3:数据被同步
  2561. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2562. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2563. area = models.SmallIntegerField(default=0, verbose_name='区域') # 0:国内, 1:国外
  2564. vpg = models.ForeignKey(VPGModel, to_field='id', default=1, on_delete=models.DO_NOTHING, verbose_name='关联VPG表的id')
  2565. p2p_type = models.IntegerField(default=1, verbose_name='p2p类型。1:宸云,2:tutk')
  2566. full_uid_code = models.CharField(max_length=256, default='', verbose_name='宸云完整uid')
  2567. platform = models.CharField(max_length=10, default='', verbose_name='平台')
  2568. init_string = models.CharField(max_length=256, default='', verbose_name='尚云设备初始化字符')
  2569. init_string_app = models.CharField(max_length=256, default='', verbose_name='尚云设备app初始化字符')
  2570. class Meta:
  2571. ordering = ('-add_time',)
  2572. verbose_name = 'uid表'
  2573. verbose_name_plural = verbose_name
  2574. db_table = 'uid'
  2575. class UserUIDModel(models.Model):
  2576. id = models.AutoField(primary_key=True)
  2577. user = models.ForeignKey(UserModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联用户表id')
  2578. uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联uid表id')
  2579. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2580. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2581. class Meta:
  2582. verbose_name = '用户与UID的关联表'
  2583. verbose_name_plural = verbose_name
  2584. db_table = 'user_uid'
  2585. class PermissionModel(models.Model):
  2586. id = models.AutoField(primary_key=True)
  2587. type = models.SmallIntegerField(null=False, verbose_name='权限枚举')
  2588. description = models.TextField(default='', verbose_name='权限描述')
  2589. class Meta:
  2590. verbose_name = '权限表'
  2591. verbose_name_plural = verbose_name
  2592. db_table = 'permission'
  2593. class LogModel(models.Model):
  2594. id = models.AutoField(primary_key=True)
  2595. operation = models.TextField(default='', verbose_name='操作描述')
  2596. time = models.IntegerField(default=0, verbose_name='操作时间')
  2597. ip = models.CharField(default='', max_length=24, verbose_name='用户ip')
  2598. user = models.ForeignKey(UserModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联用户id')
  2599. content = models.TextField(default='', verbose_name='请求参数')
  2600. status = models.IntegerField(default=0, verbose_name='请求状态')
  2601. url = models.CharField(max_length=150, default='', verbose_name='请求路径')
  2602. class Meta:
  2603. ordering = ('-time',)
  2604. verbose_name = '日志表'
  2605. verbose_name_plural = verbose_name
  2606. db_table = 'log'
  2607. class HistoryUIDModel(models.Model):
  2608. id = models.AutoField(primary_key=True)
  2609. uid = models.CharField(max_length=20, null=False, db_index=True, verbose_name='设备id')
  2610. uid_extra = models.TextField(default='', verbose_name='uid的额外描述')
  2611. status = models.SmallIntegerField(default=0, verbose_name='使用状态')
  2612. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2613. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2614. area = models.SmallIntegerField(default=0, verbose_name='区域') # 0:国内;1:国外
  2615. class Meta:
  2616. verbose_name = '历史UID表'
  2617. verbose_name_plural = verbose_name
  2618. db_table = 'history_uid'
  2619. class MacModel(models.Model):
  2620. id = models.AutoField(primary_key=True)
  2621. value = models.CharField(max_length=17, null=False, verbose_name='最新的mac地址')
  2622. is_active = models.BooleanField(default=True, verbose_name='当前mac地址是否可用')
  2623. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2624. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2625. class Meta:
  2626. verbose_name = '最新的mac地址表'
  2627. verbose_name_plural = verbose_name
  2628. db_table = 'tb_mac'
  2629. class OrderTaskModel(models.Model):
  2630. id = models.AutoField(primary_key=True)
  2631. order_number = models.CharField(max_length=32, verbose_name='订单号')
  2632. board = models.CharField(max_length=32, verbose_name='主板')
  2633. plan = models.CharField(max_length=32, verbose_name='配置方案')
  2634. checksum = models.CharField(max_length=32, verbose_name='校验和')
  2635. ic_model = models.CharField(max_length=32, verbose_name='ic型号')
  2636. quantity = models.IntegerField(default=0, verbose_name='通知单上的生成数量')
  2637. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2638. class Meta:
  2639. db_table = 'order_task'
  2640. verbose_name = '订单任务表'
  2641. verbose_name_plural = verbose_name
  2642. class CountryModel(models.Model):
  2643. id = models.AutoField(primary_key=True)
  2644. number = models.IntegerField(unique=True, verbose_name='区号')
  2645. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2646. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2647. region = models.ForeignKey(RegionModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联区域表')
  2648. country_code = models.CharField(max_length=2, default='', verbose_name='国家iso2代码')
  2649. country_name = models.CharField(max_length=20, default='', verbose_name='国家名')
  2650. international_area_code = models.IntegerField(default=0, verbose_name='国际区号')
  2651. DST = models.SmallIntegerField(default=0, verbose_name='夏令时')
  2652. class Meta:
  2653. db_table = 'tb_country'
  2654. verbose_name = '地区表'
  2655. verbose_name_plural = verbose_name
  2656. class LanguageModel(models.Model):
  2657. id = models.AutoField(primary_key=True)
  2658. lang = models.CharField(max_length=16, default='', verbose_name='语种')
  2659. lang_youdao = models.CharField(max_length=16, default='', verbose_name='有道的语种')
  2660. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2661. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2662. class Meta:
  2663. db_table = 'tb_language'
  2664. verbose_name = '语言表'
  2665. verbose_name_plural = verbose_name
  2666. class CountryLanguageModel(models.Model):
  2667. id = models.AutoField(primary_key=True)
  2668. country_name = models.CharField(max_length=64, default='', verbose_name='国家名称')
  2669. language = models.ForeignKey(LanguageModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联语言表的id')
  2670. country = models.ForeignKey(CountryModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联地区表的id')
  2671. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2672. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2673. class Meta:
  2674. db_table = 'tb_country_language'
  2675. verbose_name = '不同语言的地区名称表'
  2676. verbose_name_plural = verbose_name
  2677. class SerialNumberModel(models.Model):
  2678. id = models.AutoField(primary_key=True)
  2679. serial_number = models.CharField(max_length=9, db_index=True, unique=True, verbose_name='序列号')
  2680. status = models.SmallIntegerField(default=1, verbose_name='可用状态。0:不可用,1:可用')
  2681. use_status = models.SmallIntegerField(default=0, db_index=True, verbose_name='使用状态, 0: 未使用, 1: 已分配')
  2682. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2683. class Meta:
  2684. db_table = 'tb_serial_number'
  2685. verbose_name = '序列号表'
  2686. verbose_name_plural = verbose_name
  2687. class CompanySerialModel(models.Model):
  2688. id = models.AutoField(primary_key=True)
  2689. company = models.ForeignKey(CompanyModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联企业表的id')
  2690. serial_number = models.CharField(max_length=11, db_index=True, blank=True, default='', verbose_name=u'6位数序列号')
  2691. status = models.SmallIntegerField(default=0, verbose_name='使用状态, 0:未使用,1:已分配,2:绑定uid,3:已占用')
  2692. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2693. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2694. class Meta:
  2695. db_table = 'tb_company_serial'
  2696. verbose_name = '企业关联序列号表'
  2697. verbose_name_plural = verbose_name
  2698. class UIDCompanySerialModel(models.Model):
  2699. id = models.AutoField(primary_key=True)
  2700. uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联UID表')
  2701. company_serial = models.ForeignKey(CompanySerialModel, to_field='id', on_delete=models.CASCADE,
  2702. verbose_name='6位数序列号')
  2703. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2704. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2705. class Meta:
  2706. db_table = 'tb_uid_company_serial'
  2707. verbose_name = 'UID关联【企业关联序列号】表'
  2708. verbose_name_plural = verbose_name
  2709. class iotdeviceInfoModel(models.Model):
  2710. id = models.AutoField(primary_key=True)
  2711. serial_number = models.CharField(default='', max_length=9, db_index=True, verbose_name='序列号')
  2712. uid = models.CharField(default='', max_length=32, db_index=True, verbose_name='uid')
  2713. certificate_id = models.CharField(default='', max_length=128, verbose_name='证书id')
  2714. certificate_pem = models.TextField(default='', verbose_name='证书')
  2715. public_key = models.TextField(default='', verbose_name='公钥')
  2716. private_key = models.TextField(default='', verbose_name='私钥')
  2717. thing_name = models.CharField(default='', max_length=64, db_index=True, verbose_name='物品名')
  2718. thing_groups = models.CharField(default='', max_length=64, verbose_name='物品组')
  2719. endpoint = models.CharField(default='', max_length=100, db_index=True, verbose_name='终端节点')
  2720. token_iot_number = models.CharField(default='', db_index=True, max_length=50, verbose_name='签名令牌')
  2721. add_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间')
  2722. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  2723. class Meta:
  2724. db_table = 'iot_deviceInfo'
  2725. verbose_name = 'iot设备信息表'
  2726. verbose_name_plural = verbose_name
  2727. class UIDMainUser(models.Model):
  2728. id = models.AutoField(primary_key=True)
  2729. UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID', default='')
  2730. user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID', default='')
  2731. class Meta:
  2732. db_table = 'uid_mainuser'
  2733. verbose_name = '设备主用户表'
  2734. verbose_name_plural = verbose_name
  2735. class Pc_Info(models.Model):
  2736. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2737. pc_name = models.CharField(blank=True, max_length=32, verbose_name=u'软件名称')
  2738. bundle_version = models.IntegerField(default=0, verbose_name=u'项目类型。0:Zosi;149:COCOON HD; 150:Loocam; 151:中性')
  2739. pc_version = models.CharField(blank=True, max_length=12, verbose_name=u'版本号')
  2740. pc_test = models.SmallIntegerField(default=0, verbose_name='测试版。0:否,1:是')
  2741. lang = models.CharField(blank=True, max_length=32, verbose_name=u'语言类型')
  2742. download_link = models.CharField(max_length=300, blank=True, default='', verbose_name='下载链接')
  2743. add_time = models.IntegerField(verbose_name='添加时间', default=0)
  2744. update_time = models.IntegerField(verbose_name='更新时间', default=0)
  2745. file_type = models.CharField(blank=True, max_length=32, verbose_name=u'文件类型')
  2746. package = models.CharField(blank=True, max_length=32, verbose_name=u'整合包id')
  2747. explain = models.TextField(blank=True, default='', verbose_name=u'更新内容')
  2748. is_update = models.SmallIntegerField(blank=True, default=0, verbose_name='强制更新。0:否,1:是')
  2749. is_open = models.SmallIntegerField(blank=True, default=0, verbose_name='是否开启版本。0:否,1:是')
  2750. content = models.TextField(blank=True, default='', verbose_name=u'内容信息')
  2751. authority = models.SmallIntegerField(blank=True, default=0, verbose_name='权限')
  2752. class Meta:
  2753. db_table = 'pc_info'
  2754. verbose_name = u'pc信息表'
  2755. verbose_name_plural = verbose_name
  2756. ordering = ('id',)
  2757. class CloudLogModel(models.Model):
  2758. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2759. user = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'用户')
  2760. uid = models.CharField(blank=True, max_length=32, db_index=True, verbose_name=u'uid', default='')
  2761. operation = models.CharField(max_length=100, db_index=True, default='', blank=True, verbose_name=u'操作')
  2762. ip = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'访问ip地址')
  2763. url = models.CharField(max_length=150, default='', blank=True, verbose_name=u'访问路径')
  2764. time = models.IntegerField(null=True, blank=True, db_index=True, verbose_name=u'访问时间')
  2765. content = models.TextField(blank=True, default='', verbose_name=u'参数内容')
  2766. class Meta:
  2767. db_table = 'cloud_log'
  2768. verbose_name = '云存api记录表'
  2769. verbose_name_plural = verbose_name
  2770. class VideoPlaybackTimeModel(models.Model):
  2771. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2772. userID = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'用户ID')
  2773. uid = models.CharField(max_length=32, default='', db_index=True, verbose_name=u'uid')
  2774. playMode = models.CharField(max_length=10, default='', verbose_name=u'播放模式')
  2775. startTime = models.IntegerField(default=0, verbose_name=u'开始播放时间')
  2776. duration = models.SmallIntegerField(default=0, verbose_name='播放时长')
  2777. class Meta:
  2778. db_table = 'video_playback_time'
  2779. verbose_name = '视频播放时长表'
  2780. verbose_name_plural = verbose_name
  2781. class PctestjobModel(models.Model):
  2782. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2783. jobname = models.CharField(blank=True, max_length=32, verbose_name=u'岗位名字')
  2784. jobcode = models.SmallIntegerField(default=3, verbose_name='岗位code 。1:管理员,3:普通人员')
  2785. class Meta:
  2786. db_table = 'pctest_job'
  2787. verbose_name = u'pc岗位表'
  2788. verbose_name_plural = verbose_name
  2789. ordering = ('id',)
  2790. class PctestdeviceModel(models.Model):
  2791. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2792. devicename = models.CharField(blank=True, max_length=32, verbose_name=u'设备名字')
  2793. class Meta:
  2794. db_table = 'pctest_device'
  2795. verbose_name = u'pc测试设备表'
  2796. verbose_name_plural = verbose_name
  2797. ordering = ('id',)
  2798. class OrderUIDModel(models.Model):
  2799. id = models.AutoField(primary_key=True)
  2800. uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联uid表')
  2801. order = models.ForeignKey(OrderTaskModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联订单任务表')
  2802. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2803. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2804. class Meta:
  2805. db_table = 'order_uid'
  2806. verbose_name = '订单与uid关联表'
  2807. verbose_name_plural = verbose_name
  2808. class PctestfunctionModel(models.Model):
  2809. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2810. functionname = models.CharField(blank=True, max_length=32, verbose_name=u'职能名字')
  2811. functioncode = models.SmallIntegerField(default=1, verbose_name='职能code 。PC端自己逻辑判断')
  2812. class Meta:
  2813. db_table = 'pctest_function'
  2814. verbose_name = u'pc设备职能表'
  2815. verbose_name_plural = verbose_name
  2816. ordering = ('id',)
  2817. class PctestuserModel(models.Model):
  2818. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2819. username = models.CharField(blank=True, max_length=32, verbose_name=u'用户名字')
  2820. password = models.CharField(blank=True, max_length=32, verbose_name=u'用户名字')
  2821. job = models.ForeignKey(PctestjobModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联pc岗位表')
  2822. class Meta:
  2823. db_table = 'pctest_user'
  2824. verbose_name = u'pc角色岗位表'
  2825. verbose_name_plural = verbose_name
  2826. ordering = ('id',)
  2827. class PctestlogModel(models.Model):
  2828. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2829. user = models.ForeignKey(PctestuserModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联pc岗位表')
  2830. content = models.TextField(blank=True, default='', verbose_name=u'测试日志')
  2831. addtime = models.IntegerField(verbose_name='添加时间', default=0)
  2832. class Meta:
  2833. db_table = 'pctest_log'
  2834. verbose_name = u'pc测试日志表'
  2835. verbose_name_plural = verbose_name
  2836. ordering = ('id',)
  2837. class PctestjobdeviceModel(models.Model):
  2838. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2839. job = models.ForeignKey(PctestjobModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联pc岗位表')
  2840. device = models.ForeignKey(PctestdeviceModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联pc测试设备表')
  2841. class Meta:
  2842. db_table = 'pctest_job_device'
  2843. verbose_name = u'pc岗位设备关联表'
  2844. verbose_name_plural = verbose_name
  2845. ordering = ('id',)
  2846. class PctestModel(models.Model):
  2847. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2848. device = models.ForeignKey(PctestdeviceModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联pc测试设备表')
  2849. function = models.ForeignKey(PctestfunctionModel, to_field='id', on_delete=models.DO_NOTHING,
  2850. verbose_name='关联pc设备职能表')
  2851. class Meta:
  2852. db_table = 'pctest_device_function'
  2853. verbose_name = u'pc岗位设备关联表'
  2854. verbose_name_plural = verbose_name
  2855. ordering = ('id',)
  2856. class P2PIpModel(models.Model):
  2857. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2858. uid = models.CharField(max_length=20, default='', unique=True, db_index=True, verbose_name='设备uid')
  2859. ip = models.CharField(default='', max_length=32, verbose_name='ip')
  2860. p2p_request_times = models.IntegerField(default=0, verbose_name='p2p请求次数')
  2861. relay_request_times = models.IntegerField(default=0, verbose_name='relay请求次数')
  2862. continent_name = models.CharField(default='', max_length=10, verbose_name='大洲')
  2863. country_name = models.CharField(default='', max_length=100, verbose_name='国家')
  2864. region_name = models.CharField(default='', max_length=100, verbose_name='地区')
  2865. city_name = models.CharField(default='', max_length=100, verbose_name='城市')
  2866. add_time = models.IntegerField(default=0, verbose_name='添加时间')
  2867. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  2868. class Meta:
  2869. db_table = 'p2p_ip'
  2870. verbose_name = u'设备p2p_ip地区表'
  2871. verbose_name_plural = verbose_name
  2872. class DeviceDomainModel(models.Model):
  2873. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2874. ip = models.CharField(default='', db_index=True, max_length=32, verbose_name='ip')
  2875. country_name = models.CharField(max_length=20, default='', verbose_name='国家名')
  2876. api = models.CharField(max_length=50, default='', verbose_name='使用的域名')
  2877. add_time = models.DateTimeField(blank=True, auto_now_add=True, verbose_name=u'添加时间')
  2878. update_time = models.DateTimeField(blank=True, auto_now=True, verbose_name=u'更新时间')
  2879. class Meta:
  2880. db_table = 'device_domain'
  2881. verbose_name = u'设备域名表'
  2882. verbose_name_plural = verbose_name
  2883. class DeviceDomainRegionModel(models.Model):
  2884. id = models.AutoField(primary_key=True, verbose_name='主键')
  2885. serial_number = models.CharField(default='', max_length=9, verbose_name='序列号')
  2886. ip = models.CharField(default='', max_length=32, verbose_name='ip')
  2887. country_code = models.CharField(default='', max_length=8, verbose_name='国家编码')
  2888. region_id = models.SmallIntegerField(default=0, verbose_name='对应tb_region表id')
  2889. add_time = models.DateTimeField(blank=True, auto_now_add=True, verbose_name='添加时间')
  2890. update_time = models.DateTimeField(blank=True, auto_now=True, verbose_name='更新时间')
  2891. class Meta:
  2892. db_table = 'device_domain_region'
  2893. verbose_name = '设备域名地区表'
  2894. verbose_name_plural = verbose_name
  2895. class RequestRecordModel(models.Model):
  2896. id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
  2897. method = models.CharField(max_length=10, default='', verbose_name='请求类型')
  2898. url = models.CharField(max_length=200, default='', verbose_name='请求路径')
  2899. parameter = models.CharField(max_length=200, default='', verbose_name='请求参数')
  2900. execute_time = models.FloatField(default=0, verbose_name='执行时间')
  2901. status_code = models.CharField(max_length=10, default='', verbose_name='响应状态码')
  2902. reason_phrase = models.CharField(max_length=200, default='', verbose_name='错误信息')
  2903. add_time = models.DateTimeField(blank=True, auto_now_add=True, verbose_name=u'添加时间')
  2904. class Meta:
  2905. db_table = 'request_record'
  2906. verbose_name = u'请求记录表'
  2907. verbose_name_plural = verbose_name
  2908. ordering = ('-add_time',)
  2909. class AiService(models.Model):
  2910. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2911. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  2912. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  2913. orders = models.ForeignKey(Order_Model, to_field='orderID', default='', on_delete=models.CASCADE,
  2914. verbose_name='关联订单表')
  2915. detect_status = models.SmallIntegerField(default=0, verbose_name='状态') # 0:关闭, 1:开启
  2916. endTime = models.BigIntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
  2917. addTime = models.IntegerField(verbose_name='添加时间', default=0)
  2918. updTime = models.BigIntegerField(verbose_name='更新时间', default=0)
  2919. use_status = models.IntegerField(verbose_name='使用状态', default=0) # 0:未使用, 1:使用中, 2:已过期
  2920. # 1:人, 2:动物, 3:车, 4:包裹
  2921. detect_group = models.CharField(blank=True, default='1', max_length=100, verbose_name='侦测类型')
  2922. detect_interval = models.IntegerField(verbose_name='推送间隔', default=60) # 秒
  2923. class Meta:
  2924. db_table = 'ai_service'
  2925. verbose_name = 'ai设备服务表'
  2926. verbose_name_plural = verbose_name
  2927. ordering = ('id',)
  2928. class AiProcessTime(models.Model):
  2929. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2930. msg_id = models.CharField(max_length=50, verbose_name='消息id', default=0)
  2931. detectTime = models.BigIntegerField(verbose_name='设备侦测时间', default=0)
  2932. receiveTime = models.BigIntegerField(verbose_name='接口调用时间', default=0)
  2933. aiTime = models.BigIntegerField(verbose_name='ai识别上传开始时间', default=0)
  2934. aiEndTime = models.BigIntegerField(verbose_name='ai识别结束时间', default=0)
  2935. pushTime = models.BigIntegerField(verbose_name='推送开始时间', default=0)
  2936. pushEndTime = models.BigIntegerField(verbose_name='推送结束时间', default=0)
  2937. picUploadTime = models.BigIntegerField(verbose_name='图片上传开始时间', default=0)
  2938. picUploadEndTime = models.BigIntegerField(verbose_name='图片上传结束结束时间', default=0)
  2939. serverCountTime = models.BigIntegerField(verbose_name='服务器总花时间', default=0)
  2940. appPushTime = models.IntegerField(verbose_name='添加时间', default=0)
  2941. endTime = models.IntegerField(verbose_name='接口结束时间', default=0)
  2942. class Meta:
  2943. db_table = 'ai_process_time'
  2944. verbose_name = 'ai设备服务表'
  2945. verbose_name_plural = verbose_name
  2946. ordering = ('id',)
  2947. class Surveys(models.Model):
  2948. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2949. no = models.CharField(max_length=10, unique=True, verbose_name='编号', default=0)
  2950. user_type = models.SmallIntegerField(default=0, verbose_name='调查用户对象[1:云存储用户,2:AI用户,3:所有APP用户]')
  2951. start_time = models.IntegerField(default=0, verbose_name='开始显示时间')
  2952. end_time = models.IntegerField(default=0, verbose_name='显示结束时间')
  2953. is_show = models.SmallIntegerField(default=0, verbose_name='是否显示[0:隐藏,1:显示]')
  2954. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  2955. class Meta:
  2956. db_table = 'surveys'
  2957. verbose_name = '问卷调查—问卷调查表'
  2958. verbose_name_plural = verbose_name
  2959. ordering = ('id',)
  2960. class SurveysUserLog(models.Model):
  2961. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2962. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  2963. verbose_name='关联用户表ID')
  2964. type = models.SmallIntegerField(default=0, verbose_name='调查用户对象[1:云存储用户,2:AI用户,3:所有APP用户]')
  2965. is_filled = models.SmallIntegerField(default=0, verbose_name='是否填写[0:未填,1:已填]')
  2966. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  2967. class Meta:
  2968. db_table = 'surveys_user_log'
  2969. verbose_name = '问卷调查—用户记录'
  2970. verbose_name_plural = verbose_name
  2971. ordering = ('id',)
  2972. class SurveysTitle(models.Model):
  2973. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2974. surveys = models.ForeignKey(Surveys, to_field='id', default='', on_delete=models.CASCADE, verbose_name='关联问卷表ID')
  2975. title_content = models.TextField(blank=True, verbose_name='题目内容', default=0)
  2976. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  2977. class Meta:
  2978. db_table = 'surveys_title'
  2979. verbose_name = '问卷调查—题目表'
  2980. verbose_name_plural = verbose_name
  2981. ordering = ('id',)
  2982. class CloudVodSurveysAnswer(models.Model):
  2983. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  2984. title = models.ForeignKey(SurveysTitle, to_field='id', default='', on_delete=models.CASCADE, verbose_name='关联题目表ID')
  2985. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  2986. verbose_name='关联用户表ID')
  2987. answer1 = models.SmallIntegerField(verbose_name='答案1 (分数)')
  2988. answer2 = models.CharField(max_length=500, blank=True, verbose_name='答案2', default='')
  2989. answer3 = models.CharField(max_length=500, blank=True, verbose_name='答案3', default='')
  2990. answer4 = models.CharField(max_length=500, blank=True, verbose_name='答案4', default='')
  2991. answer5 = models.CharField(max_length=500, blank=True, verbose_name='答案5', default='')
  2992. answer6 = models.CharField(max_length=500, blank=True, verbose_name='答案6', default='')
  2993. ip = models.CharField(max_length=32, default='', db_index=True, blank=True, verbose_name=u'访问ip地址')
  2994. country_name = models.CharField(max_length=20, default='', verbose_name='国家名')
  2995. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  2996. class Meta:
  2997. db_table = 'cloud_vod_surveys_answer'
  2998. verbose_name = '云存问卷调查—答案表'
  2999. verbose_name_plural = verbose_name
  3000. ordering = ('id',)
  3001. class CloudVodSurveysOperateLog(models.Model):
  3002. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3003. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  3004. verbose_name='关联用户表ID')
  3005. status = models.SmallIntegerField(default=0, verbose_name='状态{0:未处理,1:提交,2:关闭,3:未提交}')
  3006. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3007. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3008. class Meta:
  3009. db_table = 'cloud_vod_surveys_operate_log'
  3010. verbose_name = '云存问卷调查—操作日志'
  3011. verbose_name_plural = verbose_name
  3012. ordering = ('id',)
  3013. class DeviceOTAUpgradeRecord(models.Model):
  3014. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3015. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3016. old_version = models.CharField(max_length=22, blank=True, verbose_name='原版本号', default='')
  3017. new_version = models.CharField(max_length=22, blank=True, verbose_name='升级后版本号', default='')
  3018. user_id = models.CharField(max_length=32, blank=True, verbose_name='用户ID', default='')
  3019. serial_number = models.CharField(max_length=11, blank=True, verbose_name='序列号', default='')
  3020. uid = models.CharField(max_length=22, blank=True, verbose_name='设备UID', default='')
  3021. mci = models.CharField(max_length=10, blank=True, verbose_name='设备大类:IPC/NVR/DVR', default='')
  3022. class Meta:
  3023. db_table = 'device_OTA_upgrade_record'
  3024. verbose_name = '设备OTA升级记录'
  3025. verbose_name_plural = verbose_name
  3026. ordering = ('id',)
  3027. class PaypalWebHookEvent(models.Model):
  3028. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3029. webhook_event_id = models.CharField(max_length=200, blank=True, verbose_name='webhook事件ID', default='')
  3030. resource_type = models.CharField(max_length=11, verbose_name='资源类型', blank=True, default='')
  3031. # event_type: 1=PAYMENT.SALE.COMPLETED(付款,订阅成功后钩子),2=PAYMENT.SALE.REVERSED(付款撤销)
  3032. # event_type: 3=BILLING.SUBSCRIPTION.CANCELLED(订阅取消),4=BILLING.SUBSCRIPTION.SUSPENDED(订阅暂停),
  3033. # event_type: 5=BILLING.SUBSCRIPTION.PAYMENT.FAILED(订阅付款失败),6=PAYMENT.SALE.REFUNDED(退款)
  3034. event_type = models.SmallIntegerField(default=0, verbose_name='事件类型')
  3035. summary = models.CharField(max_length=500, verbose_name='事件概要', blank=True, default='')
  3036. agreement_id = models.CharField(max_length=22, db_index=True, verbose_name='订阅ID', blank=True, default='')
  3037. trade_no = models.CharField(max_length=22, db_index=True, verbose_name='交易ID', blank=True, default='')
  3038. orderID = models.CharField(max_length=30, db_index=True, verbose_name='订单ID', blank=True, default='')
  3039. newOrderID = models.CharField(max_length=30, db_index=True, verbose_name='新订单ID', blank=True, default='')
  3040. update_status = models.BooleanField(default=False, verbose_name='更新PayPal资源状态')
  3041. resource = models.TextField(blank=True, default='', verbose_name=u'资源详情')
  3042. agreement_desc = models.TextField(blank=True, default='', verbose_name=u'订阅详情')
  3043. created_time = models.IntegerField(default=0, db_index=True, verbose_name='创建时间')
  3044. class Meta:
  3045. db_table = 'paypal_webhook_event'
  3046. verbose_name = 'paypal钩子事件记录表'
  3047. verbose_name_plural = verbose_name
  3048. ordering = ('id',)
  3049. class PopupsConfig(models.Model):
  3050. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3051. title = models.CharField(max_length=1000, verbose_name='弹窗标题', blank=True, default='')
  3052. content = models.CharField(max_length=1000, verbose_name='弹窗内容', blank=True, default='')
  3053. tag = models.SmallIntegerField(default=0, verbose_name='app跳转页面标签{1:云存储购 2:AI购买 3:优惠券}')
  3054. start_time = models.IntegerField(default=0, verbose_name='更新时间')
  3055. end_time = models.IntegerField(default=0, verbose_name='创建时间')
  3056. lang = models.CharField(blank=True, max_length=16, default='en', verbose_name=u'语言地区')
  3057. class Meta:
  3058. db_table = 'popups_config'
  3059. verbose_name = 'app弹窗设置'
  3060. verbose_name_plural = verbose_name
  3061. ordering = ('id',)
  3062. class RedDotsConfig(models.Model):
  3063. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3064. module = models.CharField(max_length=1000, verbose_name='app模块', blank=True, default='')
  3065. start_time = models.IntegerField(default=0, verbose_name='更新时间')
  3066. end_time = models.IntegerField(default=0, verbose_name='创建时间')
  3067. class Meta:
  3068. db_table = 'red_dots_config'
  3069. verbose_name = '红点标记配置'
  3070. verbose_name_plural = verbose_name
  3071. ordering = ('id',)
  3072. class UserFamily(models.Model):
  3073. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3074. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  3075. verbose_name='关联用户表ID')
  3076. name = models.CharField(max_length=50, db_index=True, verbose_name=u'家庭名称', default='', blank=True)
  3077. location = models.CharField(max_length=100, verbose_name='位置', blank=True, default='')
  3078. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3079. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3080. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3081. class Meta:
  3082. db_table = 'user_family'
  3083. verbose_name = '用户家庭'
  3084. verbose_name_plural = verbose_name
  3085. class FamilyMemberPermission(models.Model):
  3086. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3087. no = models.CharField(max_length=10, unique=True, verbose_name='编号', default=0)
  3088. name = models.CharField(max_length=50, verbose_name=u'权限名称', default='')
  3089. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3090. describe = models.CharField(max_length=128, blank=True, verbose_name='权限描述', default=0)
  3091. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3092. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3093. class Meta:
  3094. db_table = 'family_member_permission'
  3095. verbose_name = '家庭成员权限'
  3096. verbose_name_plural = verbose_name
  3097. class FamilyMember(models.Model):
  3098. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3099. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  3100. verbose_name='关联用户表id')
  3101. user_name = models.CharField(max_length=64, db_index=True, verbose_name=u'用户名', default='', blank=True)
  3102. family = models.ForeignKey(UserFamily, to_field='id', default='', on_delete=models.CASCADE,
  3103. verbose_name='关联用户家庭id')
  3104. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3105. identity = models.SmallIntegerField(default=0, verbose_name='状态{0:普通成员,1:屋主}')
  3106. permission = models.ForeignKey(FamilyMemberPermission, to_field='id', default='', on_delete=models.CASCADE,
  3107. verbose_name='关联用户家庭id')
  3108. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3109. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3110. class Meta:
  3111. db_table = 'family_member'
  3112. verbose_name = '家庭成员'
  3113. verbose_name_plural = verbose_name
  3114. class FamilyRoom(models.Model):
  3115. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3116. name = models.CharField(max_length=128, verbose_name=u'房间名称', default='', blank=True)
  3117. family = models.ForeignKey(UserFamily, to_field='id', default='', on_delete=models.CASCADE,
  3118. verbose_name='关联用户家庭id')
  3119. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3120. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3121. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3122. class Meta:
  3123. db_table = 'family_room'
  3124. verbose_name = '家庭房间'
  3125. verbose_name_plural = verbose_name
  3126. class GatewaySubDevice(models.Model):
  3127. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3128. device = models.ForeignKey(Device_Info, to_field='id', default='', on_delete=models.CASCADE,
  3129. verbose_name='关联设备信息id')
  3130. device_type = models.SmallIntegerField(default=0, verbose_name=u'设备类型')
  3131. nickname = models.CharField(default='', max_length=32, verbose_name=u'设备名称')
  3132. ieee_addr = models.CharField(default='', max_length=64, verbose_name=u'长地址')
  3133. src_addr = models.CharField(default='', max_length=16, verbose_name=u'短地址')
  3134. status = models.SmallIntegerField(default=1, verbose_name='在线状态') # 1:在线, 0:离线
  3135. # 0:正常, 1:被拆动, 智能按钮紧急开关状态: 0:关闭, 1:开启
  3136. is_tampered = models.SmallIntegerField(default=0, verbose_name='拆动状态')
  3137. mac = models.CharField(default='', max_length=32, verbose_name=u'mac地址')
  3138. device_model = models.CharField(default='', max_length=16, verbose_name=u'设备型号')
  3139. manufacturer = models.CharField(default='', max_length=16, verbose_name=u'制造商')
  3140. sensor_serial = models.CharField(default='', max_length=32, verbose_name=u'传感器序列号')
  3141. firmware_version = models.CharField(default='', max_length=32, verbose_name=u'固件版本')
  3142. hardware_version = models.CharField(default='', max_length=32, verbose_name=u'硬件版本')
  3143. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3144. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3145. class Meta:
  3146. db_table = 'gateway_sub_device'
  3147. verbose_name = '网关子设备'
  3148. verbose_name_plural = verbose_name
  3149. class FamilyRoomDevice(models.Model):
  3150. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3151. room_id = models.IntegerField(default=0, blank=True, verbose_name=u'房间id')
  3152. family_id = models.IntegerField(default=0, blank=True, verbose_name=u'家庭id')
  3153. device = models.ForeignKey(Device_Info, to_field='id', default='', on_delete=models.CASCADE,
  3154. verbose_name='关联设备信息id')
  3155. sub_device = models.IntegerField(default=0, blank=True, verbose_name='关联子设备信息id')
  3156. sort = models.IntegerField(default=0, blank=True, verbose_name=u'排序,越小越靠前')
  3157. category = models.SmallIntegerField(default=0, verbose_name='类别{0:网关传感器类;1:摄像头类}')
  3158. category_sort = models.IntegerField(default=0, blank=True, verbose_name='类别排序')
  3159. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3160. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3161. class Meta:
  3162. db_table = 'family_room_device'
  3163. verbose_name = '家庭房间关联设备'
  3164. verbose_name_plural = verbose_name
  3165. class FamilyMemberJoin(models.Model):
  3166. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3167. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  3168. verbose_name='关联用户表id')
  3169. family = models.ForeignKey(UserFamily, to_field='id', default='', on_delete=models.CASCADE,
  3170. verbose_name='关联用户家庭id')
  3171. status = models.SmallIntegerField(default=0, verbose_name='状态{0:未确认,1:拒绝,2:同意}')
  3172. # 0:家庭所有者搜索邀请,1:成员扫码加入
  3173. type = models.SmallIntegerField(default=0, verbose_name='类型')
  3174. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3175. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3176. class Meta:
  3177. db_table = 'family_member_join'
  3178. verbose_name = '家庭成员加入'
  3179. verbose_name_plural = verbose_name
  3180. class SensorRecord(models.Model):
  3181. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3182. gateway_sub_device_id = models.IntegerField(default=0, blank=True, verbose_name=u'网关子设备id')
  3183. alarm = models.CharField(default='', max_length=32, verbose_name=u'消息内容')
  3184. event_type = models.SmallIntegerField(default=0, verbose_name=u'消息类型')
  3185. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3186. class Meta:
  3187. db_table = 'sensor_record'
  3188. verbose_name = '传感器记录'
  3189. verbose_name_plural = verbose_name
  3190. app_label = 'PushModel'
  3191. class SmartScene(models.Model):
  3192. id = models.AutoField(primary_key=True, verbose_name=u'自增标记id')
  3193. user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
  3194. verbose_name='关联用户表id')
  3195. device_id = models.CharField(default='', max_length=32, verbose_name=u'关联设备信息id')
  3196. sub_device_id = models.IntegerField(default=0, verbose_name=u'关联子设备表id')
  3197. scene_name = models.CharField(default='', max_length=100, verbose_name=u'场景名称')
  3198. conditions = models.TextField(default='', verbose_name=u'条件')
  3199. tasks = models.TextField(default='', verbose_name=u'任务')
  3200. is_all_day = models.SmallIntegerField(default=0, verbose_name=u'是否全天') # 0: 不设置时间, 1: 全天, 2: 非全天
  3201. effective_time_id = models.IntegerField(default=0, verbose_name=u'关联场景执行时间id')
  3202. is_enable = models.BooleanField(default=True, verbose_name=u'是否开启')
  3203. device_data = models.TextField(default='', verbose_name=u'设备场景数据')
  3204. tz = models.FloatField(default=0, verbose_name='时区')
  3205. scene_data = models.TextField(default='', verbose_name='场景数据')
  3206. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3207. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3208. class Meta:
  3209. db_table = 'smart_scene'
  3210. verbose_name = '智能场景'
  3211. verbose_name_plural = verbose_name
  3212. class EffectiveTime(models.Model):
  3213. id = models.AutoField(primary_key=True, verbose_name=u'自增标记id')
  3214. start_time = models.SmallIntegerField(default=0, verbose_name=u'开始时间')
  3215. end_time = models.SmallIntegerField(default=0, verbose_name=u'结束时间')
  3216. repeat = models.SmallIntegerField(default=0, verbose_name=u'重复周期')
  3217. class Meta:
  3218. db_table = 'effective_time'
  3219. verbose_name = '场景执行时间'
  3220. verbose_name_plural = verbose_name
  3221. class SceneLog(models.Model):
  3222. id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
  3223. scene_name = models.CharField(default='', max_length=100, verbose_name='场景名称')
  3224. scene_id = models.IntegerField(default=0, verbose_name='关联场景id')
  3225. device_id = models.CharField(default='', max_length=32, verbose_name='关联网关id')
  3226. sub_device_id = models.IntegerField(default=0, verbose_name='关联子设备id')
  3227. tasks = models.TextField(default='', verbose_name=u'任务')
  3228. status = models.SmallIntegerField(default=0, verbose_name='场景状态')
  3229. created_time = models.IntegerField(default=0, verbose_name='场景触发时间')
  3230. class Meta:
  3231. db_table = 'scene_log'
  3232. verbose_name = '场景日志'
  3233. verbose_name_plural = verbose_name
  3234. app_label = 'PushModel'
  3235. class UnicomCombo(models.Model):
  3236. id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
  3237. package_id = models.CharField(default='', max_length=128, verbose_name=u'第三方套餐包id')
  3238. combo_name = models.CharField(default='', max_length=32, verbose_name=u'套餐名称')
  3239. status = models.SmallIntegerField(default=0, verbose_name='状态{0:开启,1:停用}')
  3240. # 套餐类型 0:联通商用,1:联通初始化赠送,2:联通赠送套餐,3:五兴电信,4:出厂测试
  3241. combo_type = models.SmallIntegerField(default=0, verbose_name='套餐类型')
  3242. flow_total = models.IntegerField(default=0, blank=True, verbose_name=u'流量总量值 单位(MB)')
  3243. expiration_days = models.IntegerField(default=0, blank=True, verbose_name=u'有效期天数')
  3244. expiration_type = models.SmallIntegerField(default=0, verbose_name=u'有效期类型,0=天,1=月,2=年')
  3245. pay_type = models.ManyToManyField(to='Pay_Type', verbose_name='付款类型', db_table='unicom_combo_pay_type')
  3246. price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
  3247. virtual_price = models.CharField(blank=True, null=True, max_length=32, verbose_name=u'原价格')
  3248. is_unlimited = models.SmallIntegerField(default=0, verbose_name=u'是否无限流量,,0:有限流量,1:无限流量')
  3249. sort = models.IntegerField(default=0, blank=True, verbose_name=u'排序,越小越靠前')
  3250. remark = models.TextField(blank=True, default='', verbose_name=u'描述信息')
  3251. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3252. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3253. is_show = models.SmallIntegerField(default=1, verbose_name=u'是否显示,0:不显示,1:显示')
  3254. is_del = models.BooleanField(blank=True, default=False, verbose_name=u'是否删除默认false')
  3255. class Meta:
  3256. db_table = 'unicom_combo'
  3257. verbose_name = '联通套餐表'
  3258. verbose_name_plural = verbose_name
  3259. class UnicomComboOrderInfo(models.Model):
  3260. id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
  3261. iccid = models.CharField(default='', max_length=32, verbose_name=u'完整的20位纯数字ICCID')
  3262. renew_list_id = models.CharField(blank=True, default='', max_length=32, verbose_name=u'联通订购成功套餐队列id')
  3263. status = models.SmallIntegerField(default=0, verbose_name='状态{0:未使用,1:已使用,2:已过期}')
  3264. order_id = models.CharField(blank=True, default='', max_length=32, verbose_name=u'关联订单表')
  3265. combo = models.ForeignKey(UnicomCombo, to_field='id', default='', on_delete=models.CASCADE,
  3266. verbose_name=u'联通套餐表')
  3267. year = models.IntegerField(default=0, verbose_name='使用年')
  3268. month = models.IntegerField(default=0, verbose_name='使用月')
  3269. flow_total_usage = models.CharField(blank=True, default='', max_length=32, verbose_name=u'激活时当月已用流量')
  3270. flow_exceed = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'当前套餐已超流量值MB')
  3271. last_combo_flow_exceed = models.DecimalField(default=0, max_digits=10, decimal_places=2,
  3272. verbose_name=u'上一个流量套餐流量已超值(MB)')
  3273. is_flow_exceed = models.IntegerField(default=0, verbose_name=u'当前套餐是否已超流量,0:正常结算,1:已超需计入下一个流量套餐')
  3274. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序')
  3275. next_month_activate = models.BooleanField(blank=True, default=False, verbose_name=u'下月激活')
  3276. activation_time = models.IntegerField(default=0, verbose_name='激活时间')
  3277. expire_time = models.IntegerField(default=0, verbose_name='过期时间')
  3278. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3279. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3280. is_del = models.BooleanField(blank=True, default=False, verbose_name=u'是否删除')
  3281. class Meta:
  3282. db_table = 'unicom_combo_order_info'
  3283. verbose_name = '联通套餐订单信息表'
  3284. verbose_name_plural = verbose_name
  3285. class UnicomDeviceInfo(models.Model):
  3286. id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
  3287. iccid = models.CharField(db_index=True, unique=True, max_length=32, verbose_name=u'完整的20位纯数字ICCID')
  3288. status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:可测试,1:测试完成,2:已使用}')
  3289. serial_no = models.CharField(default='', db_index=True, max_length=32, verbose_name=u'设备序列号')
  3290. user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户id')
  3291. card_type = models.SmallIntegerField(default=0, verbose_name=u'状态{0:联通,1:五兴电信,2:移动,3:鼎芯电信,4:其它,5:鼎芯国际}')
  3292. main_card = models.SmallIntegerField(default=0, verbose_name=u'SIM卡类型{0:拔插卡,1:贴片卡}')
  3293. sim_used_flow = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'sim卡已用总流量(MB)')
  3294. sim_cycle_used_flow = models.DecimalField(default=0, max_digits=10, decimal_places=2,
  3295. verbose_name=u'设备账期已用流量(MB)')
  3296. access_number = models.CharField(blank=True, max_length=32, verbose_name=u'接入号码')
  3297. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3298. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3299. class Meta:
  3300. db_table = 'unicom_device_info'
  3301. verbose_name = '联通设备信息'
  3302. verbose_name_plural = verbose_name
  3303. class UnicomDeviceQueueMonitoringPush(models.Model):
  3304. id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
  3305. iccid = models.CharField(default='', max_length=32, verbose_name=u'完整的20位纯数字ICCID')
  3306. serial_no = models.CharField(default='', max_length=32, verbose_name=u'序列号')
  3307. sign = models.CharField(default='', max_length=128, verbose_name=u'验证签名')
  3308. time = models.CharField(default='', max_length=32, verbose_name=u'推送时间(yyyymmddhhmiss)')
  3309. type = models.CharField(default='', max_length=32, verbose_name=u'推送类型:DEVICE_QUEUE_MONITORING:设队列监控;')
  3310. current_renew_list_id = models.CharField(default='', max_length=32, verbose_name=u'队列ID')
  3311. no_queue_available = models.SmallIntegerField(default=0, verbose_name=u'是否无可用队列;1:是;0:否')
  3312. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3313. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3314. class Meta:
  3315. db_table = 'unicom_device_queue_monitoring_push'
  3316. verbose_name = '联通设备队列监控推送表'
  3317. verbose_name_plural = verbose_name
  3318. class UnicomDeviceStatusChangePush(models.Model):
  3319. id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
  3320. iccid = models.CharField(default='', max_length=32, verbose_name=u'完整的20位纯数字ICCID')
  3321. serial_no = models.CharField(default='', max_length=32, verbose_name=u'序列号')
  3322. sign = models.CharField(default='', max_length=128, verbose_name=u'验证签名')
  3323. time = models.CharField(default='', max_length=32, verbose_name=u'推送时间(yyyymmddhhmiss)')
  3324. # 变更类型: DEVICE_REAL_NAME_STATUS_CHANGE:实名状态变更;DEVICE_STATUS_CHANGE:设备状态变更;
  3325. type = models.CharField(default='', max_length=32, verbose_name=u'变更类型')
  3326. # 之前值:设备状态变更 1: 已激活;2: 可激活;3: 已停用;4: 已失效;5: 可测试;6: 库存;7: 已更换;8: 已清除;
  3327. previous_val = models.CharField(default='', max_length=32, verbose_name=u'之前值:')
  3328. # 当前值:设备状态变更 1:已激活;2:可激活;3:已停用;4:已失效;5:可测试;6:库存;7:已更换;8:已清除;
  3329. current_val = models.CharField(default='', max_length=32, verbose_name=u'当前值:')
  3330. reason = models.SmallIntegerField(default=0, verbose_name=u'变更原因编码:请查看【信息提示码】')
  3331. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3332. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3333. class Meta:
  3334. db_table = 'unicom_device_status_change_push'
  3335. verbose_name = '联通设备状态变更推送表'
  3336. verbose_name_plural = verbose_name
  3337. class UnicomComboExperienceHistory(models.Model):
  3338. id = models.AutoField(primary_key=True)
  3339. # 0: 免费体验, 1: 激活码
  3340. experience_type = models.SmallIntegerField(default=0, verbose_name='体验类型')
  3341. iccid = models.CharField(max_length=32, default='', verbose_name='联通20位ICCID')
  3342. do_time = models.IntegerField(default=0, verbose_name='激活时间')
  3343. class Meta:
  3344. db_table = 'unicom_combo_experience_history'
  3345. verbose_name = '联通套餐体验历史表'
  3346. verbose_name_plural = verbose_name
  3347. class UnicomFlowPush(models.Model):
  3348. id = models.AutoField(primary_key=True)
  3349. user_id = models.CharField(default='', max_length=32, verbose_name=u'用户id')
  3350. # 0: 剩余10%流量预警, 1: 流量到期
  3351. type = models.SmallIntegerField(default=0, verbose_name='流量推送类型')
  3352. combo_order_id = models.CharField(max_length=32, default='', verbose_name='当前订单套餐id')
  3353. serial_no = models.CharField(max_length=32, default='', verbose_name='序列号')
  3354. flow_total_usage = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'当月实际流量用量 单位(MB)')
  3355. flow_total = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'流量总量 单位(MB)')
  3356. status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:待推送,1:已推送}')
  3357. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3358. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3359. class Meta:
  3360. db_table = 'unicom_flow_push'
  3361. verbose_name = '联通流量用量推送'
  3362. verbose_name_plural = verbose_name
  3363. app_label = "PushModel"
  3364. class DeviceAppScenario(models.Model):
  3365. id = models.AutoField(primary_key=True)
  3366. # 0:用作显示banner图使用,1:店铺,2:照看长辈,3:看护儿童,4:逗宠专属
  3367. type = models.SmallIntegerField(default=0, verbose_name='场景类型')
  3368. sort = models.SmallIntegerField(default=0, verbose_name=u'排序,越小越靠前')
  3369. cver_url = models.CharField(max_length=128, default='', verbose_name='封面图地址')
  3370. banner_url = models.CharField(max_length=128, default='', verbose_name='横幅图片地址')
  3371. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3372. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  3373. class Meta:
  3374. db_table = 'device_app_scenario'
  3375. verbose_name = '设备应用场景'
  3376. verbose_name_plural = verbose_name
  3377. class DeviceScenarioLangInfo(models.Model):
  3378. id = models.AutoField(primary_key=True)
  3379. name = models.CharField(max_length=32, default='', verbose_name='场景内容')
  3380. content = models.CharField(max_length=100, default='', verbose_name='场景内容')
  3381. scenario_id = models.IntegerField(default=0, verbose_name=u'应用场景id')
  3382. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
  3383. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3384. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  3385. class Meta:
  3386. db_table = 'device_scenario_lang_info'
  3387. verbose_name = '设备场景语言信息'
  3388. verbose_name_plural = verbose_name
  3389. class DeviceAlgorithmScenario(models.Model):
  3390. id = models.AutoField(primary_key=True)
  3391. algorithm_id = models.IntegerField(default=0, db_index=True, verbose_name='算法id')
  3392. scenario_id = models.IntegerField(default=0, db_index=True, verbose_name='场景id')
  3393. sort = models.IntegerField(default=99, verbose_name=u'排序,越小越靠前')
  3394. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3395. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  3396. class Meta:
  3397. db_table = 'device_algorithm_scenario'
  3398. verbose_name = '设备算法关联应用场景'
  3399. verbose_name_plural = verbose_name
  3400. class DeviceAlgorithmType(models.Model):
  3401. id = models.AutoField(primary_key=True)
  3402. # 0:移动侦测,1:人形检测,2:挥手识别,3:人脸检测,4:异声感知,5:车辆检测,7:宠物检测,6:哭声检测,8:徘徊检测
  3403. # 9:区域闯入,10:区域闯出,11:长时间无人检测,12:往来检测,13:云相册,14:火焰检测,15:婴儿遮面
  3404. type = models.SmallIntegerField(default=0, verbose_name='算法类型')
  3405. memory = models.CharField(max_length=32, default='', verbose_name='所需内存')
  3406. down_count = models.IntegerField(default=0, verbose_name='下载次数')
  3407. # 0:默认,1:HOT,2:Beta
  3408. tag = models.SmallIntegerField(default=0, verbose_name='标签')
  3409. # 0:免费,1:限时免费,2:付费
  3410. status = models.SmallIntegerField(default=0, verbose_name='算法使用状态')
  3411. expire_time = models.IntegerField(verbose_name='限时免费到期时间', default=0)
  3412. sort = models.IntegerField(default=0, verbose_name=u'排序,越小越靠前')
  3413. basic_function = models.TextField(blank=True, default='', verbose_name=u'基础功能(json格式)')
  3414. image_url = models.CharField(max_length=255, default='', verbose_name='图片地址')
  3415. details_img_url = models.CharField(max_length=255, default='', verbose_name='详情图')
  3416. icon_url = models.CharField(max_length=255, default='', verbose_name='图标地址')
  3417. resource = models.JSONField(null=True, verbose_name='算法模型bin文件地址JSON格式')
  3418. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3419. class Meta:
  3420. db_table = 'device_algorithm_type'
  3421. verbose_name = '设备算法类型'
  3422. verbose_name_plural = verbose_name
  3423. class DeviceAlgorithmBanner(models.Model):
  3424. id = models.AutoField(primary_key=True)
  3425. algorithm_type = models.ForeignKey(DeviceAlgorithmType, to_field='id', default='', on_delete=models.CASCADE,
  3426. verbose_name=u'关联算法类型')
  3427. image_url = models.CharField(max_length=255, default='', verbose_name='横幅图')
  3428. sort = models.IntegerField(default=0, verbose_name=u'排序,越小越靠前')
  3429. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3430. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3431. class Meta:
  3432. db_table = 'device_algorithm_banner'
  3433. verbose_name = '设备算法横幅广告'
  3434. verbose_name_plural = verbose_name
  3435. class DeviceAlgorithmExplain(models.Model):
  3436. id = models.AutoField(primary_key=True)
  3437. algorithm_type = models.ForeignKey(DeviceAlgorithmType, to_field='id', default='', on_delete=models.CASCADE,
  3438. verbose_name=u'关联算法类型')
  3439. title = models.CharField(max_length=32, default='', verbose_name='标题')
  3440. subtitle = models.CharField(max_length=100, default='', verbose_name='副标题')
  3441. price = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name='价格')
  3442. introduction = models.TextField(blank=True, default='', verbose_name='功能介绍')
  3443. install_explain = models.TextField(blank=True, default='', verbose_name=u'安装说明')
  3444. concerning = models.CharField(blank=True, max_length=64, default='', verbose_name=u'关于(文本标题)')
  3445. risk_warning = models.TextField(blank=True, default='', verbose_name=u'风险提示')
  3446. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
  3447. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3448. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3449. class Meta:
  3450. db_table = 'device_algorithm_explain'
  3451. verbose_name = '设备算法详情'
  3452. verbose_name_plural = verbose_name
  3453. class DeviceUidAlgorithmType(models.Model):
  3454. id = models.AutoField(primary_key=True)
  3455. status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:关闭,1:开启}')
  3456. memory = models.CharField(max_length=32, default='', verbose_name='设备内存')
  3457. function = models.TextField(blank=True, default='', verbose_name='功能设置')
  3458. device_uid = models.CharField(max_length=32, db_index=True, default='', verbose_name='设备uid')
  3459. algorithm_type = models.ForeignKey(DeviceAlgorithmType, to_field='id', default='', on_delete=models.CASCADE,
  3460. verbose_name=u'关联算法类型')
  3461. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3462. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3463. class Meta:
  3464. db_table = 'device_uid_algorithm_type'
  3465. verbose_name = '设备uid关联算法类型'
  3466. verbose_name_plural = verbose_name
  3467. class DeviceTypeAlgorithmInfo(models.Model):
  3468. id = models.AutoField(primary_key=True)
  3469. device_name = models.CharField(blank=True, max_length=32, default='', verbose_name='设备类型名称')
  3470. device_type = models.SmallIntegerField(default=0, verbose_name='设备类型')
  3471. algorithm_type = models.SmallIntegerField(default=0, verbose_name='算法类型')
  3472. type_icon = models.CharField(blank=True, max_length=255, default='', verbose_name='设备类型icon')
  3473. device_link = models.CharField(blank=True, max_length=255, default='', verbose_name='设备购买链接')
  3474. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3475. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3476. class Meta:
  3477. db_table = 'device_type_algorithm_info'
  3478. verbose_name = '设备类型关联算法'
  3479. verbose_name_plural = verbose_name
  3480. class DeviceAlgorithmPassengerFlow(models.Model):
  3481. id = models.AutoField(primary_key=True)
  3482. uid = models.CharField(max_length=32, db_index=True, default='', verbose_name='设备uid')
  3483. type = models.SmallIntegerField(default=0, verbose_name='客流类型,1:进,2:离开')
  3484. count = models.IntegerField(default=0, verbose_name='当前时段统计数量')
  3485. statistical_time = models.DateTimeField(blank=True, null=True, verbose_name=u'统计日期时间')
  3486. device_time = models.IntegerField(default=0, verbose_name='设备上报时间戳')
  3487. channel = models.IntegerField(default=1, blank=True, verbose_name=u'设备通道')
  3488. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3489. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3490. class Meta:
  3491. db_table = 'device_algorithm_passenger_flow'
  3492. verbose_name = '设备算法客流统计'
  3493. verbose_name_plural = verbose_name
  3494. class VodHlsSummary(models.Model):
  3495. id = models.AutoField(primary_key=True, verbose_name='回放汇总列表主键')
  3496. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  3497. time = models.IntegerField(verbose_name='汇总年月时间戳', default=0, db_index=True)
  3498. upload_duration = models.BigIntegerField(verbose_name='上传秒数', default=0)
  3499. upload_frequency = models.IntegerField(verbose_name='上传次数', default=0)
  3500. play_duration = models.IntegerField(verbose_name='播放秒数', default=0)
  3501. play_frequency = models.IntegerField(verbose_name='播放次数', default=0)
  3502. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3503. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3504. def __str__(self):
  3505. return self.id
  3506. class Meta:
  3507. db_table = 'vod_hls_summary'
  3508. verbose_name = u'云存回放汇总信息表'
  3509. verbose_name_plural = verbose_name
  3510. class DeviceUserSummary(models.Model):
  3511. id = models.AutoField(primary_key=True, verbose_name='用户汇总列表主键')
  3512. time = models.IntegerField(verbose_name='时间戳', default=0, db_index=True)
  3513. query_type = models.SmallIntegerField(verbose_name='查询类型{0:新增用户,1:活跃用户}', default=0)
  3514. count = models.IntegerField(verbose_name='总人数', default=0)
  3515. country = models.TextField(verbose_name='所属国家', default='')
  3516. continent = models.TextField(verbose_name='四大洲信息', default='')
  3517. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3518. def __str__(self):
  3519. return self.id
  3520. class Meta:
  3521. db_table = 'device_user_summary'
  3522. verbose_name = u'用户汇总信息表'
  3523. verbose_name_plural = verbose_name
  3524. class OrdersSummary(models.Model):
  3525. id = models.AutoField(primary_key=True, verbose_name='订单汇总列表主键')
  3526. time = models.IntegerField(verbose_name='时间戳', default=0, db_index=True)
  3527. query_type = models.SmallIntegerField(verbose_name='查询类型{0:付费订单,1:免费订单,2:首次付费订单,3:复购订单}', default=0)
  3528. service_type = models.SmallIntegerField(verbose_name='增值服务类型{0:云存,1:AI,2:4G}', default=0)
  3529. count = models.IntegerField(verbose_name='订单数量', default=0)
  3530. total = models.CharField(verbose_name='销售额', default='', max_length=255)
  3531. country = models.TextField(verbose_name='所属国家', default='')
  3532. device_type = models.TextField(verbose_name='设备类型信息', default='')
  3533. store_meal = models.TextField(verbose_name='套餐信息', default='')
  3534. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3535. def __str__(self):
  3536. return self.id
  3537. class Meta:
  3538. db_table = 'orders_summary'
  3539. verbose_name = u'订单汇总信息表'
  3540. verbose_name_plural = verbose_name
  3541. class DeviceInfoSummary(models.Model):
  3542. id = models.AutoField(primary_key=True, verbose_name='设备汇总列表主键')
  3543. time = models.IntegerField(verbose_name='时间戳', default=0, db_index=True)
  3544. query_type = models.SmallIntegerField(verbose_name='查询类型{0:新增设备,1:活跃设备}', default=0)
  3545. count = models.IntegerField(verbose_name='设备数量', default=0)
  3546. country = models.TextField(verbose_name='所属国家', default='')
  3547. continent = models.TextField(verbose_name='四大洲信息', default='')
  3548. device_type = models.TextField(verbose_name='设备类型信息', default='')
  3549. vod_service = models.TextField(verbose_name='云存服务信息', default='')
  3550. ai_service = models.TextField(verbose_name='ai服务信息', default='')
  3551. unicom_service = models.TextField(verbose_name='联通服务信息', default='')
  3552. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3553. def __str__(self):
  3554. return self.id
  3555. class Meta:
  3556. db_table = 'device_info_summary'
  3557. verbose_name = u'设备汇总信息表'
  3558. verbose_name_plural = verbose_name
  3559. class OperatingCosts(models.Model):
  3560. id = models.AutoField(primary_key=True, verbose_name='主键id')
  3561. order_id = models.CharField(verbose_name='订单号', default='', max_length=24, db_index=True)
  3562. uid = models.CharField(verbose_name='设备UID', default='', max_length=20, db_index=True)
  3563. day_average_price = models.CharField(verbose_name='收入分摊/天', default='', max_length=16) # 订单金额/订单天数
  3564. month_average_price = models.CharField(verbose_name='收入分摊/月', default='', max_length=16) # 收入分摊/天*当月使用天数
  3565. purchase_quantity = models.CharField(verbose_name='购买量/月', default='', max_length=8, blank=True)
  3566. actual_storage = models.CharField(default='', verbose_name='实际存储量', max_length=16)
  3567. actual_api = models.IntegerField(default=0, verbose_name='实际调用api次数')
  3568. actual_flow = models.CharField(default='', verbose_name='实际流量', max_length=16)
  3569. monthly_income = models.CharField(verbose_name='当月结算收入', default='', max_length=16) # 实际收入/套餐总天数*结算天数
  3570. settlement_days = models.SmallIntegerField(verbose_name='当月结算天数', default=0)
  3571. remaining_usage_time = models.IntegerField(default=0, verbose_name='剩余使用时间')
  3572. created_time = models.IntegerField(default=0, verbose_name='当月结算时间')
  3573. end_time = models.IntegerField(default=0, verbose_name='订单结束时间')
  3574. time = models.IntegerField(verbose_name='时间戳', default=0)
  3575. remark = models.CharField(blank=True, default='', max_length=200, verbose_name='备注')
  3576. def __str__(self):
  3577. return self.id
  3578. class Meta:
  3579. db_table = 'operating_costs'
  3580. verbose_name = '运营成本'
  3581. verbose_name_plural = verbose_name
  3582. class UidBucketStatistics(models.Model):
  3583. id = models.AutoField(primary_key=True, verbose_name='设备汇总列表主键')
  3584. uid = models.CharField(verbose_name='设备UID', default='', max_length=20, db_index=True)
  3585. storage_size = models.CharField(verbose_name='存储量', default='', max_length=16) # 单位M
  3586. api_count = models.IntegerField(default=0, verbose_name='实际调用api次数')
  3587. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3588. time = models.IntegerField(verbose_name='时间戳', default=0)
  3589. def __str__(self):
  3590. return self.id
  3591. class Meta:
  3592. db_table = 'uid_bucket_statistics'
  3593. verbose_name = '存储桶信息统计'
  3594. verbose_name_plural = verbose_name
  3595. class KVS(models.Model):
  3596. id = models.AutoField(primary_key=True, verbose_name='主键')
  3597. stream_name = models.CharField(default='', max_length=128, verbose_name='视频流名称') # 视频流名称,为序列号
  3598. stream_arn = models.CharField(default='', max_length=128, verbose_name='视频流ARN')
  3599. data_retention_in_hours = models.PositiveSmallIntegerField(default=0, verbose_name='数据保留时间') # 单位: 小时
  3600. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3601. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3602. class Meta:
  3603. db_table = 'kvs'
  3604. verbose_name = 'kvs表'
  3605. verbose_name_plural = verbose_name
  3606. class DeviceCloudPhotoInfo(models.Model):
  3607. id = models.AutoField(primary_key=True, verbose_name='主键')
  3608. status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:关闭,1:开启}')
  3609. user_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户id')
  3610. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3611. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3612. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3613. class Meta:
  3614. db_table = 'device_cloud_photo'
  3615. verbose_name = '设备云相册信息'
  3616. verbose_name_plural = verbose_name
  3617. class DevicePicturePushInfo(models.Model):
  3618. id = models.AutoField(primary_key=True, verbose_name='主键')
  3619. type = models.SmallIntegerField(default=0, verbose_name=u'状态{0:图片,1:视频}')
  3620. user_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户id')
  3621. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3622. device_nick_name = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
  3623. channel = models.IntegerField(default=1, blank=True, verbose_name=u'设备通道')
  3624. event_time = models.CharField(blank=True, db_index=True, default='', max_length=16, verbose_name=u'设备报警时间')
  3625. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3626. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3627. class Meta:
  3628. db_table = 'device_picture_push_info'
  3629. verbose_name = '设备图片推送信息'
  3630. verbose_name_plural = verbose_name
  3631. class CloudPhotoBGM(models.Model):
  3632. id = models.AutoField(primary_key=True, verbose_name='主键')
  3633. is_show = models.SmallIntegerField(default=1, verbose_name=u'是否显示') # 0: 否, 1: 是
  3634. name = models.CharField(default='', max_length=128, verbose_name=u'音乐名称')
  3635. link = models.CharField(default='', max_length=255, verbose_name=u'音乐链接')
  3636. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3637. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3638. class Meta:
  3639. db_table = 'cloud_photo_bgm'
  3640. verbose_name = '云相册背景音乐'
  3641. verbose_name_plural = verbose_name
  3642. class UserOperationLog(models.Model):
  3643. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3644. user_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户id')
  3645. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3646. type = models.SmallIntegerField(default=0, verbose_name='类型[1:云存储弹窗,2:AI弹窗,3:4G,4:AI红点]')
  3647. status = models.SmallIntegerField(default=0, verbose_name='0:未读/未操作,1:已读/已操作')
  3648. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3649. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3650. class Meta:
  3651. db_table = 'user_operation_log'
  3652. verbose_name = '用户操作日志记录'
  3653. verbose_name_plural = verbose_name
  3654. class UidCloudStorageCount(models.Model):
  3655. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3656. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3657. count = models.IntegerField(default=0, blank=True, verbose_name=u'当日上传次数')
  3658. type = models.SmallIntegerField(default=0, verbose_name='0:云存视频')
  3659. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3660. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3661. class Meta:
  3662. db_table = 'uid_cloud_storage_count'
  3663. verbose_name = '云存储uid日上传次数统计'
  3664. verbose_name_plural = verbose_name
  3665. class DeviceChannelUserSet(models.Model):
  3666. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3667. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3668. channels = models.CharField(default='', blank=True, max_length=128, verbose_name=u'用户通道多个逗号隔开')
  3669. user_id = models.CharField(default='', db_index=True, max_length=32, verbose_name=u'用户id')
  3670. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3671. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3672. class Meta:
  3673. db_table = 'device_channel_user_set'
  3674. verbose_name = '设备通道用户设置'
  3675. verbose_name_plural = verbose_name
  3676. class DeviceSharePermission(models.Model):
  3677. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3678. code = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'权限编码')
  3679. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3680. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3681. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3682. class Meta:
  3683. db_table = 'device_share_permission'
  3684. verbose_name = '设备分享权限'
  3685. verbose_name_plural = verbose_name
  3686. class DevicePermissionLang(models.Model):
  3687. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3688. permission_id = models.IntegerField(default=0, verbose_name=u'关联设备权限ID')
  3689. name = models.CharField(default='', max_length=50, verbose_name=u'权限名称')
  3690. desc = models.CharField(blank=True, max_length=64, default='', verbose_name=u'描述')
  3691. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='例如:cn')
  3692. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3693. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3694. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  3695. class Meta:
  3696. db_table = 'device_permission_lang'
  3697. verbose_name = '设备分享权限语言描述'
  3698. verbose_name_plural = verbose_name
  3699. class DeviceChannelUserPermission(models.Model):
  3700. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3701. permission_id = models.IntegerField(default=0, verbose_name=u'关联设备权限ID')
  3702. channel_user_id = models.IntegerField(default=0, verbose_name=u'通道用户id')
  3703. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3704. class Meta:
  3705. db_table = 'device_channel_user_permission'
  3706. verbose_name = '设备分享权限关联通道用户'
  3707. verbose_name_plural = verbose_name
  3708. class DeviceTypeSharePermission(models.Model):
  3709. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3710. permission_id = models.IntegerField(default=0, verbose_name=u'关联设备权限ID')
  3711. type = models.SmallIntegerField(default=0, verbose_name='设备类型')
  3712. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3713. class Meta:
  3714. db_table = 'device_type_share_permission'
  3715. verbose_name = '设备类型关联分享权限'
  3716. verbose_name_plural = verbose_name
  3717. class DeviceSuperPassword(models.Model):
  3718. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3719. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3720. userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
  3721. lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
  3722. orderID = models.CharField(max_length=30, db_index=True, verbose_name='订单ID', blank=True, default='')
  3723. describe = models.CharField(max_length=128, blank=True, verbose_name='需求描述', default=0)
  3724. purchase_channel = models.CharField(max_length=128, blank=True, verbose_name='购买渠道描述', default='')
  3725. addTime = models.IntegerField(default=0, verbose_name='添加时间')
  3726. status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:未通过,1:通过}')
  3727. buyTime = models.IntegerField(default=0, verbose_name='购买时间')
  3728. hint = models.CharField(max_length=128, blank=True, verbose_name='温馨提示', default='')
  3729. class Meta:
  3730. db_table = 'device_super_password'
  3731. verbose_name = '超级密码请求表'
  3732. verbose_name_plural = verbose_name
  3733. class VodHlsTag(models.Model):
  3734. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3735. uid = models.CharField(blank=True, db_index=True, max_length=32, verbose_name=u'设备UID')
  3736. vod_hls_id = models.IntegerField(default=0, db_index=True, verbose_name='云存hlsId')
  3737. tab_num = models.SmallIntegerField(default=0, verbose_name='所在表编号')
  3738. ai_event_time = models.IntegerField(default=0, db_index=True, verbose_name='ai事件事件')
  3739. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3740. class Meta:
  3741. db_table = 'vod_hls_tag'
  3742. verbose_name = '云存hls标签'
  3743. verbose_name_plural = verbose_name
  3744. class VodHlsTagType(models.Model):
  3745. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3746. tag_id = models.IntegerField(default=0, db_index=True, verbose_name='云存关联AI标签ID')
  3747. type = models.SmallIntegerField(default=0, db_index=True, verbose_name='标签类型')
  3748. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3749. class Meta:
  3750. db_table = 'vod_hls_tag_type'
  3751. verbose_name = '云存hls关联标签类型'
  3752. verbose_name_plural = verbose_name
  3753. class TestSerialRepetition(models.Model):
  3754. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3755. serial_number = models.CharField(blank=True, unique=True, db_index=True, max_length=20, default='',
  3756. verbose_name='序列号')
  3757. phone_model = models.CharField(max_length=64, default='', verbose_name='手机型号')
  3758. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3759. class Meta:
  3760. db_table = 'test_serial_repetition'
  3761. verbose_name = '测试序列号重复问题'
  3762. verbose_name_plural = verbose_name
  3763. class TestDeviceFindSerial(models.Model):
  3764. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3765. serial_number = models.CharField(blank=True, db_index=True, max_length=20, default='',
  3766. verbose_name='序列号')
  3767. firmware_time_code = models.CharField(max_length=128, unique=True, default='', verbose_name='PC固件码+时间')
  3768. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3769. class Meta:
  3770. db_table = 'test_device_find_serial'
  3771. verbose_name = '查找设备序列号'
  3772. verbose_name_plural = verbose_name
  3773. class SocketPowerStatistics(models.Model):
  3774. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3775. device_id = models.CharField(max_length=32, default='', verbose_name='设备id')
  3776. serial_number = models.CharField(db_index=True, max_length=20, default='',
  3777. verbose_name='序列号')
  3778. electricity = models.DecimalField(default=0, max_digits=10, decimal_places=6, verbose_name='设备当日用电KWh')
  3779. # 设备根据策略上报的w值,然后当日存在数据则累加
  3780. watt = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name='每分钟消耗功率(瓦)')
  3781. power = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name='负载功率w')
  3782. accumulated_time = models.IntegerField(default=0, verbose_name='当天累计时长(秒)')
  3783. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3784. updated_time = models.IntegerField(default=0, verbose_name='创建时间')
  3785. class Meta:
  3786. db_table = 's_socket_power_statistics'
  3787. verbose_name = '插座电量统计'
  3788. verbose_name_plural = verbose_name
  3789. class SocketInfo(models.Model):
  3790. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3791. device_id = models.CharField(max_length=32, default='', verbose_name='设备id')
  3792. serial_number = models.CharField(db_index=True, max_length=20,
  3793. verbose_name='序列号')
  3794. online = models.BooleanField(default=False, verbose_name='在线状态False:不在线,True:在线')
  3795. type_switch = models.SmallIntegerField(default=0,
  3796. verbose_name='开关类型 0:总开关,1:倒计时开关')
  3797. status = models.BooleanField(default=False, verbose_name='开关状态 0:关闭,1:开启')
  3798. start = models.BooleanField(default=False, verbose_name='倒计时状态 0:关闭,1:开启')
  3799. count_down_time = models.IntegerField(default=0, verbose_name='倒计时时间戳')
  3800. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3801. updated_time = models.IntegerField(default=0, verbose_name='创建时间')
  3802. class Meta:
  3803. db_table = 's_socket_info'
  3804. verbose_name = '插座信息'
  3805. verbose_name_plural = verbose_name
  3806. class SocketSchedule(models.Model):
  3807. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3808. device_id = models.CharField(max_length=32, default='', verbose_name='设备id')
  3809. serial_number = models.CharField(db_index=True, max_length=20, default='',
  3810. verbose_name='序列号')
  3811. time_type = models.SmallIntegerField(default=0, verbose_name='排查时间类型 1:按时间 2:按时间段划分')
  3812. switch_status = models.BooleanField(default=False, verbose_name='开关状态 0:关闭,1:开启')
  3813. task_status = models.BooleanField(default=False, verbose_name='任务状态状态 0:关闭,1:启动')
  3814. start_time = models.IntegerField(default=0, verbose_name='开始时间')
  3815. end_time = models.IntegerField(default=0, verbose_name='结束时间')
  3816. repeat = models.SmallIntegerField(default=0,
  3817. verbose_name='重复周期用数值表示 设备转二进制例127则二进制1111111')
  3818. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3819. updated_time = models.IntegerField(default=0, verbose_name='创建时间')
  3820. class Meta:
  3821. db_table = 's_socket_schedule'
  3822. verbose_name = '插座排程'
  3823. verbose_name_plural = verbose_name
  3824. class SwitchDimmingSettings(models.Model):
  3825. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3826. device_id = models.CharField(max_length=32, default='', verbose_name='设备id')
  3827. click_turn_on_speed = models.SmallIntegerField(default=0, verbose_name='单击开启速度')
  3828. click_turn_off_speed = models.SmallIntegerField(default=0, verbose_name='单击关闭速度')
  3829. double_click = models.CharField(max_length=8, default=0, verbose_name='双击') # 0: 无, 1: 缓慢开/关, x%: 预设亮度
  3830. press = models.CharField(max_length=8, default=0, verbose_name='长按') # 0: 无, 1: 缓慢开/关, x%: 预设亮度
  3831. double_press_click_turn_on_speed = models.SmallIntegerField(default=0, verbose_name='双击/长按开启速度')
  3832. double_press_click_turn_off_speed = models.SmallIntegerField(default=0, verbose_name='双击/长按关闭速度')
  3833. dimming_correction = models.CharField(max_length=8, default='', verbose_name='调光校正')
  3834. class Meta:
  3835. db_table = 'switch_dimming_settings'
  3836. verbose_name = '智能开关调光设置'
  3837. verbose_name_plural = verbose_name
  3838. class SwitchScheduler(models.Model):
  3839. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3840. device_id = models.CharField(max_length=32, default='', verbose_name='设备id')
  3841. time_type_radio = models.SmallIntegerField(default=1, verbose_name='切换时间点/时间段') # 1: 按时间点, 2: 按时间段
  3842. time_point = models.IntegerField(default=0, verbose_name='时间点时间戳')
  3843. start_time = models.IntegerField(default=0, verbose_name='时间段开始时间')
  3844. end_time = models.IntegerField(default=0, verbose_name='时间段结束时间')
  3845. actions = models.IntegerField(default=0, verbose_name='排程操作') # 0:关闭 1:开启 x:预设亮度值 x:间隔时间(秒)
  3846. actions_type = models.SmallIntegerField(default=0, verbose_name='操作类型') # 1:开关开启或关闭;2:开启并预设亮度;3:开启/关闭切换
  3847. slow_speed = models.SmallIntegerField(default=0, verbose_name='缓慢开/关速度') # 秒
  3848. repeat = models.CharField(default=0, max_length=13, verbose_name=u'重复周期') # 0-6:星期日到星期六
  3849. is_execute = models.SmallIntegerField(default=1, verbose_name='是否执行') # 0:执行;1:不执行
  3850. class Meta:
  3851. db_table = 'switch_scheduler'
  3852. verbose_name = '排程计划'
  3853. verbose_name_plural = verbose_name
  3854. class ExchangeCode(models.Model):
  3855. id = models.AutoField(primary_key=True)
  3856. code = models.CharField(max_length=32, unique=True, verbose_name='兑换码')
  3857. status = models.BooleanField(default=False, verbose_name='状态(0-未使用,1-已使用)')
  3858. is_down = models.BooleanField(default=0, verbose_name='是否已下载 0-未下载,1-已下载')
  3859. package_type = models.SmallIntegerField(default=0, verbose_name='套餐包类型 0-联通,1-五兴,2-其它')
  3860. package_id = models.BigIntegerField(default=0, verbose_name='套餐包id')
  3861. expire_time = models.IntegerField(default=0, verbose_name='过期时间')
  3862. # 备用字段
  3863. spare_1 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段1')
  3864. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3865. updated_time = models.IntegerField(default=0, verbose_name='创建时间')
  3866. class Meta:
  3867. db_table = 'exchange_code'
  3868. verbose_name = '套餐包兑换码'
  3869. verbose_name_plural = verbose_name
  3870. class ICloudStoreMeal(models.Model):
  3871. id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
  3872. currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币符号')
  3873. symbol = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'符号')
  3874. price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
  3875. expire = models.IntegerField(default=0, blank=True, verbose_name=u'有效期') # 单位月
  3876. add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
  3877. pay_type = models.ManyToManyField(to='Pay_Type', verbose_name='付款类型', db_table='icloud_store_meal_pay')
  3878. update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
  3879. is_show = models.SmallIntegerField(default=0, verbose_name=u'是否隐藏 [0=隐藏,1展示]')
  3880. is_delete = models.SmallIntegerField(default=0, verbose_name=u'是否删除 [0=否,1=是]')
  3881. lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='icloud_store_meal_lang')
  3882. size = models.IntegerField(null=True, default=0, verbose_name='云盘容量大小') # 单位GB
  3883. bucket_id = models.SmallIntegerField(default=0, verbose_name='关联存储桶id')
  3884. sort = models.IntegerField(default=99, blank=True, verbose_name=u'排序,越小越靠前')
  3885. def __str__(self):
  3886. return self.id
  3887. class Meta:
  3888. db_table = 'icloud_store_meal'
  3889. verbose_name = u'云盘套餐'
  3890. verbose_name_plural = verbose_name
  3891. ordering = ('id',)
  3892. class IcloudUseDetails(models.Model):
  3893. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3894. use_size = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name='已使用容量大小') # 单位MB
  3895. add_time = models.IntegerField(verbose_name='添加时间', default=0)
  3896. upd_time = models.BigIntegerField(verbose_name='更新时间', default=0)
  3897. detect_status = models.SmallIntegerField(default=0, verbose_name='开关状态') # 0:关闭, 1:开启
  3898. user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户id')
  3899. bucket_id = models.SmallIntegerField(default=0, verbose_name='关联存储桶id')
  3900. class Meta:
  3901. db_table = 'icloud_use_details'
  3902. verbose_name = '云盘使用表'
  3903. verbose_name_plural = verbose_name
  3904. ordering = ('id',)
  3905. class IcloudService(models.Model):
  3906. id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
  3907. size = models.IntegerField(default=0, verbose_name='容量大小') # 单位GB
  3908. end_time = models.IntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
  3909. add_time = models.IntegerField(verbose_name='添加时间', default=0)
  3910. upd_time = models.IntegerField(verbose_name='更新时间', default=0)
  3911. use_status = models.IntegerField(verbose_name='使用状态', default=0) # 0:使用中, 1:已过期
  3912. use_details_id = models.IntegerField(default=0, verbose_name='关联云盘使用表id')
  3913. type = models.SmallIntegerField(default=0, verbose_name='云盘购买类型') # 0:注册永久送,1:购买云存附送,2:单独购买套餐
  3914. order_id = models.CharField(default='', max_length=20, verbose_name='关联订单id')
  3915. class Meta:
  3916. db_table = 'icloud_service'
  3917. verbose_name = '云盘服务表'
  3918. verbose_name_plural = verbose_name
  3919. ordering = ('id',)
  3920. class IcloudStorageRecord(models.Model):
  3921. id = models.AutoField(primary_key=True, verbose_name='回放列表主键')
  3922. user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户id')
  3923. uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
  3924. nickname = models.CharField(max_length=20, verbose_name='设备昵称', db_index=True)
  3925. channel = models.SmallIntegerField(default=0, verbose_name='通道')
  3926. time_stamp = models.BigIntegerField(verbose_name='视频/图片名字时间戳', default=0, db_index=True) # 单位毫秒
  3927. sec = models.IntegerField(verbose_name='秒数', default=0)
  3928. bucket_id = models.IntegerField(verbose_name='关联存储桶id', default=0)
  3929. fg = models.CharField(max_length=20, verbose_name='ts个数,时间描述片段数',
  3930. default='') # 阿里为时间片段数,亚马逊为一个32bit整型,前28bit代表ts文件的时长
  3931. size = models.DecimalField(default=0, max_digits=4, decimal_places=2, verbose_name='视频/图片大小') # 单位MB
  3932. file_type = models.SmallIntegerField(default=0, verbose_name='文件类型') # 0:图片, 1:ts视频, 2:MP4视频
  3933. def __str__(self):
  3934. return self.id
  3935. class Meta:
  3936. db_table = 'icloud_storage_record'
  3937. verbose_name = u'云盘信息记录表'
  3938. verbose_name_plural = verbose_name
  3939. ordering = ('-id',)
  3940. class IotCardUsageHistory(models.Model):
  3941. id = models.AutoField(primary_key=True, verbose_name='列表主键')
  3942. iccid = models.CharField(default='', max_length=32, verbose_name=u'ICCID号')
  3943. card_type = models.SmallIntegerField(default=0, verbose_name='卡类型,1:联通,2:电信,3:移动,4:其它,5:国际')
  3944. cycle = models.IntegerField(default=0, verbose_name='帐期 如 202307')
  3945. flow_total_usage = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'月流量用量(MB)')
  3946. voice_total_usage = models.IntegerField(default=0, verbose_name='帐期已用语音总量(Min)')
  3947. sms_total_usage = models.IntegerField(default=0, verbose_name='帐期已用短信总量(条)')
  3948. cycle_start_time = models.DateTimeField(null=True, blank=True, verbose_name='帐期开始时间')
  3949. cycle_end_time = models.DateTimeField(null=True, blank=True, verbose_name='帐期结束时间')
  3950. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3951. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  3952. class Meta:
  3953. db_table = 'iot_card_usage_history'
  3954. verbose_name = '物联网卡用量历史'
  3955. verbose_name_plural = verbose_name
  3956. class CityInformation(models.Model):
  3957. id = models.AutoField(primary_key=True, verbose_name='自增id')
  3958. city_id = models.IntegerField(default=0, verbose_name='城市id')
  3959. district = models.CharField(default='', max_length=32, verbose_name='区级名称')
  3960. city = models.CharField(default='', max_length=32, verbose_name='市级名称')
  3961. region = models.CharField(default='', max_length=30, verbose_name='省级名称')
  3962. class Meta:
  3963. db_table = 'city_information'
  3964. verbose_name = '城市信息'
  3965. verbose_name_plural = verbose_name
  3966. class IotCardOrderUsageHistory(models.Model):
  3967. id = models.AutoField(primary_key=True, verbose_name='列表主键')
  3968. iccid = models.CharField(default='', db_index=True, max_length=32, verbose_name=u'ICCID号')
  3969. order_id = models.CharField(max_length=30, db_index=True, verbose_name='订单ID', blank=True, default='')
  3970. serial_no = models.CharField(max_length=32, default='', verbose_name='设备序列号')
  3971. card_type = models.SmallIntegerField(default=0, verbose_name='卡类型,1:联通,2:电信,3:移动,4:其它,5:国际')
  3972. cycle = models.IntegerField(default=0, verbose_name='帐期 如 202307')
  3973. cycle_date = models.IntegerField(default=0, verbose_name='帐期 如 1-31')
  3974. total_traffic = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'订单流量用量(MB)')
  3975. cycle_start_time = models.DateTimeField(null=True, blank=True, verbose_name='帐期开始时间')
  3976. cycle_end_time = models.DateTimeField(null=True, blank=True, verbose_name='帐期结束时间')
  3977. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  3978. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  3979. remark = models.CharField(blank=True, default='', max_length=200, verbose_name=u'备注')
  3980. class Meta:
  3981. db_table = 'iot_card_order_usage_history'
  3982. verbose_name = '物联网卡订单用量历史'
  3983. verbose_name_plural = verbose_name
  3984. class IPAddr(models.Model):
  3985. id = models.AutoField(primary_key=True, verbose_name='主键')
  3986. ip = models.CharField(default='', max_length=32, verbose_name='ip')
  3987. district = models.CharField(default='', max_length=32, verbose_name='区')
  3988. city = models.CharField(default='', max_length=32, verbose_name='市')
  3989. region = models.CharField(default='', max_length=32, verbose_name='省/州')
  3990. country_code = models.CharField(default='', max_length=8, verbose_name='国家编码')
  3991. lat = models.FloatField(default=0, verbose_name='经度')
  3992. lon = models.FloatField(default=0, verbose_name='纬度')
  3993. is_geoip2 = models.BooleanField(default=False, verbose_name='是否为geoip2解析')
  3994. class Meta:
  3995. db_table = 'ip_addr'
  3996. verbose_name = 'ip地址信息'
  3997. class OpenWeatherMapCallCount(models.Model):
  3998. id = models.AutoField(primary_key=True, verbose_name='主键')
  3999. month = models.CharField(default='', max_length=20, verbose_name='月份')
  4000. count = models.IntegerField(default=1, verbose_name='api调用次数')
  4001. class Meta:
  4002. db_table = 'open_weather_map_call_count'
  4003. verbose_name = 'OpenWeatherMap调用次数'
  4004. class DeviceLiveRestrict(models.Model):
  4005. id = models.AutoField(primary_key=True, verbose_name='主键')
  4006. device_type = models.IntegerField(default=0, verbose_name='设备类型id')
  4007. device_name = models.CharField(blank=True, max_length=32, verbose_name='设备名称')
  4008. device_info = models.JSONField(null=True, verbose_name='限制设备信息')
  4009. is_del = models.BooleanField(blank=True, default=False, verbose_name=u'是否删除默认false')
  4010. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4011. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  4012. class Meta:
  4013. db_table = 'device_live_restrict'
  4014. verbose_name = '设备直播限制表'
  4015. verbose_name_plural = verbose_name
  4016. class SerialNumberPackage(models.Model):
  4017. id = models.AutoField(primary_key=True, verbose_name='主键')
  4018. serial_number = models.CharField(default='', db_index=True, max_length=32, verbose_name=u'设备序列号')
  4019. status = models.SmallIntegerField(default=1, verbose_name='状态,1:可激活,2:已激活')
  4020. package_id = models.IntegerField(default=0, verbose_name='关联4G套餐表id')
  4021. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4022. created_by = models.CharField(blank=True, max_length=32, verbose_name='创建人')
  4023. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  4024. updated_by = models.CharField(blank=True, max_length=32, verbose_name='修改人')
  4025. class Meta:
  4026. db_table = 'd_serial_number_package'
  4027. verbose_name = '设备序列号关联套餐id表'
  4028. verbose_name_plural = verbose_name
  4029. class CustomizedPush(models.Model):
  4030. id = models.AutoField(primary_key=True, verbose_name='主键')
  4031. title = models.CharField(default='', max_length=64, verbose_name='标题')
  4032. msg = models.TextField(default='', verbose_name='内容')
  4033. link = models.TextField(default='', verbose_name='链接')
  4034. icon_link = models.TextField(default='', verbose_name='预览图链接')
  4035. # 多选国家,设备型号,用逗号分开
  4036. country = models.CharField(default='', max_length=320, verbose_name='国家')
  4037. device_type = models.TextField(default='', verbose_name='设备类型')
  4038. register_period = models.CharField(default='', max_length=32, verbose_name='注册年限')
  4039. time_zone = models.CharField(default='', max_length=8, verbose_name='时区')
  4040. push_time = models.CharField(default='', max_length=32, verbose_name='推送时间')
  4041. push_timestamp = models.IntegerField(default=0, verbose_name='推送时间戳')
  4042. push_app = models.CharField(default='', max_length=64, verbose_name='推送APP')
  4043. # False:待推送, True:已推送
  4044. push_satus = models.BooleanField(default=False, verbose_name='推送状态')
  4045. class Meta:
  4046. db_table = 'customized_push'
  4047. verbose_name = '定制化推送'
  4048. class AbnormalOrder(models.Model):
  4049. id = models.AutoField(primary_key=True, verbose_name='主键')
  4050. order_id = models.CharField(max_length=30, db_index=True, verbose_name='订单ID', blank=True, default='')
  4051. trade_no = models.CharField(blank=True, max_length=32, default='', verbose_name='第三方订单号')
  4052. agreement_id = models.CharField(default='', blank=True, max_length=64, verbose_name=u'paypal协议id')
  4053. # 0: PayPal自动续费, 1: PayPal普通支付, 2: 支付宝, 3: 微信
  4054. pay_type = models.SmallIntegerField(default=0, verbose_name='支付方式')
  4055. price = models.CharField(default='', max_length=16, verbose_name='价格')
  4056. username = models.CharField(default='', max_length=30, verbose_name='用户名')
  4057. pay_time = models.IntegerField(verbose_name='支付成功时间', default=0)
  4058. upd_time = models.IntegerField(verbose_name='更新时间', default=0)
  4059. status = models.SmallIntegerField(default=0, verbose_name='处理结果') # 0:未处理,1:已处理
  4060. meal_name = models.CharField(default='', blank=True, max_length=32, verbose_name='套餐名')
  4061. class Meta:
  4062. db_table = 'abnormal_order'
  4063. verbose_name = '异常订单表'
  4064. class OrderPayLog(models.Model):
  4065. id = models.AutoField(primary_key=True, verbose_name='主键'),
  4066. order_id = models.CharField(max_length=30, db_index=True, verbose_name='订单ID', blank=True, default='')
  4067. order_no = models.CharField(max_length=30, verbose_name='订单号', blank=True, default='')
  4068. trans_serial_no = models.CharField(max_length=30, verbose_name='流水号', blank=True, default='')
  4069. business_name = models.CharField(max_length=30, verbose_name='业务名称', blank=True, default='')
  4070. sender = models.CharField(max_length=30, verbose_name='发送方/调用方', blank=True, default='')
  4071. api_url = models.CharField(max_length=64, verbose_name='接口地址', blank=True, default='')
  4072. request_content = models.JSONField(null=True, verbose_name='请求内容')
  4073. response_content = models.JSONField(null=True, verbose_name='响应内容')
  4074. # SUCCESS, FAILED, EXCEPTION, ERROR
  4075. response_times = models.BigIntegerField(verbose_name='接收调用耗时,响应时长,单位ms', default=0)
  4076. access_result = models.CharField(max_length=30, verbose_name='接口调用状态', blank=True, default='')
  4077. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4078. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  4079. class Meta:
  4080. db_table = 'order_pay_log'
  4081. verbose_name = '订单支付日志'
  4082. class DailyReconciliation(models.Model):
  4083. id = models.AutoField(primary_key=True, verbose_name='主键')
  4084. order_ids = models.CharField(blank=True, max_length=200, default='', verbose_name='异常订单号列表')
  4085. paypal_total = models.CharField(default='', max_length=16, verbose_name='paypal每日收入')
  4086. paypal_num = models.SmallIntegerField(default=0, verbose_name='paypal每日交易订单数量')
  4087. ansjer_total = models.CharField(default='', max_length=16, verbose_name='后台每日收入')
  4088. ansjer_num = models.SmallIntegerField(default=0, verbose_name='后台每日交易订单数量')
  4089. time = models.IntegerField(verbose_name='日期', default=0)
  4090. creat_time = models.IntegerField(verbose_name='创建时间', default=0)
  4091. upd_time = models.IntegerField(verbose_name='更新时间', default=0)
  4092. class Meta:
  4093. db_table = 'daily_reconciliation'
  4094. verbose_name = 'paypal每日对账'
  4095. class AppAdvertiseCampaign(models.Model):
  4096. id = models.AutoField(primary_key=True, verbose_name='主键')
  4097. image_url = models.CharField(default='', max_length=256, verbose_name='开屏广告图片url')
  4098. pad_image_url = models.CharField(default='', max_length=256, verbose_name='开屏广告pad端图片url')
  4099. banner_campaign = models.JSONField(default=list, verbose_name='轮播广告')
  4100. campaign_url = models.CharField(default='', max_length=256, verbose_name='活动链接')
  4101. campaign_name = models.CharField(default='', max_length=32, verbose_name='广告名称')
  4102. campaign_type = models.JSONField(default=list, verbose_name='广告类型') # 1:开屏广告 # 2:轮播广告
  4103. device_type = models.JSONField(default=list, verbose_name='设备类型')
  4104. ex_device_type = models.JSONField(default=list, verbose_name='排除设备类型')
  4105. status = models.SmallIntegerField(default=0, verbose_name='广告状态') # 0:关闭 1:开启 2:删除
  4106. country = models.ManyToManyField(to="CountryModel", verbose_name='广告地区')
  4107. unknown_country = models.SmallIntegerField(default=0, verbose_name='未知地区') # 0表示不包括 1表示包括
  4108. app_bundle_type = models.SmallIntegerField(default=0, verbose_name='上架APP') # 0表示周视 1表示Zosismart
  4109. campaign_start_date = models.IntegerField(default=0, verbose_name='广告开始日期')
  4110. campaign_end_date = models.IntegerField(default=0, verbose_name='广告结束日期')
  4111. campaign_show_stime = models.IntegerField(default=0, verbose_name='当天广告起始时间')
  4112. campaign_show_etime = models.IntegerField(default=0, verbose_name='当天广告结束时间')
  4113. create_time = models.IntegerField(default=0, verbose_name='广告创建时间')
  4114. update_time = models.IntegerField(default=0, verbose_name='广告更新时间')
  4115. class Meta:
  4116. db_table = 'app_advertise_campaign'
  4117. verbose_name = 'App广告活动表'
  4118. class OpenScreenCampaign(models.Model):
  4119. id = models.AutoField(primary_key=True, verbose_name='主键')
  4120. campaign_id = models.ForeignKey(AppAdvertiseCampaign, blank=True, to_field='id', null=True,
  4121. on_delete=models.SET_NULL, db_constraint=False)
  4122. user_id = models.CharField(default='', max_length=32, verbose_name='userID')
  4123. status = models.SmallIntegerField(default=0, verbose_name='广告状态')
  4124. # 0未展示 1未跳过 2已跳过 3点击广告
  4125. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  4126. create_time = models.IntegerField(default=0, verbose_name='创建时间')
  4127. class Meta:
  4128. db_table = 'open_screen_campaign'
  4129. verbose_name = '开屏广告表'
  4130. class AlexaOauth(models.Model):
  4131. id = models.AutoField(primary_key=True, verbose_name='主键')
  4132. user_id = models.CharField(default='', max_length=32, verbose_name='用户id')
  4133. # 0: 未连接,1: 已连接
  4134. link_status = models.PositiveSmallIntegerField(default=0, verbose_name='连接状态')
  4135. alexa_api_endpoint = models.CharField(default='', max_length=32, verbose_name='alexa_api节点')
  4136. amazon_access_token = models.TextField(default='', verbose_name='亚马逊访问令牌')
  4137. amazon_refresh_token = models.TextField(default='', verbose_name='亚马逊刷新令牌')
  4138. create_time = models.IntegerField(default=0, verbose_name='创建时间')
  4139. update_time = models.IntegerField(default=0, verbose_name='更新时间')
  4140. class Meta:
  4141. db_table = 'alexa_oauth'
  4142. verbose_name = 'Alexa认证信息表'
  4143. class AccessNumberTaskQueue(models.Model):
  4144. id = models.AutoField(primary_key=True)
  4145. iccid = models.CharField(db_index=True, max_length=32, verbose_name=u'完整的20位纯数字ICCID')
  4146. access_number = models.CharField(max_length=32, verbose_name=u'接入号码')
  4147. type = models.SmallIntegerField(default=1, verbose_name='操作类型,1:设备状态 2:网络状态')
  4148. action = models.SmallIntegerField(default=1, verbose_name='操作类型,1:断网 2:恢复网络')
  4149. status = models.SmallIntegerField(default=0, verbose_name='任务状态,0:未执行,1:成功,2:失败')
  4150. previous_status = models.SmallIntegerField(default=0, verbose_name='修改前状态,1:断网 2:未断网')
  4151. new_status = models.SmallIntegerField(default=0, verbose_name='修改后状态,1:断网 2:未断网')
  4152. count = models.IntegerField(default=0, verbose_name='执行次数')
  4153. result = models.JSONField(null=True, verbose_name='调用结果')
  4154. reason = models.CharField(max_length=256, verbose_name=u'变更原因')
  4155. completion_time = models.IntegerField(default=0, verbose_name='完成时间')
  4156. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4157. updated_time = models.IntegerField(default=0, verbose_name='修改时间')
  4158. class Meta:
  4159. db_table = 'access_number_task_queue'
  4160. verbose_name = '接入号码任务队列'
  4161. verbose_name_plural = verbose_name
  4162. class TimeZoneInfo(models.Model):
  4163. id = models.AutoField(primary_key=True, verbose_name='主键')
  4164. tz = models.FloatField(default=0, verbose_name='时区')
  4165. zone_info = models.CharField(default='', max_length=32, verbose_name='地区信息')
  4166. class Meta:
  4167. db_table = 'time_zone_info'
  4168. verbose_name = '时区信息表'
  4169. class CNRegion(models.Model):
  4170. id = models.AutoField(primary_key=True, verbose_name='主键')
  4171. name = models.CharField(max_length=40, null=True, blank=True, verbose_name='区域名称')
  4172. pid = models.IntegerField(null=True, blank=True, verbose_name='区域上级标识')
  4173. sname = models.CharField(max_length=40, null=True, blank=True, verbose_name='地名简称')
  4174. level = models.IntegerField(null=True, blank=True, verbose_name='区域等级')
  4175. citycode = models.CharField(max_length=20, null=True, blank=True, verbose_name='区域编码')
  4176. yzcode = models.CharField(max_length=20, null=True, blank=True, verbose_name='邮政编码')
  4177. mername = models.CharField(max_length=100, null=True, blank=True, verbose_name='组合名称')
  4178. Lng = models.FloatField(null=True, blank=True, verbose_name='经度')
  4179. Lat = models.FloatField(null=True, blank=True, verbose_name='维度')
  4180. pinyin = models.CharField(max_length=100, null=True, blank=True, verbose_name='拼音')
  4181. class Meta:
  4182. db_table = 'tb_cn_region'
  4183. verbose_name = '国内省市区区域表'
  4184. class UserEmailSubscriptions(models.Model):
  4185. id = models.AutoField(primary_key=True, verbose_name='主键')
  4186. user_id = models.CharField(default='', max_length=32, verbose_name='用户id')
  4187. email = models.CharField(default='', max_length=32, verbose_name='邮箱')
  4188. phone = models.CharField(default='', max_length=32, verbose_name='手机号')
  4189. status = models.SmallIntegerField(default=0, verbose_name='订阅状态,0未订阅,1订阅')
  4190. push_sub_status = models.SmallIntegerField(default=0, verbose_name='定制化推送订阅状态,0未订阅,1订阅')
  4191. list_id = models.CharField(default='', max_length=32, verbose_name='订阅列表id')
  4192. sub_result = models.JSONField(null=True, verbose_name='订阅结果')
  4193. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4194. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  4195. class Meta:
  4196. db_table = 'user_email_subscriptions'
  4197. verbose_name = '用户邮件订阅记录表'
  4198. class UserAudioVideoPush(models.Model):
  4199. id = models.AutoField(primary_key=True, verbose_name='主键')
  4200. uid = models.CharField(default='', max_length=32, verbose_name='设备UID')
  4201. buttonUser1 = models.CharField(default='', max_length=32, verbose_name='用户按钮1')
  4202. buttonUser2 = models.CharField(default='', max_length=32, verbose_name='用户按钮2')
  4203. created_time = models.IntegerField(default=0, verbose_name='创建时间')
  4204. updated_time = models.IntegerField(default=0, verbose_name='更新时间')
  4205. class Meta:
  4206. db_table = 'user_audio_video_push'
  4207. verbose_name = '用户音视频推送表'