feat: agencies
This commit is contained in:
parent
1fc47a00dd
commit
cdfa62958f
|
|
@ -26,6 +26,7 @@ import { OpenaiService } from '@gitroom/nestjs-libraries/openai/openai.service';
|
|||
import { ExtractContentService } from '@gitroom/nestjs-libraries/openai/extract.content.service';
|
||||
import { CodesService } from '@gitroom/nestjs-libraries/services/codes.service';
|
||||
import { CopilotController } from '@gitroom/backend/api/routes/copilot.controller';
|
||||
import { AgenciesController } from '@gitroom/backend/api/routes/agencies.controller';
|
||||
|
||||
const authenticatedController = [
|
||||
UsersController,
|
||||
|
|
@ -40,6 +41,7 @@ const authenticatedController = [
|
|||
MarketplaceController,
|
||||
MessagesController,
|
||||
CopilotController,
|
||||
AgenciesController,
|
||||
];
|
||||
@Module({
|
||||
imports: [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
import { Controller, Get } from '@nestjs/common';
|
||||
import { User } from '@prisma/client';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { AgenciesService } from '@gitroom/nestjs-libraries/database/prisma/agencies/agencies.service';
|
||||
import { GetUserFromRequest } from '@gitroom/nestjs-libraries/user/user.from.request';
|
||||
|
||||
@ApiTags('Agencies')
|
||||
@Controller('/agencies')
|
||||
export class AgenciesController {
|
||||
constructor(private _agenciesService: AgenciesService) {}
|
||||
@Get('/')
|
||||
async generateImage(@GetUserFromRequest() user: User) {
|
||||
return this._agenciesService.getAgencyByUser(user);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
import { PrismaRepository } from '@gitroom/nestjs-libraries/database/prisma/prisma.service';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { User } from '@prisma/client';
|
||||
|
||||
@Injectable()
|
||||
export class AgenciesRepository {
|
||||
constructor(
|
||||
private _socialMediaAgencies: PrismaRepository<'socialMediaAgency'>
|
||||
) {}
|
||||
|
||||
getAgencyByUser(user: User) {
|
||||
return this._socialMediaAgencies.model.socialMediaAgency.findFirst({
|
||||
where: {
|
||||
userId: user.id,
|
||||
deletedAt: null,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { AgenciesRepository } from '@gitroom/nestjs-libraries/database/prisma/agencies/agencies.repository';
|
||||
import { User } from '@prisma/client';
|
||||
|
||||
@Injectable()
|
||||
export class AgenciesService {
|
||||
constructor(private _agenciesRepository: AgenciesRepository) {}
|
||||
getAgencyByUser(user: User) {
|
||||
return this._agenciesRepository.getAgencyByUser(user);
|
||||
}
|
||||
}
|
||||
|
|
@ -27,6 +27,8 @@ import { MessagesRepository } from '@gitroom/nestjs-libraries/database/prisma/ma
|
|||
import { StripeService } from '@gitroom/nestjs-libraries/services/stripe.service';
|
||||
import { ExtractContentService } from '@gitroom/nestjs-libraries/openai/extract.content.service';
|
||||
import { OpenaiService } from '@gitroom/nestjs-libraries/openai/openai.service';
|
||||
import { AgenciesService } from '@gitroom/nestjs-libraries/database/prisma/agencies/agencies.service';
|
||||
import { AgenciesRepository } from '@gitroom/nestjs-libraries/database/prisma/agencies/agencies.repository';
|
||||
|
||||
@Global()
|
||||
@Module({
|
||||
|
|
@ -55,6 +57,8 @@ import { OpenaiService } from '@gitroom/nestjs-libraries/openai/openai.service';
|
|||
MediaRepository,
|
||||
CommentsRepository,
|
||||
ItemUserRepository,
|
||||
AgenciesService,
|
||||
AgenciesRepository,
|
||||
ItemUserService,
|
||||
MessagesService,
|
||||
CommentsService,
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ model User {
|
|||
orderSeller Orders[] @relation("orderSeller")
|
||||
payoutProblems PayoutProblems[]
|
||||
lastOnline DateTime @default(now())
|
||||
agencies SocialMediaAgency[]
|
||||
|
||||
@@unique([email, providerName])
|
||||
@@index([lastReadNotifications])
|
||||
|
|
@ -165,10 +166,63 @@ model Media {
|
|||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
userPicture User[]
|
||||
agencies SocialMediaAgency[]
|
||||
|
||||
@@index([organizationId])
|
||||
}
|
||||
|
||||
model SocialMediaAgency {
|
||||
id String @id @default(uuid())
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
userId String
|
||||
name String
|
||||
logoId String?
|
||||
logo Media? @relation(fields: [logoId], references: [id])
|
||||
tagline String?
|
||||
address String?
|
||||
phoneNumber String?
|
||||
emailAddress String?
|
||||
website String?
|
||||
|
||||
facebook String?
|
||||
instagram String?
|
||||
twitter String?
|
||||
linkedIn String?
|
||||
youtube String?
|
||||
otherSocialMedia String?
|
||||
|
||||
primaryServices String
|
||||
specialties String?
|
||||
packages String?
|
||||
caseStudies String?
|
||||
|
||||
yearEstablished Int?
|
||||
teamSize Int?
|
||||
languagesSupported String?
|
||||
clientTypes String?
|
||||
clientTestimonials String?
|
||||
|
||||
certifications String?
|
||||
awards String?
|
||||
|
||||
blog String?
|
||||
faqs String?
|
||||
events String?
|
||||
freeConsultation Boolean @default(false)
|
||||
|
||||
businessHours String?
|
||||
serviceArea String?
|
||||
termsAndConditions String?
|
||||
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
deletedAt DateTime?
|
||||
|
||||
@@index([userId])
|
||||
@@index([deletedAt])
|
||||
@@index([id])
|
||||
}
|
||||
|
||||
model Credits {
|
||||
id String @id @default(uuid())
|
||||
organization Organization @relation(fields: [organizationId], references: [id])
|
||||
|
|
|
|||
Loading…
Reference in New Issue