diff --git a/backend/src/modules/activity/entities/activity.entity.ts b/backend/src/modules/activity/entities/activity.entity.ts index 3538156..f8d8da0 100644 --- a/backend/src/modules/activity/entities/activity.entity.ts +++ b/backend/src/modules/activity/entities/activity.entity.ts @@ -16,7 +16,6 @@ export type ActivityType = // 프로젝트(설정) | 'project.created' | 'project.renamed' - | 'project.visibility_changed' // 저장소 연동 | 'repo.linked' | 'repo.unlinked' diff --git a/backend/src/modules/ai/ai.service.ts b/backend/src/modules/ai/ai.service.ts index 7052f40..f7114f0 100644 --- a/backend/src/modules/ai/ai.service.ts +++ b/backend/src/modules/ai/ai.service.ts @@ -395,10 +395,7 @@ export class AiService { lines.push('- (없음)'); } else { for (const p of projects.items) { - const vis = p.visibility === 'private' ? '비공개' : '공개'; - lines.push( - `- ${p.name} — ${vis}, 업무 ${p.doneCount}/${p.totalCount}건`, - ); + lines.push(`- ${p.name} — 업무 ${p.doneCount}/${p.totalCount}건`); } if (projects.total > projects.items.length) { lines.push(`- … 외 ${projects.total - projects.items.length}개`); diff --git a/backend/src/modules/project/dto/create-project.dto.ts b/backend/src/modules/project/dto/create-project.dto.ts index 334f3a5..3c47922 100644 --- a/backend/src/modules/project/dto/create-project.dto.ts +++ b/backend/src/modules/project/dto/create-project.dto.ts @@ -1,12 +1,5 @@ -import { - IsIn, - IsNotEmpty, - IsOptional, - IsString, - MaxLength, -} from 'class-validator'; +import { IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; -import type { ProjectVisibility } from '../entities/project.entity'; // 프로젝트 생성 DTO export class CreateProjectDto { @@ -24,13 +17,4 @@ export class CreateProjectDto { @IsString() @MaxLength(300) description?: string; - - @ApiProperty({ - description: '공개 범위', - enum: ['private', 'public'], - required: false, - }) - @IsOptional() - @IsIn(['private', 'public'], { message: '공개 범위를 선택해 주세요.' }) - visibility?: ProjectVisibility; } diff --git a/backend/src/modules/project/dto/update-project.dto.ts b/backend/src/modules/project/dto/update-project.dto.ts index 77622dc..4b10a40 100644 --- a/backend/src/modules/project/dto/update-project.dto.ts +++ b/backend/src/modules/project/dto/update-project.dto.ts @@ -1,6 +1,5 @@ -import { IsIn, IsOptional, IsString, MaxLength } from 'class-validator'; +import { IsOptional, IsString, MaxLength } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; -import type { ProjectVisibility } from '../entities/project.entity'; // 프로젝트 수정 DTO — 제공된 필드만 갱신 export class UpdateProjectDto { @@ -15,13 +14,4 @@ export class UpdateProjectDto { @IsString() @MaxLength(300) description?: string; - - @ApiProperty({ - description: '공개 범위', - enum: ['private', 'public'], - required: false, - }) - @IsOptional() - @IsIn(['private', 'public'], { message: '공개 범위를 선택해 주세요.' }) - visibility?: ProjectVisibility; } diff --git a/backend/src/modules/project/entities/project.entity.ts b/backend/src/modules/project/entities/project.entity.ts index df4709f..ff13b58 100644 --- a/backend/src/modules/project/entities/project.entity.ts +++ b/backend/src/modules/project/entities/project.entity.ts @@ -9,9 +9,6 @@ import { } from 'typeorm'; import { ProjectMember } from './project-member.entity'; -// 프로젝트 공개 범위 -export type ProjectVisibility = 'private' | 'public'; - // 프로젝트 엔티티 — 작업의 기본 단위(우선). 저장소(Repo)는 프로젝트에 0~N개 연동된다. @Entity('projects') export class Project { @@ -27,10 +24,6 @@ export class Project { @Column({ type: 'varchar', nullable: true }) description!: string | null; - // 공개 범위 - @Column({ type: 'varchar', default: 'private' }) - visibility!: ProjectVisibility; - // 시스템 예약 프로젝트 여부 — "미분류"(Gitea import 기본 버킷)는 true. 삭제/이름변경 보호. @Column({ name: 'is_system', default: false }) isSystem!: boolean; diff --git a/backend/src/modules/project/project.service.ts b/backend/src/modules/project/project.service.ts index 46c8ed5..69189bb 100644 --- a/backend/src/modules/project/project.service.ts +++ b/backend/src/modules/project/project.service.ts @@ -13,7 +13,7 @@ import { resolvePage, type PaginatedResult, } from '../../common/pagination/pagination'; -import { Project, type ProjectVisibility } from './entities/project.entity'; +import { Project } from './entities/project.entity'; import { ProjectMember } from './entities/project-member.entity'; import { Repo } from '../repo/entities/repo.entity'; import { Task } from '../task/entities/task.entity'; @@ -28,7 +28,6 @@ export interface ProjectResponse { id: string; name: string; description: string | null; - visibility: ProjectVisibility; isSystem: boolean; members: PublicUser[]; memberCount: number; @@ -120,7 +119,6 @@ export class ProjectService implements OnApplicationBootstrap { this.projectRepo.create({ name: dto.name, description: dto.description ?? null, - visibility: dto.visibility ?? 'private', isSystem: false, }), ); @@ -155,7 +153,6 @@ export class ProjectService implements OnApplicationBootstrap { } if (dto.name !== undefined) project.name = dto.name; if (dto.description !== undefined) project.description = dto.description; - if (dto.visibility !== undefined) project.visibility = dto.visibility; await this.projectRepo.save(project); return this.findOne(project.id, userId); } @@ -187,7 +184,6 @@ export class ProjectService implements OnApplicationBootstrap { this.projectRepo.create({ name: UNASSIGNED_PROJECT_NAME, description: 'Gitea 에서 가져온, 아직 프로젝트에 배정되지 않은 저장소', - visibility: 'private', isSystem: true, }), ); @@ -275,7 +271,6 @@ export class ProjectService implements OnApplicationBootstrap { id: project.id, name: project.name, description: project.description, - visibility: project.visibility, isSystem: project.isSystem, members: members .filter((m) => m.user) diff --git a/frontend/src/components/ProjectHeader.vue b/frontend/src/components/ProjectHeader.vue index 2132736..f5b03e5 100644 --- a/frontend/src/components/ProjectHeader.vue +++ b/frontend/src/components/ProjectHeader.vue @@ -37,40 +37,6 @@ const extra = computed(() => props.moreCount ?? props.repo.moreCount)