From 50acb455ab46cf5725a3778b54c71a8048fea058 Mon Sep 17 00:00:00 2001 From: he-kishor Date: Fri, 19 Jul 2024 00:38:18 +0530 Subject: [PATCH] update all the code on the gihub django DWT --- .gitignore | 2 + Main/__pycache__/__init__.cpython-312.pyc | Bin 162 -> 181 bytes Main/__pycache__/settings.cpython-312.pyc | Bin 2530 -> 4077 bytes Main/__pycache__/urls.cpython-312.pyc | Bin 0 -> 1122 bytes Main/__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 662 bytes Main/settings.py | 45 +++++++++++++- Main/urls.py | 3 +- api/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 180 bytes api/__pycache__/admin.cpython-312.pyc | Bin 0 -> 990 bytes api/__pycache__/apps.cpython-312.pyc | Bin 0 -> 480 bytes api/__pycache__/models.cpython-312.pyc | Bin 0 -> 2357 bytes api/__pycache__/serlizers.cpython-312.pyc | Bin 0 -> 3227 bytes api/__pycache__/urls.cpython-312.pyc | Bin 0 -> 709 bytes api/__pycache__/views.cpython-312.pyc | Bin 0 -> 2202 bytes api/admin.py | 11 +++- api/migrations/0001_initial.py | 56 ++++++++++++++++++ .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 4048 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 191 bytes api/models.py | 33 ++++++++++- api/serlizers.py | 48 +++++++++++++++ api/urls.py | 10 ++++ api/views.py | 38 +++++++++++- requirements.txt | Bin 338 -> 492 bytes 23 files changed, 241 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 Main/__pycache__/urls.cpython-312.pyc create mode 100644 Main/__pycache__/wsgi.cpython-312.pyc create mode 100644 api/__pycache__/__init__.cpython-312.pyc create mode 100644 api/__pycache__/admin.cpython-312.pyc create mode 100644 api/__pycache__/apps.cpython-312.pyc create mode 100644 api/__pycache__/models.cpython-312.pyc create mode 100644 api/__pycache__/serlizers.cpython-312.pyc create mode 100644 api/__pycache__/urls.cpython-312.pyc create mode 100644 api/__pycache__/views.cpython-312.pyc create mode 100644 api/migrations/0001_initial.py create mode 100644 api/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 api/migrations/__pycache__/__init__.cpython-312.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..f25ba5dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv +db.sqlite3 diff --git a/Main/__pycache__/__init__.cpython-312.pyc b/Main/__pycache__/__init__.cpython-312.pyc index bdfa2882e1374c17ce7a948d89b950b8465fbf8d..e866718ee4e2f286bf76c8f2fd4c41b26990e1f7 100644 GIT binary patch delta 83 zcmZ3)xRsIXG%qg~0}zOnPvkPO4RN-L2`x@7DvrrW%}vaU2}(^&E>X}{aLG!{OV3vb dD9X=DO)iOXEG^0K3J=ju0Sm`KsQ8H)Rsa)w8*~5w delta 64 zcmdnWxQLPKG%qg~0}w2ZoXBOO<>+h`6Iz^FR2-9+Woc;`6O@{mT%zrgm6(^F@19wb SQJNG`l%JKFToN;}+6n+%;1uux diff --git a/Main/__pycache__/settings.cpython-312.pyc b/Main/__pycache__/settings.cpython-312.pyc index 9bf9fcd27cfdd58103f728a1538c0d57bc6bc402..19bd4a5cb2d805bb5ef4efbf25bfcc6cc0249c1d 100644 GIT binary patch delta 1744 zcma)6O-vg{6rM5QKVkz0jBN=2q&OsQAU{pgAG)!}cww>8?z$9;wAy-xVz4pVU6jTb zCpW5I(prj=sMkuVl0zhJRc}4^!hr+KDQZuVT4|N2m!3Ma1_h!<>K>lI_vU*uZ@%}& zzjyvMF#cO0;0Nsc_4$L_5*yK*&FyKvmfG*@W=R*w+nIn={H5-Pk(U#2$y5HdAS!0 z%YApw$8YUM;63PXrJi-YS}hkh>yKRzvb0IxD$<}qOiNoe^fI|!F*d5>r+v*VmbXe| z{kD~`DjQ@|`?91LHcCa)qOFCBVXhG!6T^&qcc+>Puy^c4EKx3ETq3u1gCvp_WA~fp z?;&j4?Q^GKjrONdTF6VPCgjx&%Bo^gP{mwUOG<*GASDi~H{Mx@zHP0MO{-YYtzu;} zF}tV=ry_AkeO9qdFezC&?G}Nu4zX`EUi1XC5Z4yIc@rXlxt6OqjLe{gGU5T|sxx%KyOgK4tc17B>ZWU>( zK~`DLnnu3fddVMp+)djX<#2`hbTUnjB90(VmDD$@ibsnBiX^6Z9~)`MgMvO^I3k1@ zVfqB4F_El8{r{bLyk7OP=bGTP#?S5+JYn{Tf^1$@EiJSDF6QJp>czT6_~aYxPYzJO zBF-;JNMjF#hLbs2(F94#Epn@|Az-tp&^AYL=PL8L6q0@duURViM@`;b;b)mEYox4i zuE<0$Sc4OTsdatxtIFVlQCW|Xg0;e59^3yScH%3IAFck>JJOnG`*01-QCI!YI};3q zTz7-7`h7vyUB4Z!Cw$++@%qoc!P*`O*=_)bY~UJk*-g!y_qQLw0oxS|x(-0kqv(^# z{pdxziMcO84? delta 225 zcmaDW|43NlG%qg~0}w2ZoR-GL%fRp$#DM`eDC6@RhKU+)SSqD7r8mD|Y-D6)n_SF1 zjY*Szb2v*fKv8~HYH~@;#5nm7uR9;R5K{x+ zCm{|#rUtGLB9q1Wx;51p1SJ}HAMgk^a6aJXZ{T>q$=ks8fro)l9H@kgLCo|bgHVwQ G&jNDd14C6b1?izKW+ODt)hhQ~tJdcS5K$lTj`2?CN1<55l_k4XxKgo0NvPC-V=7zNxm&D{ur z{hTHlynHbp)r6oEJuP`Cok5(F6n3?bJ9Vnm#0 z%ypcQ1k4V{FddPmTtKjcQfJwI=x~z70dr)qBg!+!eD)qNGf#t(Z&|hkePo06 zFa$6KG0q6(E&xMHFu;dC%(B{9(JbR1*YQ$;6fmJsqzbXoLchOQ>xu|Qiy(yN4Ql?F*3#_32jp{ysR z$?I+UvsE?*2rA-wWGq^+z_4zmTeYjY4qG<7Az8;RmQDF*wg(9rIii70rM`5OxP8kq zf68}hsf7VU9H*96=(6KQr;a|-VHP__T``v_N9{7sd2LM<9p4uZ$M=ibnyZk=X?#G% zcTNj}nIgehv*(R*b3RyCljA6uz@VQ#m9cL^GcdO9ZuHV5tzIA|*;i(~6|36j^ev_KV}_d}sMC3F+2} znFW3W>canE0Z|Fb69_S|fwFbt95-rjxc9yH?!E7OPxrZ6wU9pb+56!;jL@&#S)I}) zSR8Bc0R^a!0vs3&_p!DnGh(xEVgz`+zACx0mZZMBIn_%I5|P^4s!Mw}$67=y2D%W5kEZxSIv5;X!+yrzuNV+MpuLP;!w34=`r zQ($CD(`cFEG=_i-1~f@nBc??`RGZ{vX^(UXP)4(u&=Hol^bFLnFVt#kDJXYJm%+Wpf?dQ;c@2Ld+22><{9 literal 0 HcmV?d00001 diff --git a/Main/settings.py b/Main/settings.py index 3d4c8943..3958f354 100644 --- a/Main/settings.py +++ b/Main/settings.py @@ -31,6 +31,7 @@ # Application definition INSTALLED_APPS = [ + 'jazzmin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', @@ -38,7 +39,9 @@ 'django.contrib.messages', 'django.contrib.staticfiles', 'api', - 'rest_framework' + 'rest_framework', + 'rest_framework_simplejwt.token_blacklist', + 'corsheaders', ] @@ -50,6 +53,7 @@ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'corsheaders.middleware.CorsMiddleware', ] ROOT_URLCONF = 'Main.urls' @@ -103,6 +107,7 @@ ] + # Internationalization # https://docs.djangoproject.com/en/5.0/topics/i18n/ @@ -124,3 +129,41 @@ # https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +REST_FRAMEWORK = { +'DEFAULT_AUTHENTICATION_CLASSES': ( +'rest_framework_simplejwt.authentication.JWTAuthentication', +) +} +from datetime import timedelta +SIMPLE_JWT = { +'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5), +'REFRESH_TOKEN_LIFETIME': timedelta(days=50), +'ROTATE_REFRESH_TOKENS': True, +'BLACKLIST_AFTER_ROTATION': True, +'UPDATE_LAST_LOGIN': False, +'ALGORITHM': 'HS256', +'VERIFYING_KEY': None, +'AUDIENCE': None, +'ISSUER': None, +'JWK_URL': None, +'LEEWAY': 0, +'AUTH_HEADER_TYPES': ('Bearer',), +'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION', +'USER_ID_FIELD': 'id', +'USER_ID_CLAIM': 'user_id', +'USER_AUTHENTICATION_RULE': +'rest_framework_simplejwt.authentication.default_user_authentication_rule', +'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), +'TOKEN_TYPE_CLAIM': 'token_type', +'TOKEN_USER_CLASS': 'rest_framework_simplejwt.models.TokenUser', +'JTI_CLAIM': 'jti', +'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp', +'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5), +'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1), + +} + +CORS_ALLOW_ALL_ORIGINS = True + +AUTH_USER_MODEL='api.User' \ No newline at end of file diff --git a/Main/urls.py b/Main/urls.py index c2cf721f..f88399b1 100644 --- a/Main/urls.py +++ b/Main/urls.py @@ -15,8 +15,9 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path,include urlpatterns = [ + path('api/',include('api.urls')), path('admin/', admin.site.urls), ] diff --git a/api/__pycache__/__init__.cpython-312.pyc b/api/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d87814736cc196c3dbb2ffb30b422c16fb3617f3 GIT binary patch literal 180 zcmX@j%ge<81Y+gW(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!3U;=N2`x@7DvrrW z%}vaU2}(^&E>X}{aLG!{OV3vbD9X=DO)iOXEG^0K3J=ju0Sm`KsCb|VNFpY&ATuUD qJ~J<~BtBlRpz;@oO>TZlX-=wL5i8IRMj$Q*F+MUgGBOr116cstJT6xN literal 0 HcmV?d00001 diff --git a/api/__pycache__/admin.cpython-312.pyc b/api/__pycache__/admin.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a2f910b8ee07694dae6809837239bed7fcb2290 GIT binary patch literal 990 zcmb7D&1(}u6o0c{*~X+M#*3mDDHRsAc<~}qDHaOSh9XLFSy;B2NjhOSiL)CaHwy)? zxiwzBN&gft7L=9&@t~L93eBk}=gp>AKS12WoA>?kdv8CK%SBM%z4^DT0Ri}i!r5m} znUn8|*#!!e#E=l55TFJ%V}+67jg9%x)N>CJbdU z43i!m#K@Pz@Z}(ir0!*C-TPj&Mc*>$?R=-_e?nK>o zuddqdux1u44YI8#8_(`itq$@hR2nn{QJ)8T*oFR3xGJqCmSWP9B0F$+>DqYXV|9Le zRp2_b`R@>1Rp#>$w25!F)v3HAzNLXEO%a@8@rnuF;*5H>v=A3L(;CFF21A;gyeDm* zL~SMz+JA7*GG3=ugU7- z*+l5o@QQLahi0MK>t=#)3cOkAsEx2V75Fm<2Q|et)aV&~p%6@#<&rGzdQcfI!;0 literal 0 HcmV?d00001 diff --git a/api/__pycache__/apps.cpython-312.pyc b/api/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff93a09921094c4090fbb3be8f8b4766606f2f1a GIT binary patch literal 480 zcmXv~OH0E*5S~p^=~Gms;6bPtA&5DPh)`P;JX8@y2!UnoZrYT*%mb-6p+BG}`y0fc z;>BYLc=F^;s9t(K519yo z0%t~d@xS5@|z%2?A&Un0>_R%wS}C-7}&(3iCIs7Mx@9L#`$i71!~MW#v>QyZ(g zCZvv(K5o+y@dtrH?+h=X%#Do`XV6ZQ;M8F*%~TRPJ-w8bG4_eaFwUwN^TyN_xQ_9C zO5B3kpv)$zn_$A_*v|Eu;9g)MhFV^94y~J*MX@zx9`UU!M*2x>uhq>*XkA9Zi1ibT z|2{mwz229TSu$W=5roAD;xCMia2$#I*`2%{W)JrUx+8vcsFXe`CPMrGQuI)G|s8VO8H*enj=HtEj zy|=$dqbh;6vh!2%x%^>s7vM?AB>!NZycA=k895!^V_8{ye52B}Uu@v-}Nw(ji8 zQ(YL7h4cuQH4R9Vb z*Sh~e_uuTIkX_|N_|y>kS&<8SoIBFncc?Q04ROFZ<+Uhj2!)v_9+rtl&^E4>6cFaSz`{ywd96Ig6dC&_0k9_4g7S(OvDBq;aESl8t7|f<{`96u0I7Hz&WP$=D zRuY@X+e)ITBz`uwi@(^9?3VI*eYO)zZWi0IWHXlBKHZ9C>T?}=Vl&j1Cz|ra!3E%kCe+li(yDN@a7YWr9#`d{&rT}}h zigvG+d*!`9#=hMDAq^RC3qbl_y%Wd=eCYsIva^6mi=M+g?5tvqa(Sr0s9vRMiHBTj z8X*kACYuYuQHtLAtxAK-9^f;n-ht z{C<2Z-joXP- zp?4>!-SF!I&p!YVJCEW52p6{*I5UcvgRWpz!xwUqF;Ib}NLw0jO5<(mL{mEPM4I&O z4}ryf7a(;Nzr<&ZRiDr&d*gy*SDCq*(V^~V{F=`&lzd{apl8mwX35qqm*KN|MV1HW z@we=~nipJ#*Mg^UY#Sc%6-vL9Kl6VCU$8F$h9q$FAfAhYAUq{gPsxW*NoG${gv92R zJp$d{aajOn-?z4`Jp$^B@qmzdAq&D3lxpE(qx+`Q+ZX;I I?|V`B7XZZgCIA2c literal 0 HcmV?d00001 diff --git a/api/__pycache__/serlizers.cpython-312.pyc b/api/__pycache__/serlizers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..89e7db2de14b137f88895503636e1854a82dd2ef GIT binary patch literal 3227 zcmai0-ESMm5#ReFkDsz-F{-G>zSy-BA{H&X0opi1(ZaFQxG)pMY75Xrt|#6~I_gL& zdnY?m6hH`Elmc4Beh4H10b=yYfrC8ff9Q*@Hb7!wqXF8Nyt$!@1b)iQ9*;6x$(MQ)WgV^!w#MWuD_FS~c{{M~=_RDFZnE=fs z)%#psa8tld|H%BzYNn9=28|UYuFW==XyY3RM>1D`?@`9%Z?opS<5CbGylT0QZTZw( zwmk1zli9$W5Ody|^DU?Gw&k$PlsTZbMi~fGV4*kis^N}9s`dt513FuTlCorzvMjbO z!M5c)a;Q;OR+WOvv$z*DEi4b(>S>bhPX=sJrK~Q%HT+#FYpZfWd30#dM)4B$t%Aa3 z$L9J9m~U8h$~9WI9Jlm&jO(U}9Mj}U)2uh`6&L$y(|m8mazhEjTjv@Gsmo*Y4s~ts zbJE3~Kbk#vwt@?Kl|?YwsJuh1s&Bk(yk4^!3rz#OTBB9J@|zWZ@!}t6r)9XQ0+t6-DyVD}2ZxZ1MQk>X zJ)t#$y;MZv(CL}`PL{R8w**M2h<8*NZ*UeF-FgdF=YA(jxPcEnU~|fCO7vZISok z0xm;9G2C)Bx-FEVA^f^C5OSYLTf|4MXq(D9`5U-*UAlwe2<=08U8+TK6S4%YK`IWn zb=j6?fC)2j(V+%XxhE9~JtzjL(vv=IHFWteLZ>PvzeWl_T=ec@^njUEd_eM zlRx~~)Xo%)YJon{8K2x*ySWCVh0SayH?dW@S!w5v2f5?GqMPaa() zd5t+x9GVSxmFtYYx8g8r^JK4TG?@n&P=x)nQ$Pj~B?5&XgYew&vLT48BG^UPb3Lj} zJQ4NIl-NOBb_n|rCfOMv&%-werDq?9(gDcAs1}fQ5jtA{Ft&v84SyN`OTWN%{2pWx zQj1OovZ%r3C{7>NK9bfYNMN+J{SUY#%zsbriI)#K)U+ zSgk!Ct1=1?AfEOBIHOwvuUl7XL1A$Dg#8l9i$FYd03cwP{|MD<<4^cLv?tUrfyM^8 zpE>w(WwX-G7(vG933&o}28Jip+Txnz1yec7e8YkpBw8IPf7 zc}%>!JaIz|9|8Qu@cC4%HXA;3=86`)p^DKhnY}QFY!N5sKYQjXP|%`RtAK2t9aQb5 z-z9waUGD3Kk164wL8N)4&xG&CU$G0YO#}z;JdlTqBuNj*>3@+I9+2}7$i)Zb#Ga~1 tg&SAex#=J`y+>fMmrP5!UE|d~0{^}IbJEz258C5rg7Gu|BQOx2`vIgf!><4U literal 0 HcmV?d00001 diff --git a/api/__pycache__/urls.cpython-312.pyc b/api/__pycache__/urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b270b7c936079f53cf81bd1fbfcc138a823f985 GIT binary patch literal 709 zcma)3O^ee&7@ldq`a#)lAYxG5UIdHu%k`uph&>5vDXT(=l-bR+NjG22Os(zBn@4Zr zPmuj7f~4e74D3NX$lezAwkKzjEnasH@B8F=pFGc-$&Y%y3iuhm|2Fvu0r(>xwnw`H z7e6`p3LM}-9|X{XP~ehZ3M5P7SaM`v4irlXR7(vsOM{>Uu;eJbDznDc?teeIf+wW{ z=Pw5N&)OK-zLVJYK5o_LW4s!42kVG?l#O!Bt z=Dv7$&@LkFqK!Et1~!U4TWryZmzU)yLFCMR{FLl+e{pAY%FDR~Av^_-Pr>cKV6X;* z-*Wl$%|!1d`n`?bTkE}4e~`-izc{^@nEk|TZOs1K?5E~_DnAtTt;A?2#@&t4UK{Py Y=%#Wnr@y$Vymwwvc1oXWWQS+{16#|t!vFvP literal 0 HcmV?d00001 diff --git a/api/__pycache__/views.cpython-312.pyc b/api/__pycache__/views.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f354908410a2ded3d2eadb2bc5e4c8c49e8f14e9 GIT binary patch literal 2202 zcmbVN&2JM&6rc5O?6n=oPMkO-02$mF zE(wLuIb_9dBP)&*%W`lfJtNRoKodAw&IRaB`dV{e2;rF3W+kUW%Tk~LNF1l9q$Y2r zZlmRGHIAoj>I-#&fIroov5jjso@E^~n7B5jwpTGqj!7w|aC~}? zyRSf%n@!;goLQnQOnuX@QjQHfjyF48sj=jFI$ZUqamBYwrjIS~qmE-b<5egwZAUA% z?W~~96tIg3BVDqP9>TJ&)Fg13`JyJy_e3}|JRW|5v1|)d4WnYZ*f3bkFkH{7I{drU zFs@cjCy)>oys{MJ#|| z$uIIqE__`$ZV9*;Yz81)P=xdqdHQH>rbg1>R*+Wsp#1dPXrn8)qI8m;rf66EAwc=s zyZ~fp{AF&uXO-i70AOF&Oc+NdC0)f)Jti`@{no_v;XU~U$FgzK2^OS_lME-k%UHy_ z%)_KiHXVnlSF4!RDE3K`Yw#0El#^~w_HiO2>E&Phn}qAqcYr{+iT1n2JH_?HftAF8 z)kNQ|(T#mt{o96;+2}g*IuYEG$>&B2OvzuID3qFY05DSE$9rv42Xqn5qcTVLEK9m_ z6mD?L3W2uM5E4vSs*C6edAR% zlVFWvY*(fQo0SOnNDgru#mCqEIRz}Wxn#dq^QuJSkY-aYtFo|*{b|o) zN)_6Rv~x3V%i^PjLf-i3#0lf#=Yb=63j3^6z#jvAYWR#XKJw+Ik%^PUVR+dzmd+=XBX#x zn6FnFhesOiXBX5zlHE({!_0bia3wpqmK z1!W`My%hPm^9Gvx{>ujLVRPA zzyO@}$d#OhOCGekM=0T?Df*Tj+^u9#+nsT6dDhQ~fkpU`Vr{#X2(RMcv3hq)a&P_~ zXfPc3%x2wtw15?3K6rIL5Lx0h!SF9IoIlTJcQ7^hTkRPquhgMnjGrW*f|QR0>Hv8m zOOo^iz55JlPf>ma<)5KbPteJy=!2)|vnQy3OOd1x8wXBoA=tOVvh-g4`g-^AmG0wP t2$+|xC=^@xq@G#Gtx7$=OX<4N=sdCtf>2Bv+LTe~eNK8`D!__2`Ui>S40Zqj literal 0 HcmV?d00001 diff --git a/api/admin.py b/api/admin.py index 8c38f3f3..55a42a41 100644 --- a/api/admin.py +++ b/api/admin.py @@ -1,3 +1,12 @@ from django.contrib import admin +from .models import User, Profile -# Register your models here. +class UserAdmin(admin.ModelAdmin): + list_display=['username','email'] + +class ProfileAdmin(admin.ModelAdmin): + list_editable=['verified'] + list_display=['user','full_name','bio','image','verified'] + +admin.site.register(User,UserAdmin) +admin.site.register(Profile,ProfileAdmin) diff --git a/api/migrations/0001_initial.py b/api/migrations/0001_initial.py new file mode 100644 index 00000000..8666b705 --- /dev/null +++ b/api/migrations/0001_initial.py @@ -0,0 +1,56 @@ +# Generated by Django 5.0.7 on 2024-07-16 17:29 + +import django.contrib.auth.models +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('username', models.CharField(max_length=100)), + ('email', models.EmailField(max_length=254, unique=True)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + migrations.CreateModel( + name='Profile', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('full_name', models.CharField(max_length=200)), + ('bio', models.CharField(max_length=300)), + ('image', models.ImageField(default='default.jpg', upload_to='user_images')), + ('verified', models.BooleanField(default=False)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/api/migrations/__pycache__/0001_initial.cpython-312.pyc b/api/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..108a9ed71c01d2a0f365d240e9529a1f36cc9f03 GIT binary patch literal 4048 zcmb7HPfQ!x86S_0|6zzt!hZupLJ|zYKti)5S(5NCf$S#PBtQ~MGadUqoAHikoS88M z_p+7t(Bq!ARI1cmTdXQa_Ov-h>Sac?Wb{_6uGAAZs-%}aRQ=u?1131BYNUDZ``+(; z@B9BAe`{z6a`0>Z>$j;NLmc-{O6>pYDwDSfnEakY9C9h#vWty;WpuNVS3KFePIm& zfCka|;)N~mf$X7=?1-}+!)T;>N4f!|j6#er{?Uytfj|0=pO!gSgV$Jt7dy_|s<2W} z1I4lZECwxW*TOIU&sw<5?5$M`pB(Y|_y=)Uj^M5`+`w@=&^7dFaiS_V*BP>Ay%cX$ zMSFnZE*zH#zK$Q~W@`C$qz3NdaUSl-Tt3b%-aOPg?JZ93Q)zxVx-k`-CV{*Aooxa7 zoJY!=tK{s+$mm5;QcSFic>_KvSvO2km9kjON-snOt7(9F7GaI>GP*_h`I(r9gkZNO zCUq>C7?Jv%E@vfuL;MnNkN`ksNs$Yfgx0X0&4aD}t<=nq#Geva%`|vWeq`5R*{Rm;^wilr-fvT);JD z?)%69ZzxDeV8L`k3hoe`opE7NHL!w{6`#tgVPXjhT1tSs5z}iEkV!4Cnns*>olT@3 zK`6wGCaV|~7$G=BjMwQ6>Nvtr14R9>i+~q%F&~jSoRwr{_dk@yJ1lQrm7nJ^@uqbx zpEC;50=UDOJ3e5MPGCiYOI$FuxG?E>Yh8xOr?Gh~1K^HVA$0*OU@5su%>ft7dPQoS zFx^CW7!VK3upq6MI6E`ubt2jh8j_HX6&OA7Hz3B%MOJjACZ zG7wG!%Gkpc^rmF2AOjY1&b!B-l~gGW5{d5%T}#OdCV>=G9@HkTv-NTy~@m zN6lR!SFXc7`ljrc)9uo@!>In4&>1p!SJSw3NX&ig)kN%zjRS8f1y{cKtK= z79iZuiRr5=^eAHmx|*b}JcMjFg+XD4*&#r9X)dgQCsyw~UKn!BTX6;vICNn}%E>E- z&*GI4xHQCyv*Wo9-3JG;4}IGk0nqJh?x)74uWs*oxxm#uH-F0e)#rObF3|J4VA`b5!+MHKJt-@k-ibu5?)YY^+#R>OyP8TQL^Hh_b zJ4}<$K$C7u7<=h03uCr0w!QTI%6BW}iHG*Y!}7$EJ+WkAy(HA~N2zPV3SZxev{@a4 zo9D_MgLcQ@E93Q8sbkIx&+kOqt_pC3XRp0nDxbY(pS||F&w98H3%B_PR6>epf}Vp)$!UsQ|i8Mg>URcTCBGIO>eoa-)`%FHC<{O zx58K6^VZ!rzbbY7(h9G?^NTvx*(YG$+;%)Z|~?&_G=>+Bpps!#Vd^< z&icCZFQz^RIMQALphVnZ#}6vMxw6FiPW+(l)E|mWIZYvOAcJ*2*6f@LeN0th`aFf% z&;C!HK6+gjfu#So82#|sbGuxww_eV5`Ug(E76xX%vv{hI@V GN%}9yYdzus literal 0 HcmV?d00001 diff --git a/api/migrations/__pycache__/__init__.cpython-312.pyc b/api/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..acb54f4b4277ede566977678bea0cf3567310ac5 GIT binary patch literal 191 zcmX@j%ge<81Y+gW(m?cM5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!igUJ#2`x@7DvrrW z%}vaU2}(^&E>X}{aLG!{OV3vbD9X=DO)iOXEG^0K3J=ju0Sm`KsCb|VNFpY&ATuU6 zGrcIWBr`v+I3_+mGcU6wK3=b&@)w6qZhlH>PO4oIE6_SdAT97G+48=h4T!sRM9EMb& p+H!^xuo_dK8jw0e23`g(pll{kK8GP6C=W8hkih^bXEO11Ismpa6=nbc delta 17 ZcmaFEe2Hm7%Va%9sflO8CigMM0RTae2Il|(