+ },
+ [ScopeNames.WITH_STATS]: {
+ attributes: {
+ include: [
+ [
+ literal(
+ '(' +
+ UserModel.generateUserQuotaBaseSQL({
+ withSelect: false,
+ whereUserId: '"UserModel"."id"'
+ }) +
+ ')'
+ ),
+ 'videoQuotaUsed'
+ ],
+ [
+ literal(
+ '(' +
+ 'SELECT COUNT("video"."id") ' +
+ 'FROM "video" ' +
+ 'INNER JOIN "videoChannel" ON "videoChannel"."id" = "video"."channelId" ' +
+ 'INNER JOIN "account" ON "account"."id" = "videoChannel"."accountId" ' +
+ 'WHERE "account"."userId" = "UserModel"."id"' +
+ ')'
+ ),
+ 'videosCount'
+ ],
+ [
+ literal(
+ '(' +
+ `SELECT concat_ws(':', "abuses", "acceptedAbuses") ` +
+ 'FROM (' +
+ 'SELECT COUNT("videoAbuse"."id") AS "abuses", ' +
+ `COUNT("videoAbuse"."id") FILTER (WHERE "videoAbuse"."state" = ${VideoAbuseState.ACCEPTED}) AS "acceptedAbuses" ` +
+ 'FROM "videoAbuse" ' +
+ 'INNER JOIN "video" ON "videoAbuse"."videoId" = "video"."id" ' +
+ 'INNER JOIN "videoChannel" ON "videoChannel"."id" = "video"."channelId" ' +
+ 'INNER JOIN "account" ON "account"."id" = "videoChannel"."accountId" ' +
+ 'WHERE "account"."userId" = "UserModel"."id"' +
+ ') t' +
+ ')'
+ ),
+ 'videoAbusesCount'
+ ],
+ [
+ literal(
+ '(' +
+ 'SELECT COUNT("videoAbuse"."id") ' +
+ 'FROM "videoAbuse" ' +
+ 'INNER JOIN "account" ON "account"."id" = "videoAbuse"."reporterAccountId" ' +
+ 'WHERE "account"."userId" = "UserModel"."id"' +
+ ')'
+ ),
+ 'videoAbusesCreatedCount'
+ ],
+ [
+ literal(
+ '(' +
+ 'SELECT COUNT("videoComment"."id") ' +
+ 'FROM "videoComment" ' +
+ 'INNER JOIN "account" ON "account"."id" = "videoComment"."accountId" ' +
+ 'WHERE "account"."userId" = "UserModel"."id"' +
+ ')'
+ ),
+ 'videoCommentsCount'
+ ]
+ ]
+ }