@@ -52,14 +52,16 @@ model Asso {
5252 mail String @unique @db.VarChar (100 )
5353 phoneNumber String ? @db.VarChar (30 )
5454 website String ? @db.VarChar (100 )
55- logo String ? @db.VarChar ( 100 )
55+ logoMediaId String ? @db.Char ( 36 )
5656 createdAt DateTime @default (now () )
5757 updatedAt DateTime @updatedAt
5858 deletedAt DateTime ?
5959 descriptionShortTranslationId String ? @unique
6060 descriptionTranslationId String ? @unique
6161 assoAccountId String @unique // User account of the asso
6262
63+ logo ImageMedia ? @relation (" logo " , fields : [logoMediaId ] , references : [id ] , onDelete : SetNull )
64+ descriptionImages ImageMedia [] @relation (" descriptionImages " )
6365 descriptionShortTranslation Translation ? @relation (name : " descriptionShortTranslation " , fields : [descriptionShortTranslationId ] , references : [id ] , onDelete : Cascade )
6466 descriptionTranslation Translation ? @relation (name : " descriptionTranslation " , fields : [descriptionTranslationId ] , references : [id ] , onDelete : Cascade )
6567 assoMemberships AssoMembership []
@@ -162,6 +164,22 @@ model GitHubIssue {
162164 user User @relation (fields : [userId ] , references : [id ] )
163165}
164166
167+ model ImageMedia {
168+ id String @id @default (uuid () ) @db.Char (36 )
169+ size Int @db.UnsignedInt
170+ width Int @db.UnsignedInt
171+ height Int @db.UnsignedInt
172+ uploadedAt DateTime @default (now () )
173+ isPublic Boolean @default (false )
174+ uploaderId String ?
175+ preset ImageMediaPreset
176+
177+ uploader User ? @relation (fields : [uploaderId ] , references : [id ] )
178+ avatarForUsers UserInfos []
179+ logoForAssos Asso [] @relation (" logo " )
180+ descriptionForAssos Asso [] @relation (" descriptionImages " )
181+ }
182+
165183model Semester {
166184 code String @id @db.Char (3 )
167185 start DateTime @db.Date
@@ -592,6 +610,7 @@ model User {
592610 apiPermissionsTarget ApiKeyPermission [] @relation (name : " target " )
593611 apiPermissionsGrants ApiKeyPermission [] @relation (name : " granter " )
594612 asso Asso ?
613+ uploadedImages ImageMedia []
595614}
596615
597616model UserAddress {
@@ -662,16 +681,17 @@ model UserFormation {
662681}
663682
664683model UserInfos {
665- id String @id @default (uuid () )
666- sex Sex ?
667- nationality String ? @db.VarChar (50 )
668- birthday DateTime ? @db.Date
669- avatar String @default ( " default.png " ) @ db.VarChar ( 255 )
670- nickname String ? @db.VarChar (50 )
671- passions String ? @db.Text
672- website String ? @db.VarChar (255 )
684+ id String @id @default (uuid () )
685+ sex Sex ?
686+ nationality String ? @db.VarChar (50 )
687+ birthday DateTime ? @db.Date
688+ avatarMediaId String ? @ db.Char ( 36 )
689+ nickname String ? @db.VarChar (50 )
690+ passions String ? @db.Text
691+ website String ? @db.VarChar (255 )
673692
674- user User ?
693+ user User ?
694+ avatar ImageMedia ? @relation (fields : [avatarMediaId ] , references : [id ] , onDelete : SetNull )
675695}
676696
677697model UserMailsPhones {
@@ -899,13 +919,19 @@ enum AddressPrivacy {
899919 ALL_PUBLIC
900920}
901921
922+ enum ImageMediaPreset {
923+ AVATAR
924+ CUSTOM
925+ }
926+
902927enum Permission {
903928 API_SEE_OPINIONS_UE // See the rates of an UE
904929 API_GIVE_OPINIONS_UE // Rate an UE you have done or are doing
905930 API_SEE_ANNALS // See and download annals
906931 API_UPLOAD_ANNALS // Upload an annal
907932 API_MODERATE_ANNALS // Moderate annals
908933 API_MODERATE_COMMENTS // Moderate comments
934+ API_UPLOAD_MEDIA // Upload to media enpoints
909935
910936 USER_SEE_DETAILS // See personal details about someone, even the ones the user decided to hide
911937 USER_UPDATE_DETAILS // Update personal details about someone
0 commit comments