diff --git a/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java index fb0de652..591d0efa 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java @@ -90,7 +90,8 @@ public class SecurityConfig { "/api/user/**", "/api/my/menus", "/api/common-code/**", - "/api/training-data/label/**") + "/api/training-data/label/**", + "/api/training-data/review/**") .authenticated() .anyRequest() .access(menuAuthorizationManager) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataLabelCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataLabelCoreService.java index c3e32aa0..d1904e6f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataLabelCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataLabelCoreService.java @@ -1,6 +1,7 @@ package com.kamco.cd.kamcoback.postgres.core; import com.kamco.cd.kamcoback.postgres.repository.trainingdata.TrainingDataLabelRepository; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DefaultPaging; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DetailRes; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.GeoFeatureRequest.Properties; @@ -79,4 +80,13 @@ public class TrainingDataLabelCoreService { public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String assignmentUid) { return trainingDataLabelRepository.getDefaultPagingNumber(userId, size, assignmentUid); } + + public void saveNewPolygon(TrainingDataLabelDto.NewPolygonRequest request) { + trainingDataLabelRepository.saveNewPolygon(request); + } + + public TrainingDataLabelDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + return trainingDataLabelRepository.getCogImageUrl(mapSheetNum, beforeYear, afterYear); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java new file mode 100644 index 00000000..d6fe650b --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/TrainingDataReviewCoreService.java @@ -0,0 +1,92 @@ +package com.kamco.cd.kamcoback.postgres.core; + +import com.kamco.cd.kamcoback.postgres.repository.trainingdata.TrainingDataReviewRepository; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DefaultPaging; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DetailRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.GeoFeatureRequest.Properties; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.SummaryRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.searchReq; +import java.util.UUID; +import lombok.RequiredArgsConstructor; +import org.locationtech.jts.geom.Geometry; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class TrainingDataReviewCoreService { + + private final TrainingDataReviewRepository trainingDataReviewRepository; + + public Page findReviewAssignedList(searchReq searchReq, String userId) { + return trainingDataReviewRepository.findReviewAssignedList(searchReq, userId); + } + + public ReviewGeometryInfo findReviewAssignedGeom(String operatorUid) { + return trainingDataReviewRepository.findReviewAssignedGeom(operatorUid); + } + + public Long findReviewOperatorGeoUid(String operatorUid) { + return trainingDataReviewRepository.findReviewOperatorGeoUid(operatorUid); + } + + public void updateReviewStateOperator(String operatorUid, String status, String memo) { + trainingDataReviewRepository.updateReviewStateOperator(operatorUid, status, memo); + } + + public void updateReviewExceptState(Long inferenceGeomUid, String status) { + trainingDataReviewRepository.updateReviewExceptState(inferenceGeomUid, status); + } + + public void updateReviewPolygonClass( + Long inferenceGeomUid, Geometry geometry, Properties properties, String status) { + trainingDataReviewRepository.updateReviewPolygonClass( + inferenceGeomUid, geometry, properties, status); + } + + /** + * 검수자별 작업 통계 조회 + * + * @param userId 검수자 사번 + * @return 전체/미작업/Today 건수 + */ + public SummaryRes getSummary(String userId) { + try { + System.out.println("[CoreService] getSummary called with userId: " + userId); + SummaryRes result = trainingDataReviewRepository.getSummary(userId); + System.out.println("[CoreService] getSummary result: " + result); + return result; + } catch (Exception e) { + System.err.println("[CoreService] getSummary ERROR: " + e.getMessage()); + e.printStackTrace(); + // 예외 발생 시에도 빈 통계 반환 + return SummaryRes.builder().totalCnt(0L).undoneCnt(0L).todayCnt(0L).build(); + } + } + + /** + * 검수 작업 상세 정보 조회 + * + * @param operatorUid 검수 작업 ID + * @return 변화탐지정보 + 실태조사결과정보 + */ + public DetailRes getDetail(UUID operatorUid) { + return trainingDataReviewRepository.getDetail(operatorUid); + } + + public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String operatorUid) { + return trainingDataReviewRepository.getDefaultPagingNumber(userId, size, operatorUid); + } + + public void saveNewPolygon(TrainingDataReviewDto.NewPolygonRequest request) { + trainingDataReviewRepository.saveNewPolygon(request); + } + + public TrainingDataReviewDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + return trainingDataReviewRepository.getCogImageUrl(mapSheetNum, beforeYear, afterYear); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryCustom.java index e215afdd..3c37c4f8 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryCustom.java @@ -1,5 +1,6 @@ package com.kamco.cd.kamcoback.postgres.repository.trainingdata; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DefaultPaging; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DetailRes; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.GeoFeatureRequest.Properties; @@ -31,4 +32,9 @@ public interface TrainingDataLabelRepositoryCustom { DetailRes getDetail(UUID assignmentUid); DefaultPaging getDefaultPagingNumber(String userId, Integer size, String assignmentUid); + + void saveNewPolygon(TrainingDataLabelDto.NewPolygonRequest request); + + TrainingDataLabelDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java index 8eccbfcd..daf56651 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataLabelRepositoryImpl.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.LabelState; import com.kamco.cd.kamcoback.postgres.entity.LabelingAssignmentEntity; import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.ChangeDetectionInfo; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.ClassificationInfo; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DefaultPaging; @@ -519,8 +520,8 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport } } - // 7. 라벨링 저장한 Geometry를 GeoJSON으로 변환 - LearnDataGeometry learnData = + // 7. 라벨링 저장한 Geometry들을 GeoJSON으로 변환 (여러 개 가능) + List learnDataList = queryFactory .select( Projections.constructor( @@ -536,7 +537,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport .where( mapSheetLearnDataGeomEntity.geoUid.eq( mapSheetAnalDataInferenceGeomEntityEntity.getGeoUid())) - .fetchOne(); + .fetch(); // fetchOne() -> fetch()로 변경 return DetailRes.builder() .assignmentUid(assignmentUid) @@ -546,7 +547,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport .beforeCogUrl(beforeCogUrl) .afterCogUrl(afterCogUrl) .mapBox(mapBbox) - .learnGeometry(learnData) + .learnGeometries(learnDataList) // learnGeometry -> learnGeometries .build(); } catch (Exception e) { @@ -624,6 +625,165 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport return DefaultPaging.builder().page(page).assignmentUid(firstAssignedUid).build(); } + @Override + public void saveNewPolygon(TrainingDataLabelDto.NewPolygonRequest request) { + try { + if (request.getFeatures() == null || request.getFeatures().isEmpty()) { + throw new RuntimeException("No polygons to save"); + } + + System.out.println( + "Saving " + + request.getFeatures().size() + + " new polygon(s) for mapSheetNum: " + + request.getMapSheetNum()); + + int savedCount = 0; + for (TrainingDataLabelDto.NewPolygonRequest.PolygonFeature feature : request.getFeatures()) { + try { + // 1. map_sheet_anal_data_inference_geom 테이블에 새 polygon 삽입 + queryFactory + .insert(mapSheetAnalDataInferenceGeomEntity) + .columns( + mapSheetAnalDataInferenceGeomEntity.geom, + mapSheetAnalDataInferenceGeomEntity.compareYyyy, + mapSheetAnalDataInferenceGeomEntity.targetYyyy, + mapSheetAnalDataInferenceGeomEntity.classBeforeCd, + mapSheetAnalDataInferenceGeomEntity.classAfterCd, + mapSheetAnalDataInferenceGeomEntity.createdDttm, + mapSheetAnalDataInferenceGeomEntity.updatedDttm, + mapSheetAnalDataInferenceGeomEntity.labelState) + .values( + feature.getGeometry(), + request.getCompareYyyy(), + request.getTargetYyyy(), + feature.getProperties().getBeforeClass().toLowerCase(), + feature.getProperties().getAfterClass().toLowerCase(), + ZonedDateTime.now(), + ZonedDateTime.now(), + "DONE") + .execute(); + + // 2. 생성된 geoUid 조회 + Long geoUid = + queryFactory + .select(mapSheetAnalDataInferenceGeomEntity.geoUid) + .from(mapSheetAnalDataInferenceGeomEntity) + .where( + mapSheetAnalDataInferenceGeomEntity.geom.eq(feature.getGeometry()), + mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(request.getCompareYyyy()), + mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy())) + .orderBy(mapSheetAnalDataInferenceGeomEntity.geoUid.desc()) + .fetchFirst(); + + if (geoUid == null) { + System.err.println("Failed to get geo_uid for polygon #" + (savedCount + 1)); + continue; + } + + // 3. learn_data_geom 테이블에도 삽입 + queryFactory + .insert(mapSheetLearnDataGeomEntity) + .columns( + mapSheetLearnDataGeomEntity.geoUid, + mapSheetLearnDataGeomEntity.afterYyyy, + mapSheetLearnDataGeomEntity.beforeYyyy, + mapSheetLearnDataGeomEntity.classAfterCd, + mapSheetLearnDataGeomEntity.classBeforeCd, + mapSheetLearnDataGeomEntity.geom, + mapSheetLearnDataGeomEntity.createdDate, + mapSheetLearnDataGeomEntity.modifiedDate) + .values( + geoUid, + request.getTargetYyyy(), + request.getCompareYyyy(), + feature.getProperties().getAfterClass().toLowerCase(), + feature.getProperties().getBeforeClass().toLowerCase(), + feature.getGeometry(), + ZonedDateTime.now(), + ZonedDateTime.now()) + .execute(); + + savedCount++; + System.out.println( + "Successfully saved polygon #" + savedCount + " with geo_uid: " + geoUid); + + } catch (Exception e) { + System.err.println("Error saving polygon #" + (savedCount + 1) + ": " + e.getMessage()); + // 개별 polygon 저장 실패해도 계속 진행 + } + } + + if (savedCount == 0) { + throw new RuntimeException("Failed to save any polygons"); + } + + System.out.println( + "Successfully saved " + savedCount + "/" + request.getFeatures().size() + " polygon(s)"); + + } catch (Exception e) { + System.err.println("saveNewPolygon Error: " + e.getMessage()); + e.printStackTrace(); + throw new RuntimeException("Failed to save new polygons", e); + } + } + + @Override + public TrainingDataLabelDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + try { + // beforeYear COG URL 조회 + String beforeCogUrl = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where(imageryEntity.scene5k.eq(mapSheetNum), imageryEntity.year.eq(beforeYear)) + .fetchFirst(); + + // afterYear COG URL 조회 + String afterCogUrl = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where(imageryEntity.scene5k.eq(mapSheetNum), imageryEntity.year.eq(afterYear)) + .fetchFirst(); + + if (beforeCogUrl == null && afterCogUrl == null) { + throw new RuntimeException( + "COG images not found for mapSheetNum: " + + mapSheetNum + + ", years: " + + beforeYear + + ", " + + afterYear); + } + + return TrainingDataLabelDto.CogImageResponse.builder() + .beforeCogUrl(beforeCogUrl != null ? beforeCogUrl : "") + .afterCogUrl(afterCogUrl != null ? afterCogUrl : "") + .beforeYear(beforeYear) + .afterYear(afterYear) + .mapSheetNum(mapSheetNum) + .build(); + + } catch (Exception e) { + System.err.println("getCogImageUrl Error: " + e.getMessage()); + e.printStackTrace(); + throw new RuntimeException( + "Failed to get COG image URLs for mapSheetNum: " + + mapSheetNum + + ", years: " + + beforeYear + + ", " + + afterYear, + e); + } + } + private StringExpression makeCogUrl(NumberPath year) { return new CaseBuilder() .when(imageryEntity.year.eq(year)) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepository.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepository.java new file mode 100644 index 00000000..64f4df63 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepository.java @@ -0,0 +1,7 @@ +package com.kamco.cd.kamcoback.postgres.repository.trainingdata; + +import com.kamco.cd.kamcoback.postgres.entity.LabelingAssignmentEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TrainingDataReviewRepository + extends JpaRepository, TrainingDataReviewRepositoryCustom {} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java new file mode 100644 index 00000000..741035f5 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryCustom.java @@ -0,0 +1,40 @@ +package com.kamco.cd.kamcoback.postgres.repository.trainingdata; + +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DefaultPaging; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DetailRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.GeoFeatureRequest.Properties; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.SummaryRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.searchReq; +import java.util.UUID; +import org.locationtech.jts.geom.Geometry; +import org.springframework.data.domain.Page; + +public interface TrainingDataReviewRepositoryCustom { + + Page findReviewAssignedList(searchReq searchReq, String userId); + + ReviewGeometryInfo findReviewAssignedGeom(String operatorUid); + + Long findReviewOperatorGeoUid(String operatorUid); + + void updateReviewStateOperator(String operatorUid, String status, String memo); + + void updateReviewExceptState(Long inferenceGeomUid, String status); + + void updateReviewPolygonClass( + Long inferenceGeomUid, Geometry geometry, Properties properties, String status); + + SummaryRes getSummary(String userId); + + DetailRes getDetail(UUID operatorUid); + + DefaultPaging getDefaultPagingNumber(String userId, Integer size, String operatorUid); + + void saveNewPolygon(TrainingDataReviewDto.NewPolygonRequest request); + + TrainingDataReviewDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear); +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java new file mode 100644 index 00000000..7a25d32e --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/trainingdata/TrainingDataReviewRepositoryImpl.java @@ -0,0 +1,842 @@ +package com.kamco.cd.kamcoback.postgres.repository.trainingdata; + +import static com.kamco.cd.kamcoback.postgres.entity.QImageryEntity.imageryEntity; +import static com.kamco.cd.kamcoback.postgres.entity.QLabelingAssignmentEntity.labelingAssignmentEntity; +import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity.mapInkx5kEntity; +import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceGeomEntity.mapSheetAnalDataInferenceGeomEntity; +import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnDataGeomEntity.mapSheetLearnDataGeomEntity; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.InspectState; +import com.kamco.cd.kamcoback.postgres.entity.LabelingAssignmentEntity; +import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataInferenceGeomEntity; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ChangeDetectionInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ClassificationInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DefaultPaging; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DetailRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.GeoFeatureRequest.Properties; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.InferenceDataGeometry; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.InferenceDataGeometry.InferenceProperties; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.InspectionResultInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.LearnDataGeometry; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.LearnDataGeometry.LearnProperties; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.SummaryRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.searchReq; +import com.querydsl.core.Tuple; +import com.querydsl.core.types.Projections; +import com.querydsl.core.types.dsl.BooleanExpression; +import com.querydsl.core.types.dsl.CaseBuilder; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.core.types.dsl.NumberPath; +import com.querydsl.core.types.dsl.StringExpression; +import com.querydsl.jpa.impl.JPAQueryFactory; +import jakarta.persistence.EntityNotFoundException; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; +import lombok.extern.slf4j.Slf4j; +import org.locationtech.jts.geom.Geometry; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; + +@Slf4j +public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport + implements TrainingDataReviewRepositoryCustom { + + private final JPAQueryFactory queryFactory; + + public TrainingDataReviewRepositoryImpl(JPAQueryFactory queryFactory) { + super(LabelingAssignmentEntity.class); + this.queryFactory = queryFactory; + } + + @Override + public Page findReviewAssignedList(searchReq searchReq, String userId) { + + // 완료된 검수는 오늘만, 나머지는 전체 조회 + LocalDate today = LocalDate.now(ZoneId.of("Asia/Seoul")); + ZonedDateTime start = today.atStartOfDay(ZoneId.of("Asia/Seoul")); + ZonedDateTime end = start.plusDays(1); + + BooleanExpression doneToday = + labelingAssignmentEntity + .inspectState + .eq(InspectState.COMPLETE.getId()) + .and(labelingAssignmentEntity.inspectStatDttm.goe(start)) + .and(labelingAssignmentEntity.inspectStatDttm.lt(end)); + + BooleanExpression unconfirmOrExcept = + labelingAssignmentEntity.inspectState.in( + InspectState.EXCEPT.getId(), InspectState.UNCONFIRM.getId()); + + BooleanExpression dayStateCondition = doneToday.or(unconfirmOrExcept); + + Pageable pageable = PageRequest.of(searchReq.getPage(), searchReq.getSize()); + List list = + queryFactory + .select( + Projections.constructor( + ReviewListDto.class, + labelingAssignmentEntity.assignmentUid, + labelingAssignmentEntity.inferenceGeomUid, + labelingAssignmentEntity.inspectorUid, + labelingAssignmentEntity.inspectState, + labelingAssignmentEntity.assignGroupId, + mapInkx5kEntity.mapidNm, + mapSheetAnalDataInferenceGeomEntity.pnu)) + .from(labelingAssignmentEntity) + .innerJoin(mapSheetAnalDataInferenceGeomEntity) + .on( + labelingAssignmentEntity.inferenceGeomUid.eq( + mapSheetAnalDataInferenceGeomEntity.geoUid)) + .innerJoin(mapInkx5kEntity) + .on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo)) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + dayStateCondition, + labelingAssignmentEntity.workState.eq("DONE")) // 라벨링 완료된 것만 검수 대상 + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) + .orderBy( + labelingAssignmentEntity.createdDate.asc(), + labelingAssignmentEntity.inferenceGeomUid.asc()) + .fetch(); + + Long count = + Optional.ofNullable( + queryFactory + .select(labelingAssignmentEntity.assignmentUid.count()) + .from(labelingAssignmentEntity) + .innerJoin(mapSheetAnalDataInferenceGeomEntity) + .on( + labelingAssignmentEntity.inferenceGeomUid.eq( + mapSheetAnalDataInferenceGeomEntity.geoUid)) + .innerJoin(mapInkx5kEntity) + .on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo)) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + dayStateCondition, + labelingAssignmentEntity.workState.eq("DONE")) + .fetchOne()) + .orElse(0L); + + return new PageImpl<>(list, pageable, count); + } + + @Override + public ReviewGeometryInfo findReviewAssignedGeom(String operatorUid) { + return queryFactory + .select( + Projections.constructor( + ReviewGeometryInfo.class, + labelingAssignmentEntity.assignmentUid, + labelingAssignmentEntity.inferenceGeomUid, + Expressions.stringTemplate( + "ST_AsGeoJSON({0})", mapSheetAnalDataInferenceGeomEntity.geom), + makeCogUrl(mapSheetAnalDataInferenceGeomEntity.compareYyyy) + .max() + .as("beforeCogUrl"), + makeCogUrl(mapSheetAnalDataInferenceGeomEntity.targetYyyy).max().as("afterCogUrl"), + Expressions.stringTemplate("ST_AsGeoJSON({0})", mapInkx5kEntity.geom))) + .from(labelingAssignmentEntity) + .innerJoin(mapSheetAnalDataInferenceGeomEntity) + .on( + labelingAssignmentEntity.inferenceGeomUid.eq( + mapSheetAnalDataInferenceGeomEntity.geoUid)) + .innerJoin(mapInkx5kEntity) + .on(labelingAssignmentEntity.assignGroupId.eq(mapInkx5kEntity.mapidcdNo)) + .leftJoin(imageryEntity) + .on( + imageryEntity + .scene5k + .eq(labelingAssignmentEntity.assignGroupId) + .and( + imageryEntity + .year + .eq(mapSheetAnalDataInferenceGeomEntity.compareYyyy) + .or(imageryEntity.year.eq(mapSheetAnalDataInferenceGeomEntity.targetYyyy)))) + .where(labelingAssignmentEntity.assignmentUid.eq(UUID.fromString(operatorUid))) + .groupBy( + labelingAssignmentEntity.assignmentUid, + labelingAssignmentEntity.inferenceGeomUid, + labelingAssignmentEntity.inspectorUid, + labelingAssignmentEntity.inspectState, + labelingAssignmentEntity.assignGroupId, + mapInkx5kEntity.mapidNm, + mapSheetAnalDataInferenceGeomEntity.pnu, + mapSheetAnalDataInferenceGeomEntity.geom, + mapInkx5kEntity.geom) + .fetchOne(); + } + + @Override + public Long findReviewOperatorGeoUid(String operatorUid) { + return queryFactory + .select(labelingAssignmentEntity.inferenceGeomUid) + .from(labelingAssignmentEntity) + .where(labelingAssignmentEntity.assignmentUid.eq(UUID.fromString(operatorUid))) + .fetchOne(); + } + + @Override + public void updateReviewStateOperator(String operatorUid, String status, String memo) { + queryFactory + .update(labelingAssignmentEntity) + .set(labelingAssignmentEntity.inspectState, status) + .set(labelingAssignmentEntity.inspectStatDttm, ZonedDateTime.now()) + .where(labelingAssignmentEntity.assignmentUid.eq(UUID.fromString(operatorUid))) + .execute(); + } + + @Override + public void updateReviewExceptState(Long inferenceGeomUid, String status) { + // 검수 제외 시 assignment 테이블만 업데이트 + // (inference_geom 테이블에는 inspect_state 컬럼이 없음) + } + + @Override + public void updateReviewPolygonClass( + Long inferenceGeomUid, Geometry geometry, Properties properties, String status) { + // inference_geom 테이블 정보 가져오기 + MapSheetAnalDataInferenceGeomEntity entity = + queryFactory + .selectFrom(mapSheetAnalDataInferenceGeomEntity) + .where(mapSheetAnalDataInferenceGeomEntity.geoUid.eq(inferenceGeomUid)) + .fetchOne(); + + if (Objects.isNull(entity)) { + throw new EntityNotFoundException( + "MapSheetAnalDataInferenceGeomEntity not found for inferenceGeomUid: " + + inferenceGeomUid); + } + + // learn_data_geom 업데이트 또는 insert (검수 완료된 폴리곤 수정) + Long existingLearnGeomUid = + queryFactory + .select(mapSheetLearnDataGeomEntity.geoUid) + .from(mapSheetLearnDataGeomEntity) + .where(mapSheetLearnDataGeomEntity.geoUid.eq(inferenceGeomUid)) + .fetchOne(); + + if (existingLearnGeomUid != null) { + // 기존 데이터 업데이트 + queryFactory + .update(mapSheetLearnDataGeomEntity) + .set(mapSheetLearnDataGeomEntity.classAfterCd, properties.getAfterClass().toLowerCase()) + .set(mapSheetLearnDataGeomEntity.classBeforeCd, properties.getBeforeClass().toLowerCase()) + .set(mapSheetLearnDataGeomEntity.geom, geometry) + .set(mapSheetLearnDataGeomEntity.modifiedDate, ZonedDateTime.now()) + .where(mapSheetLearnDataGeomEntity.geoUid.eq(inferenceGeomUid)) + .execute(); + } else { + // 새로운 데이터 insert + queryFactory + .insert(mapSheetLearnDataGeomEntity) + .columns( + mapSheetLearnDataGeomEntity.geoUid, + mapSheetLearnDataGeomEntity.afterYyyy, + mapSheetLearnDataGeomEntity.beforeYyyy, + mapSheetLearnDataGeomEntity.classAfterCd, + mapSheetLearnDataGeomEntity.classBeforeCd, + mapSheetLearnDataGeomEntity.geom, + mapSheetLearnDataGeomEntity.createdDate, + mapSheetLearnDataGeomEntity.modifiedDate) + .values( + inferenceGeomUid, + entity.getTargetYyyy(), + entity.getCompareYyyy(), + properties.getAfterClass().toLowerCase(), + properties.getBeforeClass().toLowerCase(), + geometry, + ZonedDateTime.now(), + ZonedDateTime.now()) + .execute(); + } + } + + @Override + public SummaryRes getSummary(String userId) { + // 기본값 설정 + Long totalCnt = 0L; + Long undoneCnt = 0L; + Long todayCnt = 0L; + + try { + System.out.println("=== getSummary START (Review) ==="); + System.out.println("userId: " + userId); + + // 1. 전체 배정 건수 (라벨링 완료된 것만) + try { + Long result = + queryFactory + .select(labelingAssignmentEntity.count()) + .from(labelingAssignmentEntity) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + labelingAssignmentEntity.workState.eq("DONE")) + .fetchOne(); + + totalCnt = (result != null) ? result : 0L; + System.out.println("totalCnt: " + totalCnt); + } catch (Exception e) { + System.err.println( + "totalCnt query error: " + e.getClass().getName() + " - " + e.getMessage()); + if (e.getCause() != null) { + System.err.println("Caused by: " + e.getCause().getMessage()); + } + totalCnt = 0L; + } + + // 2. 미작업 건수 (UNCONFIRM 상태) + try { + Long result = + queryFactory + .select(labelingAssignmentEntity.count()) + .from(labelingAssignmentEntity) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + labelingAssignmentEntity.workState.eq("DONE"), + labelingAssignmentEntity.inspectState.eq("UNCONFIRM")) + .fetchOne(); + + undoneCnt = (result != null) ? result : 0L; + System.out.println("undoneCnt: " + undoneCnt); + } catch (Exception e) { + System.err.println( + "undoneCnt query error: " + e.getClass().getName() + " - " + e.getMessage()); + if (e.getCause() != null) { + System.err.println("Caused by: " + e.getCause().getMessage()); + } + undoneCnt = 0L; + } + + // 3. 오늘 완료 건수 + try { + // 오늘 날짜의 시작과 끝 시간 계산 + ZonedDateTime startOfToday = LocalDate.now().atStartOfDay(java.time.ZoneId.systemDefault()); + ZonedDateTime endOfToday = startOfToday.plusDays(1); + System.out.println("startOfToday: " + startOfToday); + System.out.println("endOfToday: " + endOfToday); + + Long result = + queryFactory + .select(labelingAssignmentEntity.count()) + .from(labelingAssignmentEntity) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + labelingAssignmentEntity.inspectState.eq("COMPLETE"), + labelingAssignmentEntity.inspectStatDttm.isNotNull(), + labelingAssignmentEntity.inspectStatDttm.goe(startOfToday), + labelingAssignmentEntity.inspectStatDttm.lt(endOfToday)) + .fetchOne(); + + todayCnt = (result != null) ? result : 0L; + System.out.println("todayCnt: " + todayCnt); + } catch (Exception e) { + System.err.println( + "todayCnt query error: " + e.getClass().getName() + " - " + e.getMessage()); + if (e.getCause() != null) { + System.err.println("Caused by: " + e.getCause().getMessage()); + } + todayCnt = 0L; + } + + System.out.println("=== getSummary END (Review) ==="); + System.out.println( + "Final result - totalCnt: " + + totalCnt + + ", undoneCnt: " + + undoneCnt + + ", todayCnt: " + + todayCnt); + + } catch (Exception e) { + // 최상위 예외 처리 + System.err.println("=== getSummary OUTER ERROR (Review) ==="); + System.err.println("Error: " + e.getClass().getName() + " - " + e.getMessage()); + if (e.getCause() != null) { + System.err.println("Caused by: " + e.getCause().getMessage()); + } + e.printStackTrace(); + } + + // 항상 정상 응답 반환 (예외를 throw하지 않음) + return SummaryRes.builder().totalCnt(totalCnt).undoneCnt(undoneCnt).todayCnt(todayCnt).build(); + } + + @Override + public DetailRes getDetail(UUID operatorUid) { + try { + // 1. 작업 배정 정보 조회 + var assignment = + queryFactory + .selectFrom(labelingAssignmentEntity) + .where(labelingAssignmentEntity.assignmentUid.eq(operatorUid)) + .fetchOne(); + + if (assignment == null) { + throw new RuntimeException("Assignment not found: " + operatorUid); + } + + // 2. 추론 결과 정보 조회 + var mapSheetAnalDataInferenceGeomEntityEntity = + queryFactory + .selectFrom(mapSheetAnalDataInferenceGeomEntity) + .where( + mapSheetAnalDataInferenceGeomEntity.geoUid.eq( + assignment.toDto().getInferenceGeomUid())) + .fetchOne(); + + if (mapSheetAnalDataInferenceGeomEntityEntity == null) { + throw new RuntimeException( + "Inference geometry not found: " + assignment.toDto().getInferenceGeomUid()); + } + + // 3. 도엽 정보 조회 + var mapSheetEntity = + queryFactory + .selectFrom(mapInkx5kEntity) + .where(mapInkx5kEntity.mapidcdNo.eq(assignment.toDto().getAssignGroupId())) + .fetchOne(); + + // 4. COG URL 조회 - imagery만 사용 + String beforeCogUrl = ""; + String afterCogUrl = ""; + + try { + var beforeImagery = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where( + imageryEntity.scene5k.eq(assignment.toDto().getAssignGroupId()), + imageryEntity.year.eq( + mapSheetAnalDataInferenceGeomEntityEntity.getCompareYyyy())) + .fetchFirst(); + beforeCogUrl = beforeImagery != null ? beforeImagery : ""; + + var afterImagery = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where( + imageryEntity.scene5k.eq(assignment.toDto().getAssignGroupId()), + imageryEntity.year.eq( + mapSheetAnalDataInferenceGeomEntityEntity.getTargetYyyy())) + .fetchFirst(); + afterCogUrl = afterImagery != null ? afterImagery : ""; + } catch (Exception e) { + System.err.println("COG URL retrieval error: " + e.getMessage()); + // COG URL 조회 실패 시 빈 문자열 유지 + } + + // 5. DTO 생성 + var changeDetectionInfo = + ChangeDetectionInfo.builder() + .mapSheetInfo(mapSheetEntity != null ? mapSheetEntity.getMapidNm() : "") + .detectionYear( + (mapSheetAnalDataInferenceGeomEntityEntity.getCompareYyyy() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getCompareYyyy() + : 0) + + "-" + + (mapSheetAnalDataInferenceGeomEntityEntity.getTargetYyyy() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getTargetYyyy() + : 0)) + .beforeClass( + ClassificationInfo.builder() + .classification( + mapSheetAnalDataInferenceGeomEntityEntity.getClassBeforeCd() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getClassBeforeCd() + : "") + .probability( + mapSheetAnalDataInferenceGeomEntityEntity.getClassBeforeProb() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getClassBeforeProb() + : 0.0) + .build()) + .afterClass( + ClassificationInfo.builder() + .classification( + mapSheetAnalDataInferenceGeomEntityEntity.getClassAfterCd() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getClassAfterCd() + : "") + .probability( + mapSheetAnalDataInferenceGeomEntityEntity.getClassAfterProb() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getClassAfterProb() + : 0.0) + .build()) + .area( + mapSheetAnalDataInferenceGeomEntityEntity.getArea() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getArea() + : 0.0) + .detectionAccuracy( + mapSheetAnalDataInferenceGeomEntityEntity.getCdProb() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getCdProb() + : 0.0) + .pnu( + mapSheetAnalDataInferenceGeomEntityEntity.getPnu() != null + ? mapSheetAnalDataInferenceGeomEntityEntity.getPnu() + : 0L) + .build(); + + var inspectionResultInfo = + InspectionResultInfo.builder() + .verificationResult(convertInspectState(assignment.toDto().getInspectState())) + .inappropriateReason("") + .memo("") + .build(); + + // 6. Geometry를 GeoJSON으로 변환 + InferenceDataGeometry inferData = + queryFactory + .select( + Projections.constructor( + InferenceDataGeometry.class, + Expressions.stringTemplate("{0}", "Feature"), + Expressions.stringTemplate( + "ST_AsGeoJSON({0})", mapSheetAnalDataInferenceGeomEntity.geom), + Projections.constructor( + InferenceProperties.class, + mapSheetAnalDataInferenceGeomEntity.classBeforeCd, + mapSheetAnalDataInferenceGeomEntity.classAfterCd))) + .from(mapSheetAnalDataInferenceGeomEntity) + .where( + mapSheetAnalDataInferenceGeomEntity.geoUid.eq( + mapSheetAnalDataInferenceGeomEntityEntity.getGeoUid())) + .fetchOne(); + + // 도엽 bbox json으로 가져오기 + JsonNode mapBbox = null; + if (mapSheetEntity.getGeom() != null) { + try { + String bboxString = + queryFactory + .select(Expressions.stringTemplate("ST_AsGeoJSON({0})", mapInkx5kEntity.geom)) + .from(mapInkx5kEntity) + .where(mapInkx5kEntity.mapidcdNo.eq(assignment.toDto().getAssignGroupId())) + .fetchOne(); + if (bboxString != null) { + ObjectMapper mapper = new ObjectMapper(); + mapBbox = mapper.readTree(bboxString); + } + } catch (Exception e) { + throw new RuntimeException("GeoJSON parsing error: " + e.getMessage()); + } + } + + // 7. 라벨링 저장한 Geometry들을 GeoJSON으로 변환 (여러 개 가능) + List learnDataList = + queryFactory + .select( + Projections.constructor( + LearnDataGeometry.class, + Expressions.stringTemplate("{0}", "Feature"), + Expressions.stringTemplate( + "ST_AsGeoJSON({0})", mapSheetLearnDataGeomEntity.geom), + Projections.constructor( + LearnProperties.class, + mapSheetLearnDataGeomEntity.classBeforeCd, + mapSheetLearnDataGeomEntity.classAfterCd))) + .from(mapSheetLearnDataGeomEntity) + .where( + mapSheetLearnDataGeomEntity.geoUid.eq( + mapSheetAnalDataInferenceGeomEntityEntity.getGeoUid())) + .fetch(); // fetchOne() -> fetch()로 변경 + + return DetailRes.builder() + .operatorUid(operatorUid) + .changeDetectionInfo(changeDetectionInfo) + .inspectionResultInfo(inspectionResultInfo) + .geom(inferData) + .beforeCogUrl(beforeCogUrl) + .afterCogUrl(afterCogUrl) + .mapBox(mapBbox) + .learnGeometries(learnDataList) // learnGeometry -> learnGeometries + .build(); + + } catch (Exception e) { + System.err.println("getDetail Error: " + e.getMessage()); + e.printStackTrace(); + throw new RuntimeException("Failed to get detail for operatorUid: " + operatorUid, e); + } + } + + @Override + public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String operatorUid) { + + ZoneId KST = ZoneId.of("Asia/Seoul"); + ZonedDateTime todayStart = ZonedDateTime.now(KST).toLocalDate().atStartOfDay(KST); + ZonedDateTime todayEnd = todayStart.plusDays(1); + + BooleanExpression doneToday = + labelingAssignmentEntity + .inspectState + .eq(InspectState.COMPLETE.getId()) + .and(labelingAssignmentEntity.inspectStatDttm.goe(todayStart)) + .and(labelingAssignmentEntity.inspectStatDttm.lt(todayEnd)); + + BooleanExpression unconfirmOrExcept = + labelingAssignmentEntity.inspectState.in( + InspectState.EXCEPT.getId(), InspectState.UNCONFIRM.getId()); + + BooleanExpression stateCondition = doneToday.or(unconfirmOrExcept); + + Tuple firstAssigned = + queryFactory + .select( + labelingAssignmentEntity.assignmentUid, + labelingAssignmentEntity.createdDate, + labelingAssignmentEntity.inferenceGeomUid) + .from(labelingAssignmentEntity) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + labelingAssignmentEntity.workState.eq("DONE"), + stateCondition, + operatorUid == null + ? labelingAssignmentEntity.inspectState.eq(InspectState.UNCONFIRM.getId()) + : labelingAssignmentEntity.assignmentUid.eq(UUID.fromString(operatorUid))) + .orderBy( + labelingAssignmentEntity.createdDate.asc(), + labelingAssignmentEntity.inferenceGeomUid.asc()) + .limit(1) + .fetchOne(); + + if (firstAssigned == null) { + return DefaultPaging.builder().page(0).operatorUid(null).build(); + } + + UUID firstAssignedUid = firstAssigned.get(labelingAssignmentEntity.assignmentUid); + ZonedDateTime createdDttm = firstAssigned.get(labelingAssignmentEntity.createdDate); + Long inferenceGeomUid = firstAssigned.get(labelingAssignmentEntity.inferenceGeomUid); + + BooleanExpression beforeCondition = + labelingAssignmentEntity + .createdDate + .lt(createdDttm) + .or( + labelingAssignmentEntity + .createdDate + .eq(createdDttm) + .and(labelingAssignmentEntity.inferenceGeomUid.lt(inferenceGeomUid))); + + Long beforeCnt = + queryFactory + .select(labelingAssignmentEntity.count()) + .from(labelingAssignmentEntity) + .where( + labelingAssignmentEntity.inspectorUid.eq(userId), + labelingAssignmentEntity.workState.eq("DONE"), + beforeCondition.and(stateCondition)) + .fetchOne(); + + int page = (int) (beforeCnt / size); // 기본 사이즈 20 + return DefaultPaging.builder().page(page).operatorUid(firstAssignedUid).build(); + } + + @Override + public void saveNewPolygon(TrainingDataReviewDto.NewPolygonRequest request) { + try { + if (request.getFeatures() == null || request.getFeatures().isEmpty()) { + throw new RuntimeException("No polygons to save"); + } + + System.out.println( + "Saving " + + request.getFeatures().size() + + " new polygon(s) for mapSheetNum: " + + request.getMapSheetNum()); + + int savedCount = 0; + for (TrainingDataReviewDto.NewPolygonRequest.PolygonFeature feature : request.getFeatures()) { + try { + // 1. map_sheet_anal_data_inference_geom 테이블에 새 polygon 삽입 + queryFactory + .insert(mapSheetAnalDataInferenceGeomEntity) + .columns( + mapSheetAnalDataInferenceGeomEntity.geom, + mapSheetAnalDataInferenceGeomEntity.compareYyyy, + mapSheetAnalDataInferenceGeomEntity.targetYyyy, + mapSheetAnalDataInferenceGeomEntity.classBeforeCd, + mapSheetAnalDataInferenceGeomEntity.classAfterCd, + mapSheetAnalDataInferenceGeomEntity.createdDttm, + mapSheetAnalDataInferenceGeomEntity.updatedDttm, + mapSheetAnalDataInferenceGeomEntity.labelState) + .values( + feature.getGeometry(), + request.getCompareYyyy(), + request.getTargetYyyy(), + feature.getProperties().getBeforeClass().toLowerCase(), + feature.getProperties().getAfterClass().toLowerCase(), + ZonedDateTime.now(), + ZonedDateTime.now(), + "DONE") + .execute(); + + // 2. 생성된 geoUid 조회 + Long geoUid = + queryFactory + .select(mapSheetAnalDataInferenceGeomEntity.geoUid) + .from(mapSheetAnalDataInferenceGeomEntity) + .where( + mapSheetAnalDataInferenceGeomEntity.geom.eq(feature.getGeometry()), + mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(request.getCompareYyyy()), + mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy())) + .orderBy(mapSheetAnalDataInferenceGeomEntity.geoUid.desc()) + .fetchFirst(); + + if (geoUid == null) { + System.err.println("Failed to get geo_uid for polygon #" + (savedCount + 1)); + continue; + } + + // 3. learn_data_geom 테이블에도 삽입 + queryFactory + .insert(mapSheetLearnDataGeomEntity) + .columns( + mapSheetLearnDataGeomEntity.geoUid, + mapSheetLearnDataGeomEntity.afterYyyy, + mapSheetLearnDataGeomEntity.beforeYyyy, + mapSheetLearnDataGeomEntity.classAfterCd, + mapSheetLearnDataGeomEntity.classBeforeCd, + mapSheetLearnDataGeomEntity.geom, + mapSheetLearnDataGeomEntity.createdDate, + mapSheetLearnDataGeomEntity.modifiedDate) + .values( + geoUid, + request.getTargetYyyy(), + request.getCompareYyyy(), + feature.getProperties().getAfterClass().toLowerCase(), + feature.getProperties().getBeforeClass().toLowerCase(), + feature.getGeometry(), + ZonedDateTime.now(), + ZonedDateTime.now()) + .execute(); + + savedCount++; + System.out.println( + "Successfully saved polygon #" + savedCount + " with geo_uid: " + geoUid); + + } catch (Exception e) { + System.err.println("Error saving polygon #" + (savedCount + 1) + ": " + e.getMessage()); + // 개별 polygon 저장 실패해도 계속 진행 + } + } + + if (savedCount == 0) { + throw new RuntimeException("Failed to save any polygons"); + } + + System.out.println( + "Successfully saved " + savedCount + "/" + request.getFeatures().size() + " polygon(s)"); + + } catch (Exception e) { + System.err.println("saveNewPolygon Error: " + e.getMessage()); + e.printStackTrace(); + throw new RuntimeException("Failed to save new polygons", e); + } + } + + @Override + public TrainingDataReviewDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + try { + // beforeYear COG URL 조회 + String beforeCogUrl = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where(imageryEntity.scene5k.eq(mapSheetNum), imageryEntity.year.eq(beforeYear)) + .fetchFirst(); + + // afterYear COG URL 조회 + String afterCogUrl = + queryFactory + .select( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .from(imageryEntity) + .where(imageryEntity.scene5k.eq(mapSheetNum), imageryEntity.year.eq(afterYear)) + .fetchFirst(); + + if (beforeCogUrl == null && afterCogUrl == null) { + throw new RuntimeException( + "COG images not found for mapSheetNum: " + + mapSheetNum + + ", years: " + + beforeYear + + ", " + + afterYear); + } + + return TrainingDataReviewDto.CogImageResponse.builder() + .beforeCogUrl(beforeCogUrl != null ? beforeCogUrl : "") + .afterCogUrl(afterCogUrl != null ? afterCogUrl : "") + .beforeYear(beforeYear) + .afterYear(afterYear) + .mapSheetNum(mapSheetNum) + .build(); + + } catch (Exception e) { + System.err.println("getCogImageUrl Error: " + e.getMessage()); + e.printStackTrace(); + throw new RuntimeException( + "Failed to get COG image URLs for mapSheetNum: " + + mapSheetNum + + ", years: " + + beforeYear + + ", " + + afterYear, + e); + } + } + + private StringExpression makeCogUrl(NumberPath year) { + return new CaseBuilder() + .when(imageryEntity.year.eq(year)) + .then( + Expressions.stringTemplate( + "{0} || {1}", imageryEntity.cogMiddlePath, imageryEntity.cogFilename)) + .otherwise(""); + } + + private BooleanExpression statusInInspectState(String status) { + if (Objects.isNull(status)) { + return null; + } + + String[] arrStatus = status.split(","); + return labelingAssignmentEntity.inspectState.in(arrStatus); + } + + private String convertInspectState(String inspectState) { + if (inspectState == null) { + return "미확인"; + } + switch (inspectState) { + case "UNCONFIRM": + return "미확인"; + case "EXCEPT": + return "제외"; + case "COMPLETE": + return "완료"; + default: + return "미확인"; + } + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataLabelApiController.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataLabelApiController.java index 62dad56b..e08df44a 100644 --- a/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataLabelApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataLabelApiController.java @@ -182,4 +182,163 @@ public class TrainingDataLabelApiController { return ApiResponseDto.ok( trainingDataLabelService.getDefaultPagingNumber(userId, size, assignmentUid)); } + + @Operation( + summary = "새로운 polygon(들) 추가 저장", + description = "탐지결과 외 새로운 polygon을 추가로 저장합니다. 단일 또는 여러 개를 저장할 수 있습니다.") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "저장 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseObj.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @PostMapping("/new-polygon") + public ApiResponseDto saveNewPolygon( + @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "새로운 polygon 저장 요청", + required = true, + content = + @Content( + mediaType = "application/json", + schema = + @Schema(implementation = TrainingDataLabelDto.NewPolygonRequest.class), + examples = { + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "1개 polygon 저장", + value = + """ + { + "assignmentUid": "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02", + "analUid": 53, + "mapSheetNum": "35905086", + "compareYyyy": 2023, + "targetYyyy": 2024, + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.663, 34.588], + [126.662, 34.587], + [126.664, 34.589], + [126.663, 34.588] + ] + ] + }, + "properties": { + "beforeClass": "WASTE", + "afterClass": "LAND" + } + } + ] + } + """), + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "3개 polygon 저장", + value = + """ + { + "assignmentUid": "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02", + "analUid": 53, + "mapSheetNum": "35905086", + "compareYyyy": 2023, + "targetYyyy": 2024, + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.663, 34.588], + [126.662, 34.587], + [126.664, 34.589], + [126.663, 34.588] + ] + ] + }, + "properties": { + "beforeClass": "WASTE", + "afterClass": "LAND" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.665, 34.590], + [126.664, 34.589], + [126.666, 34.591], + [126.665, 34.590] + ] + ] + }, + "properties": { + "beforeClass": "FOREST", + "afterClass": "BUILDING" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.667, 34.592], + [126.666, 34.591], + [126.668, 34.593], + [126.667, 34.592] + ] + ] + }, + "properties": { + "beforeClass": "FARMLAND", + "afterClass": "SOLAR_PANEL" + } + } + ] + } + """) + })) + @RequestBody + TrainingDataLabelDto.NewPolygonRequest request) { + return ApiResponseDto.okObject(trainingDataLabelService.saveNewPolygon(request)); + } + + + @Operation(summary = "COG 이미지 URL 조회", description = "변화 전/후 COG 이미지 URL을 함께 조회합니다") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = + @Schema(implementation = TrainingDataLabelDto.CogImageResponse.class))), + @ApiResponse(responseCode = "404", description = "이미지를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/cog-image") + public ApiResponseDto getCogImageUrl( + @Parameter(description = "도엽번호", required = true, example = "35905086") @RequestParam + String mapSheetNum, + @Parameter(description = "변화 전 년도", required = true, example = "2023") @RequestParam + Integer beforeYear, + @Parameter(description = "변화 후 년도", required = true, example = "2024") @RequestParam + Integer afterYear) { + return ApiResponseDto.ok( + trainingDataLabelService.getCogImageUrl(mapSheetNum, beforeYear, afterYear)); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataReviewApiController.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataReviewApiController.java new file mode 100644 index 00000000..e206b1a3 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/TrainingDataReviewApiController.java @@ -0,0 +1,343 @@ +package com.kamco.cd.kamcoback.trainingdata; + +import com.kamco.cd.kamcoback.code.dto.CommonCodeDto; +import com.kamco.cd.kamcoback.config.api.ApiResponseDto; +import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ResponseObj; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto; +import com.kamco.cd.kamcoback.trainingdata.service.TrainingDataReviewService; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "라벨링 툴 > 검수자", description = "라벨링 툴 > 검수자 API") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/training-data/review") +public class TrainingDataReviewApiController { + + private final TrainingDataReviewService trainingDataReviewService; + + @Operation(summary = "목록 조회", description = "검수 할당 목록 조회") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = CommonCodeDto.Basic.class))), + @ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping + public ApiResponseDto> findReviewAssignedList( + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "20") int size, + @RequestParam(defaultValue = "01022223333") String userId) { + TrainingDataReviewDto.searchReq searchReq = new TrainingDataReviewDto.searchReq(page, size, ""); + return ApiResponseDto.ok(trainingDataReviewService.findReviewAssignedList(searchReq, userId)); + } + + @Hidden + @Operation(summary = "상세 Geometry 조회", description = "검수 할당 상세 Geometry 조회") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = CommonCodeDto.Basic.class))), + @ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/geom-info") + public ApiResponseDto findReviewAssignedGeom( + @RequestParam(defaultValue = "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02") String operatorUid) { + return ApiResponseDto.ok(trainingDataReviewService.findReviewAssignedGeom(operatorUid)); + } + + @Operation(summary = "검수 결과 저장", description = "검수 결과 저장") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = CommonCodeDto.Basic.class))), + @ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @PostMapping + public ApiResponseDto saveReviewFeature( + @RequestBody TrainingDataReviewDto.GeoFeatureRequest request) { + return ApiResponseDto.okObject(trainingDataReviewService.saveReviewFeature(request)); + } + + @Operation(summary = "작업 통계 조회", description = "검수자의 작업 현황 통계를 조회합니다. (전체/미작업/Today 건수)") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = TrainingDataReviewDto.SummaryRes.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/summary") + public ApiResponseDto getSummary( + @io.swagger.v3.oas.annotations.Parameter( + description = "검수자 사번", + required = true, + example = "01022223333") + @RequestParam + String userId) { + try { + System.out.println("[Controller] getSummary called with userId: " + userId); + TrainingDataReviewDto.SummaryRes result = trainingDataReviewService.getSummary(userId); + System.out.println("[Controller] getSummary result: " + result); + return ApiResponseDto.ok(result); + } catch (Exception e) { + System.err.println("[Controller] getSummary ERROR: " + e.getMessage()); + e.printStackTrace(); + // 예외 발생 시에도 빈 통계 반환 + return ApiResponseDto.ok( + TrainingDataReviewDto.SummaryRes.builder() + .totalCnt(0L) + .undoneCnt(0L) + .todayCnt(0L) + .build()); + } + } + + @Operation(summary = "변화탐지정보 및 실태조사결과 조회", description = "선택한 작업의 변화탐지정보 및 실태조사결과를 조회합니다.") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = TrainingDataReviewDto.DetailRes.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "404", description = "데이터를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/detail") + public ApiResponseDto getDetail( + @io.swagger.v3.oas.annotations.Parameter( + description = "검수 작업 ID (UUID)", + required = true, + example = "93c56be8-0246-4b22-b976-2476549733cc") + @RequestParam + java.util.UUID operatorUid) { + return ApiResponseDto.ok(trainingDataReviewService.getDetail(operatorUid)); + } + + @Operation(summary = "검수자 기본 page number 제공", description = "검수자 기본 page number 제공") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = TrainingDataReviewDto.DetailRes.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "404", description = "데이터를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/default-page") + public ApiResponseDto getDefaultPagingNumber( + @Parameter(description = "사번", example = "01022223333") @RequestParam String userId, + @Parameter(description = "페이징 사이즈", example = "20") @RequestParam(defaultValue = "20") + Integer size, + @Parameter(description = "개별 UUID", example = "79bcdbbe-6ed4-4caa-b4a4-22f3cf2f9d25") + @RequestParam(required = false) + String operatorUid) { + return ApiResponseDto.ok( + trainingDataReviewService.getDefaultPagingNumber(userId, size, operatorUid)); + } + + @Operation( + summary = "새로운 polygon(들) 추가 저장", + description = "탐지결과 외 새로운 polygon을 추가로 저장합니다. 단일 또는 여러 개를 저장할 수 있습니다.") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "저장 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = ResponseObj.class))), + @ApiResponse(responseCode = "400", description = "잘못된 요청", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @PostMapping("/new-polygon") + public ApiResponseDto saveNewPolygon( + @io.swagger.v3.oas.annotations.parameters.RequestBody( + description = "새로운 polygon 저장 요청", + required = true, + content = + @Content( + mediaType = "application/json", + schema = + @Schema(implementation = TrainingDataReviewDto.NewPolygonRequest.class), + examples = { + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "1개 polygon 저장", + value = + """ + { + "operatorUid": "93c56be8-0246-4b22-b976-2476549733cc", + "analUid": 53, + "mapSheetNum": "35905086", + "compareYyyy": 2023, + "targetYyyy": 2024, + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.663, 34.588], + [126.662, 34.587], + [126.664, 34.589], + [126.663, 34.588] + ] + ] + }, + "properties": { + "beforeClass": "WASTE", + "afterClass": "LAND" + } + } + ] + } + """), + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "3개 polygon 저장", + value = + """ + { + "operatorUid": "93c56be8-0246-4b22-b976-2476549733cc", + "analUid": 53, + "mapSheetNum": "35905086", + "compareYyyy": 2023, + "targetYyyy": 2024, + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.663, 34.588], + [126.662, 34.587], + [126.664, 34.589], + [126.663, 34.588] + ] + ] + }, + "properties": { + "beforeClass": "WASTE", + "afterClass": "LAND" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.665, 34.590], + [126.664, 34.589], + [126.666, 34.591], + [126.665, 34.590] + ] + ] + }, + "properties": { + "beforeClass": "FOREST", + "afterClass": "BUILDING" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [126.667, 34.592], + [126.666, 34.591], + [126.668, 34.593], + [126.667, 34.592] + ] + ] + }, + "properties": { + "beforeClass": "FARMLAND", + "afterClass": "SOLAR_PANEL" + } + } + ] + } + """) + })) + @RequestBody + TrainingDataReviewDto.NewPolygonRequest request) { + return ApiResponseDto.okObject(trainingDataReviewService.saveNewPolygon(request)); + } + + @Operation(summary = "COG 이미지 URL 조회", description = "변화 전/후 COG 이미지 URL을 함께 조회합니다") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "조회 성공", + content = + @Content( + mediaType = "application/json", + schema = + @Schema(implementation = TrainingDataReviewDto.CogImageResponse.class))), + @ApiResponse(responseCode = "404", description = "이미지를 찾을 수 없음", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/cog-image") + public ApiResponseDto getCogImageUrl( + @Parameter(description = "도엽번호", required = true, example = "35905086") @RequestParam + String mapSheetNum, + @Parameter(description = "변화 전 년도", required = true, example = "2023") @RequestParam + Integer beforeYear, + @Parameter(description = "변화 후 년도", required = true, example = "2024") @RequestParam + Integer afterYear) { + return ApiResponseDto.ok( + trainingDataReviewService.getCogImageUrl(mapSheetNum, beforeYear, afterYear)); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataLabelDto.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataLabelDto.java index 8671e324..83b5f13d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataLabelDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataLabelDto.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.node.ObjectNode; import com.kamco.cd.kamcoback.common.utils.geometry.GeometryDeserializer; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; import java.util.UUID; import lombok.AllArgsConstructor; import lombok.Builder; @@ -298,8 +299,8 @@ public class TrainingDataLabelDto { @Schema(description = "도엽 bbox") private JsonNode mapBox; - @Schema(description = "라벨링 툴에서 그린 폴리곤") - private LearnDataGeometry learnGeometry; + @Schema(description = "라벨링 툴에서 그린 폴리곤들 (여러 개 가능)") + private List learnGeometries; } @Schema(name = "ChangeDetectionInfo", description = "변화탐지정보") @@ -394,4 +395,133 @@ public class TrainingDataLabelDto { private int page; private UUID assignmentUid; } + + @Schema(name = "NewPolygonRequest", description = "새로운 polygon(들) 추가 저장") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class NewPolygonRequest { + + @Schema(description = "assignmentUid", example = "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02") + private String assignmentUid; + + @Schema(description = "anal_uid", example = "1") + private Long analUid; + + @Schema(description = "map_sheet_num (도엽번호)", example = "NI52-3-13-1") + private String mapSheetNum; + + @Schema(description = "compare_yyyy (변화 전 년도)", example = "2022") + private Integer compareYyyy; + + @Schema(description = "target_yyyy (변화 후 년도)", example = "2023") + private Integer targetYyyy; + + @Schema(description = "새로 그린 polygon 리스트") + private List features; + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class PolygonFeature { + + @Schema(description = "type", example = "Feature") + private String type; + + @JsonDeserialize(using = GeometryDeserializer.class) + @Schema( + description = "polygon geometry", + example = + """ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 126.66292461969202, + 34.58785236216609 + ], + [ + 126.66263801099049, + 34.58740117447532 + ], + [ + 126.66293668521236, + 34.5873904146878 + ], + [ + 126.66312820122245, + 34.587841464427825 + ], + [ + 126.66289124481979, + 34.58786048381633 + ], + [ + 126.66292461969202, + 34.58785236216609 + ] + ] + ] + } + """) + private Geometry geometry; + + @Schema(description = "polygon properties") + private PolygonProperties properties; + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class PolygonProperties { + + @Schema(description = "beforeClass", example = "WASTE") + private String beforeClass; + + @Schema(description = "afterClass", example = "LAND") + private String afterClass; + } + } + } + + @Schema(name = "CogImageRequest", description = "COG 이미지 조회 요청") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class CogImageRequest { + + @Schema(description = "map_sheet_num (도엽번호)", example = "NI52-3-13-1", required = true) + private String mapSheetNum; + + @Schema(description = "year (년도)", example = "2022", required = true) + private Integer year; + } + + @Schema(name = "CogImageResponse", description = "COG 이미지 URL 응답") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class CogImageResponse { + + @Schema(description = "변화 전 COG 이미지 URL") + private String beforeCogUrl; + + @Schema(description = "변화 후 COG 이미지 URL") + private String afterCogUrl; + + @Schema(description = "변화 전 년도") + private Integer beforeYear; + + @Schema(description = "변화 후 년도") + private Integer afterYear; + + @Schema(description = "도엽번호") + private String mapSheetNum; + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataReviewDto.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataReviewDto.java new file mode 100644 index 00000000..a82b7c53 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/dto/TrainingDataReviewDto.java @@ -0,0 +1,533 @@ +package com.kamco.cd.kamcoback.trainingdata.dto; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.kamco.cd.kamcoback.common.utils.geometry.GeometryDeserializer; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; +import java.util.UUID; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.locationtech.jts.geom.Geometry; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; + +public class TrainingDataReviewDto { + + @Schema(name = "ReviewListDto", description = "ReviewListDto") + @Getter + @Setter + @NoArgsConstructor + public static class ReviewListDto { + + private UUID operatorUid; + private Long inferenceGeomUid; + private String inspectorUid; + private String inspectState; + private String mapSheetNum; + private String mapIdNm; + private Long pnu; + + public ReviewListDto( + UUID operatorUid, + Long inferenceGeomUid, + String inspectorUid, + String inspectState, + String mapSheetNum, + String mapIdNm, + Long pnu) { + this.operatorUid = operatorUid; + this.inferenceGeomUid = inferenceGeomUid; + this.inspectorUid = inspectorUid; + this.inspectState = inspectState; + this.mapSheetNum = mapSheetNum; + this.mapIdNm = mapIdNm; + this.pnu = pnu; + } + } + + @Schema(name = "ReviewGeometryInfo", description = "ReviewGeometryInfo") + @Getter + @Setter + @NoArgsConstructor + public static class ReviewGeometryInfo { + + private UUID operatorUid; + private Long inferenceGeomUid; + @JsonIgnore private String geomData; // json string + private JsonNode geom; + private String beforeCogUrl; + private String afterCogUrl; + @JsonIgnore private String mapBboxString; // json string + private JsonNode mapBbox; + + public ReviewGeometryInfo( + UUID operatorUid, + Long inferenceGeomUid, + String geomData, + String beforeCogUrl, + String afterCogUrl, + String mapBboxString) { + this.operatorUid = operatorUid; + this.inferenceGeomUid = inferenceGeomUid; + this.beforeCogUrl = beforeCogUrl; + this.afterCogUrl = afterCogUrl; + + ObjectMapper mapper = new ObjectMapper(); + JsonNode geomJson; + JsonNode mapBboxJson; + try { + geomJson = mapper.readTree(geomData); + mapBboxJson = mapper.readTree(mapBboxString); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + + this.geom = geomJson; + this.mapBbox = mapBboxJson; + } + } + + @Schema(name = "GeoFeatureRequest", description = "검수 결과 저장") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class GeoFeatureRequest { + + @Schema(description = "operatorUid", example = "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02") + private String operatorUid; + + @Schema(description = "type", example = "Feature") + private String type; + + @JsonDeserialize(using = GeometryDeserializer.class) + @Schema( + description = "검수 결과 polygon", + example = + """ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 126.66292461969202, + 34.58785236216609 + ], + [ + 126.66263801099049, + 34.58740117447532 + ], + [ + 126.66293668521236, + 34.5873904146878 + ], + [ + 126.66312820122245, + 34.587841464427825 + ], + [ + 126.66289124481979, + 34.58786048381633 + ], + [ + 126.66292461969202, + 34.58785236216609 + ] + ] + ] + } + """) + private Geometry geometry; + + private Properties properties; + + @Getter + public static class Properties { + + @Schema(description = "beforeClass", example = "WASTE") + private String beforeClass; + + @Schema(description = "afterClass", example = "LAND") + private String afterClass; + + @Schema(description = "inspectState", example = "COMPLETE") + private String inspectState; + + @Schema(description = "inspectMemo", example = "검수 완료") + private String inspectMemo; + } + } + + @Schema(name = "InferenceDataGeometry", description = "InferenceDataGeometry") + @Getter + @Setter + @NoArgsConstructor + public static class InferenceDataGeometry { + + private String type; + @JsonIgnore private String learnGeomString; + private JsonNode geometry; + private InferenceProperties properties; + + public InferenceDataGeometry( + String type, String learnGeomString, InferenceProperties properties) { + this.type = type; + this.properties = properties; + ObjectMapper mapper = new ObjectMapper(); + JsonNode inferenceJson; + try { + inferenceJson = mapper.readTree(learnGeomString); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + this.geometry = inferenceJson; + + if (inferenceJson.isObject()) { + ((ObjectNode) inferenceJson).remove("crs"); + } + } + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class InferenceProperties { + + @Schema(description = "beforeClass", example = "WASTE") + private String beforeClass; + + @Schema(description = "afterClass", example = "LAND") + private String afterClass; + } + } + + @Schema(name = "LearnDataGeometry", description = "LearnDataGeometry") + @Getter + @Setter + @NoArgsConstructor + public static class LearnDataGeometry { + + private String type; + @JsonIgnore private String learnGeomString; + private JsonNode geometry; + private LearnProperties properties; + + public LearnDataGeometry(String type, String learnGeomString, LearnProperties properties) { + this.type = type; + this.properties = properties; + ObjectMapper mapper = new ObjectMapper(); + JsonNode learnJson; + try { + learnJson = mapper.readTree(learnGeomString); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + this.geometry = learnJson; + + if (learnJson.isObject()) { + ((ObjectNode) learnJson).remove("crs"); + } + } + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class LearnProperties { + + @Schema(description = "beforeClass", example = "WASTE") + private String beforeClass; + + @Schema(description = "afterClass", example = "LAND") + private String afterClass; + } + } + + @Schema(name = "searchReq", description = "검색 요청") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class searchReq { + + // 페이징 파라미터 + private int page = 0; + private int size = 20; + private String sort; + + public Pageable toPageable() { + if (sort != null && !sort.isEmpty()) { + String[] sortParams = sort.split(","); + String property = sortParams[0]; + Sort.Direction direction = + sortParams.length > 1 ? Sort.Direction.fromString(sortParams[1]) : Sort.Direction.ASC; + return PageRequest.of(page, size, Sort.by(direction, property)); + } + return PageRequest.of(page, size); + } + } + + @Schema(name = "DetailRes", description = "객체 상세 정보 응답") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class DetailRes { + + @Schema(description = "검수 작업 ID") + private UUID operatorUid; + + @Schema(description = "변화탐지정보") + private ChangeDetectionInfo changeDetectionInfo; + + @Schema(description = "실태조사결과정보") + private InspectionResultInfo inspectionResultInfo; + + @Schema(description = "Geometry (GeoJSON)") + private InferenceDataGeometry geom; + + @Schema(description = "변화 전 COG 이미지 URL") + private String beforeCogUrl; + + @Schema(description = "변화 후 COG 이미지 URL") + private String afterCogUrl; + + @Schema(description = "도엽 bbox") + private JsonNode mapBox; + + @Schema(description = "검수 시 추가/수정한 폴리곤들 (여러 개 가능)") + private List learnGeometries; + } + + @Schema(name = "ChangeDetectionInfo", description = "변화탐지정보") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class ChangeDetectionInfo { + + @Schema(description = "도엽번호정보", example = "남해") + private String mapSheetInfo; + + @Schema(description = "변화탐지연도", example = "2022-2023") + private String detectionYear; + + @Schema(description = "변화 전 분류 정보") + private ClassificationInfo beforeClass; + + @Schema(description = "변화 후 분류 정보") + private ClassificationInfo afterClass; + + @Schema(description = "면적 (㎡)", example = "179.52") + private Double area; + + @Schema(description = "탐지정확도 (%)", example = "84.8") + private Double detectionAccuracy; + + @Schema(description = "PNU (필지고유번호)", example = "36221202306020") + private Long pnu; + } + + @Schema(name = "ClassificationInfo", description = "분류정보") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class ClassificationInfo { + + @Schema(description = "분류", example = "일반토지") + private String classification; + + @Schema(description = "확률", example = "80.0") + private Double probability; + } + + @Schema(name = "InspectionResultInfo", description = "실태조사결과정보") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class InspectionResultInfo { + + @Schema(description = "검증결과 (미확인/제외/완료)", example = "미확인") + private String verificationResult; + + @Schema(description = "부적합사유") + private String inappropriateReason; + + @Schema(description = "메모") + private String memo; + } + + @Schema(name = "SummaryRes", description = "작업 통계 응답") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class SummaryRes { + + @Schema(description = "전체 배정 건수", example = "8901") + private Long totalCnt; + + @Schema(description = "미작업 건수 (UNCONFIRM 상태)", example = "7211") + private Long undoneCnt; + + @Schema(description = "오늘 완료 건수", example = "0") + private Long todayCnt; + } + + @Schema(name = "DefaultPaging", description = "페이징 기본 number, uuid 전달") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class DefaultPaging { + + private int page; + private UUID operatorUid; + } + + @Schema(name = "NewPolygonRequest", description = "새로운 polygon(들) 추가 저장") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class NewPolygonRequest { + + @Schema(description = "operatorUid", example = "4f9ebc8b-6635-4177-b42f-7efc9c7b4c02") + private String operatorUid; + + @Schema(description = "anal_uid", example = "53") + private Long analUid; + + @Schema(description = "map_sheet_num (도엽번호)", example = "35905086") + private String mapSheetNum; + + @Schema(description = "compare_yyyy (변화 전 년도)", example = "2023") + private Integer compareYyyy; + + @Schema(description = "target_yyyy (변화 후 년도)", example = "2024") + private Integer targetYyyy; + + @Schema(description = "새로 그린 polygon 리스트") + private List features; + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class PolygonFeature { + + @Schema(description = "type", example = "Feature") + private String type; + + @JsonDeserialize(using = GeometryDeserializer.class) + @Schema( + description = "polygon geometry", + example = + """ + { + "type": "Polygon", + "coordinates": [ + [ + [ + 126.66292461969202, + 34.58785236216609 + ], + [ + 126.66263801099049, + 34.58740117447532 + ], + [ + 126.66293668521236, + 34.5873904146878 + ], + [ + 126.66312820122245, + 34.587841464427825 + ], + [ + 126.66289124481979, + 34.58786048381633 + ], + [ + 126.66292461969202, + 34.58785236216609 + ] + ] + ] + } + """) + private Geometry geometry; + + @Schema(description = "polygon properties") + private PolygonProperties properties; + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class PolygonProperties { + + @Schema(description = "beforeClass", example = "WASTE") + private String beforeClass; + + @Schema(description = "afterClass", example = "LAND") + private String afterClass; + } + } + } + + @Schema(name = "CogImageRequest", description = "COG 이미지 조회 요청") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class CogImageRequest { + + @Schema(description = "map_sheet_num (도엽번호)", example = "NI52-3-13-1", required = true) + private String mapSheetNum; + + @Schema(description = "year (년도)", example = "2022", required = true) + private Integer year; + } + + @Schema(name = "CogImageResponse", description = "COG 이미지 URL 응답") + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class CogImageResponse { + + @Schema(description = "변화 전 COG 이미지 URL") + private String beforeCogUrl; + + @Schema(description = "변화 후 COG 이미지 URL") + private String afterCogUrl; + + @Schema(description = "변화 전 년도") + private Integer beforeYear; + + @Schema(description = "변화 후 년도") + private Integer afterYear; + + @Schema(description = "도엽번호") + private String mapSheetNum; + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataLabelService.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataLabelService.java index f2d7b9ab..159e3d2a 100644 --- a/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataLabelService.java +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataLabelService.java @@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.trainingdata.service; import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ApiResponseCode; import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ResponseObj; import com.kamco.cd.kamcoback.postgres.core.TrainingDataLabelCoreService; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DefaultPaging; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DetailRes; import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.GeoFeatureRequest; @@ -87,4 +88,30 @@ public class TrainingDataLabelService { public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String assignmentUid) { return trainingDataLabelCoreService.getDefaultPagingNumber(userId, size, assignmentUid); } + + /** + * 새로운 polygon(들) 추가 저장 + * + * @param request 새 polygon 정보 (여러 개 가능) + * @return 응답 메시지 + */ + @Transactional + public ResponseObj saveNewPolygon(TrainingDataLabelDto.NewPolygonRequest request) { + trainingDataLabelCoreService.saveNewPolygon(request); + int count = request.getFeatures() != null ? request.getFeatures().size() : 0; + return new ResponseObj(ApiResponseCode.OK, count + "개의 polygon이 저장되었습니다."); + } + + /** + * COG 이미지 URL 조회 (변화 전/후) + * + * @param mapSheetNum 도엽번호 + * @param beforeYear 변화 전 년도 + * @param afterYear 변화 후 년도 + * @return 변화 전/후 COG 이미지 URL + */ + public TrainingDataLabelDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + return trainingDataLabelCoreService.getCogImageUrl(mapSheetNum, beforeYear, afterYear); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java new file mode 100644 index 00000000..067fea66 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/trainingdata/service/TrainingDataReviewService.java @@ -0,0 +1,119 @@ +package com.kamco.cd.kamcoback.trainingdata.service; + +import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ApiResponseCode; +import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ResponseObj; +import com.kamco.cd.kamcoback.postgres.core.TrainingDataReviewCoreService; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DefaultPaging; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DetailRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.GeoFeatureRequest; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.SummaryRes; +import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.searchReq; +import jakarta.transaction.Transactional; +import java.util.UUID; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class TrainingDataReviewService { + + private final TrainingDataReviewCoreService trainingDataReviewCoreService; + + public TrainingDataReviewService(TrainingDataReviewCoreService trainingDataReviewCoreService) { + this.trainingDataReviewCoreService = trainingDataReviewCoreService; + } + + public Page findReviewAssignedList(searchReq searchReq, String userId) { + return trainingDataReviewCoreService.findReviewAssignedList(searchReq, userId); + } + + public ReviewGeometryInfo findReviewAssignedGeom(String operatorUid) { + return trainingDataReviewCoreService.findReviewAssignedGeom(operatorUid); + } + + @Transactional + public ResponseObj saveReviewFeature(GeoFeatureRequest request) { + String status = ""; + String operatorUid = request.getOperatorUid(); + Long inferenceGeomUid = trainingDataReviewCoreService.findReviewOperatorGeoUid(operatorUid); + + if (request.getGeometry() == null || request.getGeometry().isEmpty()) { + // EXCEPT 상태만 업데이트 + status = "EXCEPT"; + trainingDataReviewCoreService.updateReviewStateOperator( + operatorUid, status, request.getProperties().getInspectMemo()); + trainingDataReviewCoreService.updateReviewExceptState(inferenceGeomUid, status); + } else { + status = "COMPLETE"; + trainingDataReviewCoreService.updateReviewStateOperator( + operatorUid, status, request.getProperties().getInspectMemo()); + trainingDataReviewCoreService.updateReviewPolygonClass( + inferenceGeomUid, request.getGeometry(), request.getProperties(), status); + } + return new ResponseObj(ApiResponseCode.OK, "저장되었습니다."); + } + + /** + * 검수자별 작업 통계 조회 + * + * @param userId 검수자 사번 + * @return 전체/미작업/Today 건수 + */ + public SummaryRes getSummary(String userId) { + try { + System.out.println("[Service] getSummary called with userId: " + userId); + SummaryRes result = trainingDataReviewCoreService.getSummary(userId); + System.out.println("[Service] getSummary result: " + result); + return result; + } catch (Exception e) { + System.err.println("[Service] getSummary ERROR: " + e.getMessage()); + e.printStackTrace(); + // 예외 발생 시에도 빈 통계 반환 + return SummaryRes.builder().totalCnt(0L).undoneCnt(0L).todayCnt(0L).build(); + } + } + + /** + * 검수 작업 상세 정보 조회 + * + * @param operatorUid 검수 작업 ID + * @return 변화탐지정보 + 실태조사결과정보 + */ + public DetailRes getDetail(UUID operatorUid) { + return trainingDataReviewCoreService.getDetail(operatorUid); + } + + public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String operatorUid) { + return trainingDataReviewCoreService.getDefaultPagingNumber(userId, size, operatorUid); + } + + /** + * 새로운 polygon(들) 추가 저장 + * + * @param request 새 polygon 정보 (여러 개 가능) + * @return 응답 메시지 + */ + @Transactional + public ResponseObj saveNewPolygon(TrainingDataReviewDto.NewPolygonRequest request) { + trainingDataReviewCoreService.saveNewPolygon(request); + int count = request.getFeatures() != null ? request.getFeatures().size() : 0; + return new ResponseObj(ApiResponseCode.OK, count + "개의 polygon이 저장되었습니다."); + } + + /** + * COG 이미지 URL 조회 (변화 전/후) + * + * @param mapSheetNum 도엽번호 + * @param beforeYear 변화 전 년도 + * @param afterYear 변화 후 년도 + * @return 변화 전/후 COG 이미지 URL + */ + public TrainingDataReviewDto.CogImageResponse getCogImageUrl( + String mapSheetNum, Integer beforeYear, Integer afterYear) { + return trainingDataReviewCoreService.getCogImageUrl(mapSheetNum, beforeYear, afterYear); + } +} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 369ed2c4..f23245c9 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -6,7 +6,7 @@ spring: jpa: show-sql: false hibernate: - ddl-auto: validate # 로컬만 완화(시킬려면 update으로 변경) + ddl-auto: update # 로컬만 완화(시킬려면 update으로 변경) properties: hibernate: default_batch_fetch_size: 100 # ✅ 성능 - N+1 쿼리 방지 diff --git a/src/main/resources/db/migration/dump-kamco_cds-202601132249.sql b/src/main/resources/db/migration/dump-kamco_cds-202601132249.sql new file mode 100644 index 00000000..b3535698 --- /dev/null +++ b/src/main/resources/db/migration/dump-kamco_cds-202601132249.sql @@ -0,0 +1,10540 @@ +-- +-- PostgreSQL database dump +-- + +\restrict o7JveaMl3BOBWLIUfXrrvlHh4CDykDyey2eRm6Q7nfSa2cPgfQjV2lpA0Ds4zGu + +-- Dumped from database version 18.1 +-- Dumped by pg_dump version 18.1 + +-- Started on 2026-01-13 22:49:37 KST + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET transaction_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- TOC entry 10 (class 2615 OID 46475) +-- Name: topology; Type: SCHEMA; Schema: -; Owner: kamco_cds +-- + +CREATE SCHEMA topology; + + +ALTER SCHEMA topology OWNER TO kamco_cds; + +-- +-- TOC entry 5628 (class 0 OID 0) +-- Dependencies: 10 +-- Name: SCHEMA topology; Type: COMMENT; Schema: -; Owner: kamco_cds +-- + +COMMENT ON SCHEMA topology IS 'PostGIS Topology schema'; + + +-- +-- TOC entry 2 (class 3079 OID 46476) +-- Name: pgcrypto; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public; + + +-- +-- TOC entry 5629 (class 0 OID 0) +-- Dependencies: 2 +-- Name: EXTENSION pgcrypto; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions'; + + +-- +-- TOC entry 3 (class 3079 OID 46514) +-- Name: postgis; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public; + + +-- +-- TOC entry 5630 (class 0 OID 0) +-- Dependencies: 3 +-- Name: EXTENSION postgis; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION postgis IS 'PostGIS geometry and geography spatial types and functions'; + + +-- +-- TOC entry 4 (class 3079 OID 47596) +-- Name: postgis_topology; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology; + + +-- +-- TOC entry 5631 (class 0 OID 0) +-- Dependencies: 4 +-- Name: EXTENSION postgis_topology; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION postgis_topology IS 'PostGIS topology spatial types and functions'; + + +-- +-- TOC entry 5 (class 3079 OID 47783) +-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; + + +-- +-- TOC entry 5632 (class 0 OID 0) +-- Dependencies: 5 +-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; + + +-- +-- TOC entry 427 (class 1255 OID 47794) +-- Name: fn_code_name(character varying, character varying); Type: FUNCTION; Schema: public; Owner: kamco_cds +-- + +CREATE FUNCTION public.fn_code_name(p_parent_code_cd character varying, p_child_code_cd character varying) RETURNS text + LANGUAGE plpgsql + AS $$ +DECLARE + v_child_name TEXT; +BEGIN + SELECT child.cd_nm + INTO v_child_name + FROM tb_cm_cd child + JOIN tb_cm_cd parent + ON child.parent_id = parent.code_id + AND parent.code_cd = p_parent_code_cd + WHERE child.code_cd = p_child_code_cd + LIMIT 1; + + RETURN v_child_name; +END; +$$; + + +ALTER FUNCTION public.fn_code_name(p_parent_code_cd character varying, p_child_code_cd character varying) OWNER TO kamco_cds; + +-- +-- TOC entry 1018 (class 1255 OID 47795) +-- Name: fn_codenm_to_misc(bigint, character varying); Type: FUNCTION; Schema: public; Owner: kamco_cds +-- + +CREATE FUNCTION public.fn_codenm_to_misc(p_parent_code_cd bigint, p_misc_cd character varying) RETURNS text + LANGUAGE plpgsql + AS $$ +DECLARE + v_code_name TEXT; +BEGIN + SELECT cd_nm INTO v_code_name + FROM tb_cm_cd + WHERE parent_id = p_parent_code_cd + AND misc_cd = p_misc_cd + LIMIT 1; + + RETURN v_code_name; +END; +$$; + + +ALTER FUNCTION public.fn_codenm_to_misc(p_parent_code_cd bigint, p_misc_cd character varying) OWNER TO kamco_cds; + +-- +-- TOC entry 394 (class 1255 OID 47796) +-- Name: fn_codenm_to_misc(character varying, character varying); Type: FUNCTION; Schema: public; Owner: kamco_cds +-- + +CREATE FUNCTION public.fn_codenm_to_misc(p_parent_code_cd character varying, p_misc_cd character varying) RETURNS text + LANGUAGE plpgsql + AS $$ +DECLARE + v_code_name TEXT; +BEGIN + SELECT cd_nm INTO v_code_name + FROM tb_cm_cd + WHERE parent_id = p_parent_code_cd + AND misc_cd = p_misc_cd + LIMIT 1; + + RETURN v_code_name; +END; +$$; + + +ALTER FUNCTION public.fn_codenm_to_misc(p_parent_code_cd character varying, p_misc_cd character varying) OWNER TO kamco_cds; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- TOC entry 259 (class 1259 OID 72111) +-- Name: demo_learning_analysis_scene_item; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.demo_learning_analysis_scene_item ( + group_item_id bigint NOT NULL, + group_id bigint NOT NULL, + fid bigint NOT NULL, + created_dttm timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.demo_learning_analysis_scene_item OWNER TO kamco_cds; + +-- +-- TOC entry 5633 (class 0 OID 0) +-- Dependencies: 259 +-- Name: TABLE demo_learning_analysis_scene_item; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.demo_learning_analysis_scene_item IS '그룹과 tb_map_inkx_5k 항목을 연결하는 테이블'; + + +-- +-- TOC entry 5634 (class 0 OID 0) +-- Dependencies: 259 +-- Name: COLUMN demo_learning_analysis_scene_item.group_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.demo_learning_analysis_scene_item.group_id IS '연결된 그룹 ID'; + + +-- +-- TOC entry 5635 (class 0 OID 0) +-- Dependencies: 259 +-- Name: COLUMN demo_learning_analysis_scene_item.fid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.demo_learning_analysis_scene_item.fid IS 'tb_map_inkx_5k 테이블의 항목 ID'; + + +-- +-- TOC entry 260 (class 1259 OID 72118) +-- Name: demo_learning_analysis_scene_item_group_item_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.demo_learning_analysis_scene_item_group_item_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.demo_learning_analysis_scene_item_group_item_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5636 (class 0 OID 0) +-- Dependencies: 260 +-- Name: demo_learning_analysis_scene_item_group_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.demo_learning_analysis_scene_item_group_item_id_seq OWNED BY public.demo_learning_analysis_scene_item.group_item_id; + + +-- +-- TOC entry 261 (class 1259 OID 72119) +-- Name: demo_learning_analysis_scene_list; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.demo_learning_analysis_scene_list ( + group_id bigint NOT NULL, + group_name character varying(255), + description text, + created_dttm timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.demo_learning_analysis_scene_list OWNER TO kamco_cds; + +-- +-- TOC entry 5637 (class 0 OID 0) +-- Dependencies: 261 +-- Name: TABLE demo_learning_analysis_scene_list; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.demo_learning_analysis_scene_list IS 'tb_map_inkx_5k의 항목들을 묶어놓은 그룹의 정의 리스트'; + + +-- +-- TOC entry 5638 (class 0 OID 0) +-- Dependencies: 261 +-- Name: COLUMN demo_learning_analysis_scene_list.group_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.demo_learning_analysis_scene_list.group_id IS '그룹의 고유 식별자'; + + +-- +-- TOC entry 5639 (class 0 OID 0) +-- Dependencies: 261 +-- Name: COLUMN demo_learning_analysis_scene_list.group_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.demo_learning_analysis_scene_list.group_name IS '그룹 이름 (예: 서울그룹, 서울경기그룹)'; + + +-- +-- TOC entry 262 (class 1259 OID 72126) +-- Name: demo_learning_analysis_scene_list_group_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.demo_learning_analysis_scene_list_group_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.demo_learning_analysis_scene_list_group_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5640 (class 0 OID 0) +-- Dependencies: 262 +-- Name: demo_learning_analysis_scene_list_group_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.demo_learning_analysis_scene_list_group_id_seq OWNED BY public.demo_learning_analysis_scene_list.group_id; + + +-- +-- TOC entry 263 (class 1259 OID 72127) +-- Name: demo_learning_analysis_summary; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.demo_learning_analysis_summary ( + id bigint NOT NULL, + uuid uuid DEFAULT gen_random_uuid(), + name character varying(100), + analysis_status character varying(100), + created_dttm timestamp with time zone DEFAULT now(), + updated_dttm timestamp with time zone DEFAULT now(), + scene_list_id bigint, + before_year integer, + after_year integer, + model_version character varying(10) +); + + +ALTER TABLE public.demo_learning_analysis_summary OWNER TO kamco_cds; + +-- +-- TOC entry 264 (class 1259 OID 72134) +-- Name: demo_learning_analysis_summary_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.demo_learning_analysis_summary_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.demo_learning_analysis_summary_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5641 (class 0 OID 0) +-- Dependencies: 264 +-- Name: demo_learning_analysis_summary_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.demo_learning_analysis_summary_id_seq OWNED BY public.demo_learning_analysis_summary.id; + + +-- +-- TOC entry 235 (class 1259 OID 47821) +-- Name: seq_detect_mast_id; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.seq_detect_mast_id + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.seq_detect_mast_id OWNER TO kamco_cds; + +-- +-- TOC entry 5642 (class 0 OID 0) +-- Dependencies: 235 +-- Name: SEQUENCE seq_detect_mast_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON SEQUENCE public.seq_detect_mast_id IS 'detect_mast 테이블용 시퀀스'; + + +-- +-- TOC entry 265 (class 1259 OID 72135) +-- Name: detect_mast; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.detect_mast ( + dtct_mst_id bigint DEFAULT nextval('public.seq_detect_mast_id'::regclass) NOT NULL, + dtct_mst_uuid uuid DEFAULT gen_random_uuid() NOT NULL, + cprs_bf_yr character varying(4) NOT NULL, + cprs_ad_yr character varying(4) NOT NULL, + dtct_sno integer NOT NULL, + path_nm text NOT NULL, + feature_id character varying(50), + crt_epno character varying(30) NOT NULL, + crt_ip character varying(45) NOT NULL, + crt_dttm timestamp with time zone DEFAULT now() NOT NULL, + chg_epno character varying(30), + chg_ip character varying(45), + chg_dttm timestamp with time zone +); + + +ALTER TABLE public.detect_mast OWNER TO kamco_cds; + +-- +-- TOC entry 5643 (class 0 OID 0) +-- Dependencies: 265 +-- Name: TABLE detect_mast; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.detect_mast IS '변화 탐지 마스터 정보 이노펨 mockup 테이블'; + + +-- +-- TOC entry 5644 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.dtct_mst_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.dtct_mst_id IS '변화 탐지 마스터 ID (시퀀스)'; + + +-- +-- TOC entry 5645 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.dtct_mst_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.dtct_mst_uuid IS '변화 탐지 마스터 UUID'; + + +-- +-- TOC entry 5646 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.cprs_bf_yr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.cprs_bf_yr IS '비교 전 연도'; + + +-- +-- TOC entry 5647 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.cprs_ad_yr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.cprs_ad_yr IS '비교 후 연도'; + + +-- +-- TOC entry 5648 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.dtct_sno; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.dtct_sno IS '탐지 순번'; + + +-- +-- TOC entry 5649 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.path_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.path_nm IS '결과 파일 경로명'; + + +-- +-- TOC entry 5650 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.feature_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.feature_id IS 'Feature 식별자'; + + +-- +-- TOC entry 5651 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.crt_epno; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.crt_epno IS '생성자 사번'; + + +-- +-- TOC entry 5652 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.crt_ip; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.crt_ip IS '생성자 IP'; + + +-- +-- TOC entry 5653 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.crt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.crt_dttm IS '생성 일시'; + + +-- +-- TOC entry 5654 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.chg_epno; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.chg_epno IS '수정자 사번'; + + +-- +-- TOC entry 5655 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.chg_ip; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.chg_ip IS '수정자 IP'; + + +-- +-- TOC entry 5656 (class 0 OID 0) +-- Dependencies: 265 +-- Name: COLUMN detect_mast.chg_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast.chg_dttm IS '수정 일시'; + + +-- +-- TOC entry 258 (class 1259 OID 61611) +-- Name: seq_detect_mast_pnu_id; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.seq_detect_mast_pnu_id + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.seq_detect_mast_pnu_id OWNER TO kamco_cds; + +-- +-- TOC entry 266 (class 1259 OID 72152) +-- Name: detect_mast_pnu; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.detect_mast_pnu ( + dtct_mst_pnu_id bigint DEFAULT nextval('public.seq_detect_mast_pnu_id'::regclass) NOT NULL, + detect_mast_pnu_uuid uuid DEFAULT gen_random_uuid() NOT NULL, + dtct_mst_id bigint NOT NULL, + pnu character varying(4) NOT NULL, + polygon text +); + + +ALTER TABLE public.detect_mast_pnu OWNER TO kamco_cds; + +-- +-- TOC entry 5657 (class 0 OID 0) +-- Dependencies: 266 +-- Name: TABLE detect_mast_pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.detect_mast_pnu IS '변화 탐지 pnu 정보 이노펨 mockup 테이블'; + + +-- +-- TOC entry 5658 (class 0 OID 0) +-- Dependencies: 266 +-- Name: COLUMN detect_mast_pnu.dtct_mst_pnu_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast_pnu.dtct_mst_pnu_id IS ' ID (시퀀스)'; + + +-- +-- TOC entry 5659 (class 0 OID 0) +-- Dependencies: 266 +-- Name: COLUMN detect_mast_pnu.detect_mast_pnu_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast_pnu.detect_mast_pnu_uuid IS ' UUID'; + + +-- +-- TOC entry 5660 (class 0 OID 0) +-- Dependencies: 266 +-- Name: COLUMN detect_mast_pnu.dtct_mst_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast_pnu.dtct_mst_id IS '변화탐지 마스터 id'; + + +-- +-- TOC entry 5661 (class 0 OID 0) +-- Dependencies: 266 +-- Name: COLUMN detect_mast_pnu.pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast_pnu.pnu IS 'pnu'; + + +-- +-- TOC entry 5662 (class 0 OID 0) +-- Dependencies: 266 +-- Name: COLUMN detect_mast_pnu.polygon; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.detect_mast_pnu.polygon IS 'polygon'; + + +-- +-- TOC entry 267 (class 1259 OID 72163) +-- Name: gpu_metrics; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.gpu_metrics ( + id integer NOT NULL, + "timestamp" timestamp with time zone DEFAULT now() NOT NULL, + server_name text NOT NULL, + gpu_util real, + gpu_mem_used real, + gpu_mem_total real, + uuid uuid DEFAULT gen_random_uuid() NOT NULL +); + + +ALTER TABLE public.gpu_metrics OWNER TO kamco_cds; + +-- +-- TOC entry 5663 (class 0 OID 0) +-- Dependencies: 267 +-- Name: TABLE gpu_metrics; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.gpu_metrics IS 'GPU 자원 사용량 메트릭'; + + +-- +-- TOC entry 5664 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics.id IS '메트릭 ID (PK)'; + + +-- +-- TOC entry 5665 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics."timestamp"; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics."timestamp" IS '수집 시간'; + + +-- +-- TOC entry 5666 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics.server_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics.server_name IS '서버 명칭'; + + +-- +-- TOC entry 5667 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics.gpu_util; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics.gpu_util IS 'GPU 사용률 (%)'; + + +-- +-- TOC entry 5668 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics.gpu_mem_used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics.gpu_mem_used IS 'GPU 메모리 사용량 (MB/GB)'; + + +-- +-- TOC entry 5669 (class 0 OID 0) +-- Dependencies: 267 +-- Name: COLUMN gpu_metrics.gpu_mem_total; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.gpu_metrics.gpu_mem_total IS 'GPU 전체 메모리 용량'; + + +-- +-- TOC entry 268 (class 1259 OID 72174) +-- Name: gpu_metrics_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.gpu_metrics_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.gpu_metrics_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5670 (class 0 OID 0) +-- Dependencies: 268 +-- Name: gpu_metrics_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.gpu_metrics_id_seq OWNED BY public.gpu_metrics.id; + + +-- +-- TOC entry 269 (class 1259 OID 72175) +-- Name: imagery; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.imagery ( + id bigint NOT NULL, + uuid uuid DEFAULT gen_random_uuid(), + year integer, + scene_50k character varying(5), + scene_5k character varying(8), + scene_id_50k integer, + scene_id_5k integer, + created_date timestamp with time zone DEFAULT now(), + middle_path character varying(400), + cog_middle_path character varying(400), + filename character varying(1000), + cog_filename character varying(1000) +); + + +ALTER TABLE public.imagery OWNER TO kamco_cds; + +-- +-- TOC entry 5671 (class 0 OID 0) +-- Dependencies: 269 +-- Name: TABLE imagery; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.imagery IS '항공 및 위성 영상 메타데이터 관리'; + + +-- +-- TOC entry 5672 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.id IS '영상 ID (PK)'; + + +-- +-- TOC entry 5673 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.uuid IS '영상 UUID'; + + +-- +-- TOC entry 5674 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.year IS '촬영 및 제작 연도'; + + +-- +-- TOC entry 5675 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.scene_50k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.scene_50k IS '5만 도엽 번호'; + + +-- +-- TOC entry 5676 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.scene_5k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.scene_5k IS '5천 도엽 번호'; + + +-- +-- TOC entry 5677 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.scene_id_50k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.scene_id_50k IS '5만 도엽 식별자'; + + +-- +-- TOC entry 5678 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.scene_id_5k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.scene_id_5k IS '5천 도엽 식별자'; + + +-- +-- TOC entry 5679 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.created_date; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.created_date IS '등록 일시'; + + +-- +-- TOC entry 5680 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.middle_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.middle_path IS '영상 중간 경로'; + + +-- +-- TOC entry 5681 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.cog_middle_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.cog_middle_path IS 'COG(Cloud Optimized GeoTIFF) 경로'; + + +-- +-- TOC entry 5682 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.filename; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.filename IS '영상 파일명'; + + +-- +-- TOC entry 5683 (class 0 OID 0) +-- Dependencies: 269 +-- Name: COLUMN imagery.cog_filename; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.imagery.cog_filename IS 'Cloud Optimized GeoTIFF 파일명'; + + +-- +-- TOC entry 270 (class 1259 OID 72183) +-- Name: imagery_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.imagery_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.imagery_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5684 (class 0 OID 0) +-- Dependencies: 270 +-- Name: imagery_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.imagery_id_seq OWNED BY public.imagery.id; + + +-- +-- TOC entry 271 (class 1259 OID 72184) +-- Name: inference_results; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.inference_results ( + uid bigint NOT NULL, + uuid uuid DEFAULT public.uuid_generate_v4() NOT NULL, + stage integer, + cd_prob real, + input1 integer, + input2 integer, + map_id bigint, + before_class character varying(20), + before_probability real, + after_class character varying(20), + after_probability real, + geometry public.geometry(Polygon,5186) NOT NULL, + area double precision GENERATED ALWAYS AS (public.st_area(geometry)) STORED, + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.inference_results OWNER TO kamco_cds; + +-- +-- TOC entry 5685 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.uid IS 'Auto-incrementing primary key'; + + +-- +-- TOC entry 5686 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.uuid IS 'Universally unique identifier'; + + +-- +-- TOC entry 5687 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.stage; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.stage IS 'Processing pipeline version (e.g., v4)'; + + +-- +-- TOC entry 5688 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.cd_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.cd_prob IS 'Change detection probability (0-100)'; + + +-- +-- TOC entry 5689 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.input1; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.input1 IS 'First temporal input (year)'; + + +-- +-- TOC entry 5690 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.input2; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.input2 IS 'Second temporal input (year)'; + + +-- +-- TOC entry 5691 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.map_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.map_id IS 'Reference to map tile or cadastral parcel'; + + +-- +-- TOC entry 5692 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.before_class; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.before_class IS 'Land use class before change'; + + +-- +-- TOC entry 5693 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.before_probability; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.before_probability IS 'Classification confidence before change'; + + +-- +-- TOC entry 5694 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.after_class; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.after_class IS 'Land use class after change'; + + +-- +-- TOC entry 5695 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.after_probability; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.after_probability IS 'Classification confidence after change'; + + +-- +-- TOC entry 5696 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.geometry; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.geometry IS 'Polygon geometry in EPSG:5186'; + + +-- +-- TOC entry 5697 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.area IS 'Calculated area in square meters'; + + +-- +-- TOC entry 5698 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.created_dttm IS 'Record creation timestamp'; + + +-- +-- TOC entry 5699 (class 0 OID 0) +-- Dependencies: 271 +-- Name: COLUMN inference_results.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results.updated_dttm IS 'Last modification timestamp'; + + +-- +-- TOC entry 272 (class 1259 OID 72198) +-- Name: inference_results_noor; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.inference_results_noor ( + uid bigint NOT NULL, + uuid uuid DEFAULT public.uuid_generate_v4() NOT NULL, + stage integer, + cd_prob real, + input1 integer, + input2 integer, + map_id bigint, + before_class character varying(20), + before_probability real, + after_class character varying(20), + after_probability real, + geometry public.geometry(Polygon,5186) NOT NULL, + area double precision GENERATED ALWAYS AS (public.st_area(geometry)) STORED, + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.inference_results_noor OWNER TO kamco_cds; + +-- +-- TOC entry 5700 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.uid IS 'Auto-incrementing primary key'; + + +-- +-- TOC entry 5701 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.uuid IS 'Universally unique identifier'; + + +-- +-- TOC entry 5702 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.stage; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.stage IS 'Processing pipeline version (e.g., v4)'; + + +-- +-- TOC entry 5703 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.cd_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.cd_prob IS 'Change detection probability (0-100)'; + + +-- +-- TOC entry 5704 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.input1; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.input1 IS 'First temporal input (year)'; + + +-- +-- TOC entry 5705 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.input2; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.input2 IS 'Second temporal input (year)'; + + +-- +-- TOC entry 5706 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.map_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.map_id IS 'Reference to map tile or cadastral parcel'; + + +-- +-- TOC entry 5707 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.before_class; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.before_class IS 'Land use class before change'; + + +-- +-- TOC entry 5708 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.before_probability; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.before_probability IS 'Classification confidence before change'; + + +-- +-- TOC entry 5709 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.after_class; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.after_class IS 'Land use class after change'; + + +-- +-- TOC entry 5710 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.after_probability; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.after_probability IS 'Classification confidence after change'; + + +-- +-- TOC entry 5711 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.geometry; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.geometry IS 'Polygon geometry in EPSG:5186'; + + +-- +-- TOC entry 5712 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.area IS 'Calculated area in square meters'; + + +-- +-- TOC entry 5713 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.created_dttm IS 'Record creation timestamp'; + + +-- +-- TOC entry 5714 (class 0 OID 0) +-- Dependencies: 272 +-- Name: COLUMN inference_results_noor.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_noor.updated_dttm IS 'Last modification timestamp'; + + +-- +-- TOC entry 273 (class 1259 OID 72212) +-- Name: inference_results_noor_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.inference_results_noor_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.inference_results_noor_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5715 (class 0 OID 0) +-- Dependencies: 273 +-- Name: inference_results_noor_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.inference_results_noor_uid_seq OWNED BY public.inference_results_noor.uid; + + +-- +-- TOC entry 274 (class 1259 OID 72213) +-- Name: inference_results_testing; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.inference_results_testing ( + geometry public.geometry(Polygon,5186), + probability double precision, + before_year bigint, + after_year bigint, + map_id text, + source_1 text, + source_2 text, + model_version text, + cls_model_path text, + cls_model_version text, + cd_model_type text, + id bigint, + model_name text, + batch_id bigint, + area double precision, + cd_prob double precision, + before_c text, + before_p double precision, + after_c text, + after_p double precision, + input1 bigint, + input2 bigint, + uid uuid DEFAULT public.uuid_generate_v4() NOT NULL, + seq bigint NOT NULL, + created_date timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.inference_results_testing OWNER TO kamco_cds; + +-- +-- TOC entry 5716 (class 0 OID 0) +-- Dependencies: 274 +-- Name: TABLE inference_results_testing; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.inference_results_testing IS 'AI 추론 결과 테스트용 임시 데이터'; + + +-- +-- TOC entry 5717 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.probability; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.probability IS '추론 확률'; + + +-- +-- TOC entry 5718 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.before_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.before_year IS '이전 시점 연도'; + + +-- +-- TOC entry 5719 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.after_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.after_year IS '이후 시점 연도'; + + +-- +-- TOC entry 5720 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.model_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.model_name IS '모델명'; + + +-- +-- TOC entry 5721 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.area IS '탐지 지역 면적'; + + +-- +-- TOC entry 5722 (class 0 OID 0) +-- Dependencies: 274 +-- Name: COLUMN inference_results_testing.cd_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.inference_results_testing.cd_prob IS '변화탐지(Change Detection) 확률'; + + +-- +-- TOC entry 275 (class 1259 OID 72222) +-- Name: inference_results_testing_seq_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.inference_results_testing_seq_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.inference_results_testing_seq_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5723 (class 0 OID 0) +-- Dependencies: 275 +-- Name: inference_results_testing_seq_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.inference_results_testing_seq_seq OWNED BY public.inference_results_testing.seq; + + +-- +-- TOC entry 276 (class 1259 OID 72223) +-- Name: inference_results_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.inference_results_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.inference_results_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5724 (class 0 OID 0) +-- Dependencies: 276 +-- Name: inference_results_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.inference_results_uid_seq OWNED BY public.inference_results.uid; + + +-- +-- TOC entry 236 (class 1259 OID 47897) +-- Name: inference_sample_test_2021_2022; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.inference_sample_test_2021_2022 ( + id integer, + geom public.geometry(Polygon,5186), + original_fid bigint, + area_meters character varying, + data_category character varying, + before_year character varying, + after_year character varying, + map_id character varying, + source_1 character varying, + source_2 character varying, + probability character varying, + class_id character varying, + score character varying, + dissolved_geom public.geometry, + dissolved_area double precision +); + + +ALTER TABLE public.inference_sample_test_2021_2022 OWNER TO kamco_cds; + +-- +-- TOC entry 237 (class 1259 OID 47902) +-- Name: inference_sample_test_2021_2022_intermediate; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.inference_sample_test_2021_2022_intermediate ( + id integer NOT NULL, + geom public.geometry(Polygon,5186), + original_fid bigint, + area_meters character varying, + data_category character varying, + before_year character varying, + after_year character varying, + map_id character varying, + source_1 character varying, + source_2 character varying, + probability character varying, + class_id character varying, + score character varying +); + + +ALTER TABLE public.inference_sample_test_2021_2022_intermediate OWNER TO kamco_cds; + +-- +-- TOC entry 238 (class 1259 OID 47908) +-- Name: inference_sample_test_2021_2022_intermediate_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.inference_sample_test_2021_2022_intermediate_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.inference_sample_test_2021_2022_intermediate_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5725 (class 0 OID 0) +-- Dependencies: 238 +-- Name: inference_sample_test_2021_2022_intermediate_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.inference_sample_test_2021_2022_intermediate_id_seq OWNED BY public.inference_sample_test_2021_2022_intermediate.id; + + +-- +-- TOC entry 277 (class 1259 OID 72224) +-- Name: overlapped_areas_roi; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.overlapped_areas_roi ( + id integer NOT NULL, + geom public.geometry(Polygon,5186), + fid bigint, + left_id integer, + right_id integer +); + + +ALTER TABLE public.overlapped_areas_roi OWNER TO kamco_cds; + +-- +-- TOC entry 5726 (class 0 OID 0) +-- Dependencies: 277 +-- Name: TABLE overlapped_areas_roi; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.overlapped_areas_roi IS '관심지역(ROI) 간의 중첩된 공간 정보 및 면적'; + + +-- +-- TOC entry 5727 (class 0 OID 0) +-- Dependencies: 277 +-- Name: COLUMN overlapped_areas_roi.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.overlapped_areas_roi.id IS '식별자 (PK)'; + + +-- +-- TOC entry 5728 (class 0 OID 0) +-- Dependencies: 277 +-- Name: COLUMN overlapped_areas_roi.geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.overlapped_areas_roi.geom IS '중첩 지역 폴리곤 (EPSG:5186)'; + + +-- +-- TOC entry 5729 (class 0 OID 0) +-- Dependencies: 277 +-- Name: COLUMN overlapped_areas_roi.fid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.overlapped_areas_roi.fid IS '원본 피처 ID'; + + +-- +-- TOC entry 5730 (class 0 OID 0) +-- Dependencies: 277 +-- Name: COLUMN overlapped_areas_roi.left_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.overlapped_areas_roi.left_id IS '중첩 비교 왼쪽 데이터 ID'; + + +-- +-- TOC entry 5731 (class 0 OID 0) +-- Dependencies: 277 +-- Name: COLUMN overlapped_areas_roi.right_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.overlapped_areas_roi.right_id IS '중첩 비교 오른쪽 데이터 ID'; + + +-- +-- TOC entry 278 (class 1259 OID 72230) +-- Name: overlapped_areas_roi_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.overlapped_areas_roi_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.overlapped_areas_roi_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5732 (class 0 OID 0) +-- Dependencies: 278 +-- Name: overlapped_areas_roi_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.overlapped_areas_roi_id_seq OWNED BY public.overlapped_areas_roi.id; + + +-- +-- TOC entry 279 (class 1259 OID 72231) +-- Name: system_metrics; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.system_metrics ( + id integer NOT NULL, + "timestamp" timestamp with time zone NOT NULL, + server_name text NOT NULL, + cpu_user real, + cpu_system real, + cpu_iowait real, + cpu_idle real, + kbmemfree bigint, + kbmemused bigint, + memused real, + uuid uuid DEFAULT gen_random_uuid() NOT NULL +); + + +ALTER TABLE public.system_metrics OWNER TO kamco_cds; + +-- +-- TOC entry 5733 (class 0 OID 0) +-- Dependencies: 279 +-- Name: TABLE system_metrics; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.system_metrics IS '시스템(CPU/MEM) 자원 사용량 메트릭'; + + +-- +-- TOC entry 5734 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.id IS '메트릭 ID (PK)'; + + +-- +-- TOC entry 5735 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics."timestamp"; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics."timestamp" IS '수집 시간'; + + +-- +-- TOC entry 5736 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.server_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.server_name IS '서버 명칭'; + + +-- +-- TOC entry 5737 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.cpu_user; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.cpu_user IS '사용자 CPU 사용률'; + + +-- +-- TOC entry 5738 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.cpu_system; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.cpu_system IS '시스템 CPU 사용률'; + + +-- +-- TOC entry 5739 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.cpu_iowait; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.cpu_iowait IS '입출력 대기 CPU 비율'; + + +-- +-- TOC entry 5740 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.cpu_idle; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.cpu_idle IS '유휴 CPU 비율'; + + +-- +-- TOC entry 5741 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.kbmemfree; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.kbmemfree IS '여유 메모리 (KB)'; + + +-- +-- TOC entry 5742 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.kbmemused; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.kbmemused IS '사용 메모리 (KB)'; + + +-- +-- TOC entry 5743 (class 0 OID 0) +-- Dependencies: 279 +-- Name: COLUMN system_metrics.memused; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.system_metrics.memused IS '메모리 사용률 (%)'; + + +-- +-- TOC entry 280 (class 1259 OID 72241) +-- Name: system_metrics_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.system_metrics_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.system_metrics_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5744 (class 0 OID 0) +-- Dependencies: 280 +-- Name: system_metrics_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.system_metrics_id_seq OWNED BY public.system_metrics.id; + + +-- +-- TOC entry 281 (class 1259 OID 72242) +-- Name: tb_animal; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_animal ( + uid bigint NOT NULL, + uuid uuid NOT NULL, + category character varying(255), + species character varying(255), + name character varying(255) NOT NULL, + is_deleted boolean DEFAULT false NOT NULL, + created_dttm timestamp with time zone NOT NULL, + updated_dttm timestamp with time zone NOT NULL, + zoo_id bigint +); + + +ALTER TABLE public.tb_animal OWNER TO kamco_cds; + +-- +-- TOC entry 5745 (class 0 OID 0) +-- Dependencies: 281 +-- Name: TABLE tb_animal; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_animal IS '동물원 동물 정보'; + + +-- +-- TOC entry 5746 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.uid IS '고유 식별자 (PK)'; + + +-- +-- TOC entry 5747 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.uuid IS 'UUID (Unique)'; + + +-- +-- TOC entry 5748 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.category; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.category IS '구분 (MAMMALS, BIRDS, FISH,AMPHIBIANS,REPTILES,INSECTS, INVERTEBRATES )'; + + +-- +-- TOC entry 5749 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.species; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.species IS '동물 종'; + + +-- +-- TOC entry 5750 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.name IS '동물 이름'; + + +-- +-- TOC entry 5751 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.is_deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.is_deleted IS '삭제 여부'; + + +-- +-- TOC entry 5752 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.created_dttm IS '생성일시'; + + +-- +-- TOC entry 5753 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 5754 (class 0 OID 0) +-- Dependencies: 281 +-- Name: COLUMN tb_animal.zoo_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_animal.zoo_id IS '동물원 ID (FK)'; + + +-- +-- TOC entry 282 (class 1259 OID 72254) +-- Name: tb_animal_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_animal_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_animal_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5755 (class 0 OID 0) +-- Dependencies: 282 +-- Name: tb_animal_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_animal_uid_seq OWNED BY public.tb_animal.uid; + + +-- +-- TOC entry 239 (class 1259 OID 47938) +-- Name: tb_audit_log_audit_log_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_audit_log_audit_log_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_audit_log_audit_log_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 283 (class 1259 OID 72255) +-- Name: tb_audit_log; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_audit_log ( + audit_log_uid bigint DEFAULT nextval('public.tb_audit_log_audit_log_uid_seq'::regclass) NOT NULL, + user_uid bigint, + event_type character varying(255) NOT NULL, + event_status character varying(255) NOT NULL, + menu_uid character varying(255), + ip_address character varying(255), + description text, + created_dttm timestamp with time zone DEFAULT now(), + error_log_uid bigint, + request_body character varying(255), + request_uri character varying(255) +); + + +ALTER TABLE public.tb_audit_log OWNER TO kamco_cds; + +-- +-- TOC entry 5756 (class 0 OID 0) +-- Dependencies: 283 +-- Name: TABLE tb_audit_log; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_audit_log IS '사용자 행위 감사 로그 (UI_CDSS_LM_01)'; + + +-- +-- TOC entry 5757 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.audit_log_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.audit_log_uid IS '감사 로그 UID (PK)'; + + +-- +-- TOC entry 5758 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.user_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.user_uid IS '행위자 UID (FK)'; + + +-- +-- TOC entry 5759 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.event_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.event_type IS '행위유형 (CREATE, READ,UPDATE,DELETE,DOWNLOAD,PRINT)'; + + +-- +-- TOC entry 5760 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.event_status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.event_status IS '이벤트 상태 (SUCCESS, FAIL)'; + + +-- +-- TOC entry 5761 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.menu_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.menu_uid IS '메뉴 UID'; + + +-- +-- TOC entry 5762 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.ip_address; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.ip_address IS 'IP 주소'; + + +-- +-- TOC entry 5763 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.description; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.description IS '상세 내용'; + + +-- +-- TOC entry 5764 (class 0 OID 0) +-- Dependencies: 283 +-- Name: COLUMN tb_audit_log.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_audit_log.created_dttm IS '발생 일시'; + + +-- +-- TOC entry 284 (class 1259 OID 72265) +-- Name: tb_auth_token; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_auth_token ( + token_id bigint NOT NULL, + user_uid bigint NOT NULL, + refresh_token text NOT NULL, + access_token text, + expires_at timestamp with time zone NOT NULL, + last_used_at timestamp with time zone DEFAULT now(), + device_info character varying(100), + ip_address character varying(45), + revoked boolean DEFAULT false, + created_at timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.tb_auth_token OWNER TO kamco_cds; + +-- +-- TOC entry 5765 (class 0 OID 0) +-- Dependencies: 284 +-- Name: TABLE tb_auth_token; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_auth_token IS '사용자 인증 및 리프레시 토큰 관리'; + + +-- +-- TOC entry 5766 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.token_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.token_id IS '토큰 ID (PK)'; + + +-- +-- TOC entry 5767 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.user_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.user_uid IS '사용자 식별키 (FK)'; + + +-- +-- TOC entry 5768 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.refresh_token; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.refresh_token IS '리프레시 토큰 값'; + + +-- +-- TOC entry 5769 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.access_token; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.access_token IS '액세스 토큰 값'; + + +-- +-- TOC entry 5770 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.expires_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.expires_at IS '만료 일시'; + + +-- +-- TOC entry 5771 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.last_used_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.last_used_at IS '마지막 사용 일시'; + + +-- +-- TOC entry 5772 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.device_info; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.device_info IS '접속 기기 정보'; + + +-- +-- TOC entry 5773 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.ip_address; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.ip_address IS '접속 IP 주소'; + + +-- +-- TOC entry 5774 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.revoked; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.revoked IS '토큰 폐기 여부'; + + +-- +-- TOC entry 5775 (class 0 OID 0) +-- Dependencies: 284 +-- Name: COLUMN tb_auth_token.created_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_auth_token.created_at IS '토큰 생성 일시'; + + +-- +-- TOC entry 285 (class 1259 OID 72277) +-- Name: tb_auth_token_token_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_auth_token_token_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_auth_token_token_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5776 (class 0 OID 0) +-- Dependencies: 285 +-- Name: tb_auth_token_token_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_auth_token_token_id_seq OWNED BY public.tb_auth_token.token_id; + + +-- +-- TOC entry 286 (class 1259 OID 72278) +-- Name: tb_cm_cd; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_cm_cd ( + code_id bigint NOT NULL, + code_cd character varying(255), + cd_ct character varying(255), + cd_nm character varying(255), + cd_odr integer, + used boolean DEFAULT true, + deleted boolean DEFAULT false NOT NULL, + parent_id bigint, + created_dttm timestamp with time zone, + updated_dttm timestamp with time zone, + created_uid bigint, + updated_uid bigint, + props1 character varying(255), + props2 character varying(255), + props3 character varying(255), + deleted_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_cm_cd OWNER TO kamco_cds; + +-- +-- TOC entry 5777 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.code_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.code_id IS '코드 아이디'; + + +-- +-- TOC entry 5778 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.code_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.code_cd IS '코드'; + + +-- +-- TOC entry 5779 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.cd_ct; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.cd_ct IS '설명'; + + +-- +-- TOC entry 5780 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.cd_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.cd_nm IS '코드명'; + + +-- +-- TOC entry 5781 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.cd_odr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.cd_odr IS '순서'; + + +-- +-- TOC entry 5782 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.used IS '사용여부'; + + +-- +-- TOC entry 5783 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.deleted IS '삭제여부'; + + +-- +-- TOC entry 5784 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.parent_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.parent_id IS '상위 코드 아이디'; + + +-- +-- TOC entry 5785 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.created_dttm IS '저장일시'; + + +-- +-- TOC entry 5786 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 5787 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.created_uid IS '등록자'; + + +-- +-- TOC entry 5788 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.updated_uid IS '수정자'; + + +-- +-- TOC entry 5789 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.props1; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.props1 IS '비고1'; + + +-- +-- TOC entry 5790 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.props2; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.props2 IS '비고2'; + + +-- +-- TOC entry 5791 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.props3; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.props3 IS '비고3'; + + +-- +-- TOC entry 5792 (class 0 OID 0) +-- Dependencies: 286 +-- Name: COLUMN tb_cm_cd.deleted_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_cm_cd.deleted_dttm IS '삭제일시'; + + +-- +-- TOC entry 287 (class 1259 OID 72287) +-- Name: tb_cm_cd_code_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE public.tb_cm_cd ALTER COLUMN code_id ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME public.tb_cm_cd_code_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- TOC entry 240 (class 1259 OID 47972) +-- Name: tb_data_mapinfo_cd_code_id; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_data_mapinfo_cd_code_id + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_data_mapinfo_cd_code_id OWNER TO kamco_cds; + +-- +-- TOC entry 288 (class 1259 OID 72288) +-- Name: tb_data_mapinfo_cd; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_data_mapinfo_cd ( + code_id bigint DEFAULT nextval('public.tb_data_mapinfo_cd_code_id'::regclass) NOT NULL, + code_cd character varying(255) DEFAULT NULL::character varying, + cd_ct character varying(255) DEFAULT NULL::character varying, + cd_nm character varying(255) DEFAULT NULL::character varying, + cd_odr integer, + used boolean, + deleted boolean NOT NULL, + parent_id bigint, + sys_cd_id bigint, + created_at timestamp without time zone, + updated_at timestamp without time zone +); + + +ALTER TABLE public.tb_data_mapinfo_cd OWNER TO kamco_cds; + +-- +-- TOC entry 5793 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.code_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.code_id IS '코드 아이디'; + + +-- +-- TOC entry 5794 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.code_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.code_cd IS '코드'; + + +-- +-- TOC entry 5795 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.cd_ct; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.cd_ct IS '설명'; + + +-- +-- TOC entry 5796 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.cd_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.cd_nm IS '코드명'; + + +-- +-- TOC entry 5797 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.cd_odr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.cd_odr IS '순서'; + + +-- +-- TOC entry 5798 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.used IS '사용여부'; + + +-- +-- TOC entry 5799 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.deleted IS '삭제여부'; + + +-- +-- TOC entry 5800 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.parent_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.parent_id IS '상위 코드 아이디'; + + +-- +-- TOC entry 5801 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.sys_cd_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.sys_cd_id IS '시스템 코드 아이디'; + + +-- +-- TOC entry 5802 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.created_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.created_at IS '저장일시'; + + +-- +-- TOC entry 5803 (class 0 OID 0) +-- Dependencies: 288 +-- Name: COLUMN tb_data_mapinfo_cd.updated_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_mapinfo_cd.updated_at IS '수정일시'; + + +-- +-- TOC entry 241 (class 1259 OID 47984) +-- Name: tb_data_object_class_cd_code_id; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_data_object_class_cd_code_id + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_data_object_class_cd_code_id OWNER TO kamco_cds; + +-- +-- TOC entry 289 (class 1259 OID 72299) +-- Name: tb_data_object_class_cd; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_data_object_class_cd ( + code_id bigint DEFAULT nextval('public.tb_data_object_class_cd_code_id'::regclass) NOT NULL, + code_cd character varying(255) DEFAULT NULL::character varying, + cd_ct character varying(255) DEFAULT NULL::character varying, + cd_nm character varying(255) DEFAULT NULL::character varying, + cd_odr integer, + used boolean, + deleted boolean NOT NULL, + parent_id bigint, + sys_cd_id bigint, + created_at timestamp without time zone, + updated_at timestamp without time zone +); + + +ALTER TABLE public.tb_data_object_class_cd OWNER TO kamco_cds; + +-- +-- TOC entry 5804 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.code_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.code_id IS '코드 아이디'; + + +-- +-- TOC entry 5805 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.code_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.code_cd IS '코드'; + + +-- +-- TOC entry 5806 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.cd_ct; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.cd_ct IS '설명'; + + +-- +-- TOC entry 5807 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.cd_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.cd_nm IS '코드명'; + + +-- +-- TOC entry 5808 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.cd_odr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.cd_odr IS '순서'; + + +-- +-- TOC entry 5809 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.used IS '사용여부'; + + +-- +-- TOC entry 5810 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.deleted IS '삭제여부'; + + +-- +-- TOC entry 5811 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.parent_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.parent_id IS '상위 코드 아이디'; + + +-- +-- TOC entry 5812 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.sys_cd_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.sys_cd_id IS '시스템 코드 아이디'; + + +-- +-- TOC entry 5813 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.created_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.created_at IS '저장일시'; + + +-- +-- TOC entry 5814 (class 0 OID 0) +-- Dependencies: 289 +-- Name: COLUMN tb_data_object_class_cd.updated_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_object_class_cd.updated_at IS '수정일시'; + + +-- +-- TOC entry 242 (class 1259 OID 47996) +-- Name: tb_data_year_cd_code_id; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_data_year_cd_code_id + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_data_year_cd_code_id OWNER TO kamco_cds; + +-- +-- TOC entry 290 (class 1259 OID 72310) +-- Name: tb_data_year_cd; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_data_year_cd ( + code_id bigint DEFAULT nextval('public.tb_data_year_cd_code_id'::regclass) NOT NULL, + code_cd character varying(255) DEFAULT NULL::character varying, + cd_ct character varying(255) DEFAULT NULL::character varying, + cd_nm character varying(255) DEFAULT NULL::character varying, + cd_odr integer, + used boolean, + deleted boolean NOT NULL, + parent_id bigint, + sys_cd_id bigint, + created_at timestamp without time zone, + updated_at timestamp without time zone +); + + +ALTER TABLE public.tb_data_year_cd OWNER TO kamco_cds; + +-- +-- TOC entry 5815 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.code_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.code_id IS '코드 아이디'; + + +-- +-- TOC entry 5816 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.code_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.code_cd IS '코드'; + + +-- +-- TOC entry 5817 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.cd_ct; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.cd_ct IS '설명'; + + +-- +-- TOC entry 5818 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.cd_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.cd_nm IS '코드명'; + + +-- +-- TOC entry 5819 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.cd_odr; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.cd_odr IS '순서'; + + +-- +-- TOC entry 5820 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.used IS '사용여부'; + + +-- +-- TOC entry 5821 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.deleted IS '삭제여부'; + + +-- +-- TOC entry 5822 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.parent_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.parent_id IS '상위 코드 아이디'; + + +-- +-- TOC entry 5823 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.sys_cd_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.sys_cd_id IS '시스템 코드 아이디'; + + +-- +-- TOC entry 5824 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.created_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.created_at IS '저장일시'; + + +-- +-- TOC entry 5825 (class 0 OID 0) +-- Dependencies: 290 +-- Name: COLUMN tb_data_year_cd.updated_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_data_year_cd.updated_at IS '수정일시'; + + +-- +-- TOC entry 243 (class 1259 OID 48008) +-- Name: tb_error_log_error_log_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_error_log_error_log_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_error_log_error_log_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 291 (class 1259 OID 72321) +-- Name: tb_error_log; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_error_log ( + error_log_uid bigint DEFAULT nextval('public.tb_error_log_error_log_uid_seq'::regclass) NOT NULL, + request_id character varying(255), + error_type character varying(255), + error_level character varying(255), + error_code character varying(255), + error_message character varying(255), + stack_trace text, + handler_uid bigint, + handled_dttm timestamp with time zone, + created_dttm timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.tb_error_log OWNER TO kamco_cds; + +-- +-- TOC entry 5826 (class 0 OID 0) +-- Dependencies: 291 +-- Name: TABLE tb_error_log; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_error_log IS '시스템 에러 로그 (UI_CDSS_LM_02)'; + + +-- +-- TOC entry 5827 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.error_log_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.error_log_uid IS '에러 로그 UID (PK)'; + + +-- +-- TOC entry 5828 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.request_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.request_id IS '요청 ID'; + + +-- +-- TOC entry 5829 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.error_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.error_type IS '에러 구분 (e.g., 다운로드, 프로세싱)'; + + +-- +-- TOC entry 5830 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.error_level; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.error_level IS '에러 레벨 (e.g., 1, 2)'; + + +-- +-- TOC entry 5831 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.error_code; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.error_code IS '에러 코드'; + + +-- +-- TOC entry 5832 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.error_message; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.error_message IS '에러 메시지'; + + +-- +-- TOC entry 5833 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.stack_trace; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.stack_trace IS '스택 트레이스'; + + +-- +-- TOC entry 5834 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.handler_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.handler_uid IS '처리자 UID (FK)'; + + +-- +-- TOC entry 5835 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.handled_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.handled_dttm IS '처리 일시'; + + +-- +-- TOC entry 5836 (class 0 OID 0) +-- Dependencies: 291 +-- Name: COLUMN tb_error_log.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_error_log.created_dttm IS '발생 일시'; + + +-- +-- TOC entry 292 (class 1259 OID 72329) +-- Name: tb_labeling_assignment; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_labeling_assignment ( + assignment_uid uuid DEFAULT gen_random_uuid() NOT NULL, + inference_geom_uid bigint NOT NULL, + worker_uid character varying(50), + inspector_uid character varying(50), + work_state character varying(20) DEFAULT 'WAIT'::character varying, + stagnation_yn character(1) DEFAULT 'N'::bpchar, + skip_reason character varying(255), + inspect_memo text, + assign_group_id character varying(50), + learn_geom_uid bigint, + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now(), + anal_uid bigint, + inspect_state character varying(20), + work_stat_dttm timestamp with time zone, + inspect_stat_dttm timestamp with time zone, + pnu bigint, + last_work_dttm timestamp without time zone +); + + +ALTER TABLE public.tb_labeling_assignment OWNER TO kamco_cds; + +-- +-- TOC entry 5837 (class 0 OID 0) +-- Dependencies: 292 +-- Name: TABLE tb_labeling_assignment; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_labeling_assignment IS '학습데이터 라벨링 작업 할당 및 상태 관리 테이블'; + + +-- +-- TOC entry 5838 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.assignment_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.assignment_uid IS '할당 고유 식별자 (PK)'; + + +-- +-- TOC entry 5839 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.inference_geom_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.inference_geom_uid IS '원본 추론 데이터 고유 식별자 (tb_map_sheet_anal_data_inference_geom.geo_uid 참조)'; + + +-- +-- TOC entry 5840 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.worker_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.worker_uid IS '담당 라벨러 ID (작업자)'; + + +-- +-- TOC entry 5841 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.inspector_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.inspector_uid IS '담당 검수자 ID'; + + +-- +-- TOC entry 5842 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.work_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.work_state IS '작업 진행 상태 (WAIT:대기, LABEL_ING:라벨링중, LABEL_FIN:완료, TEST_ING:검수중, DONE:최종승인, SKIP:스킵)'; + + +-- +-- TOC entry 5843 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.stagnation_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.stagnation_yn IS '작업 정체 여부 (Y: 정체 발생, N: 정상 진행)'; + + +-- +-- TOC entry 5844 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.skip_reason; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.skip_reason IS '스킵 사유'; + + +-- +-- TOC entry 5845 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.inspect_memo; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.inspect_memo IS '검증 메모'; + + +-- +-- TOC entry 5846 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.assign_group_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.assign_group_id IS '일괄 배분 그룹 ID (도엽번호 또는 작업차수 단위 묶음)'; + + +-- +-- TOC entry 5847 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.learn_geom_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.learn_geom_uid IS '작업자가 새로 그린 학습 데이터 식별자 (tb_map_sheet_learn_data_geom.geo_uid 매핑)'; + + +-- +-- TOC entry 5848 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.created_dttm IS '데이터 배정 일시'; + + +-- +-- TOC entry 5849 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.updated_dttm IS '최종 상태 변경 일시 (정체 감지 로직의 기준값)'; + + +-- +-- TOC entry 5850 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.anal_uid IS '추론 회차 uid'; + + +-- +-- TOC entry 5851 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.inspect_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.inspect_state IS '검수상태'; + + +-- +-- TOC entry 5852 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.work_stat_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.work_stat_dttm IS '라벨상태변경일'; + + +-- +-- TOC entry 5853 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.inspect_stat_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.inspect_stat_dttm IS '검수상태변경일'; + + +-- +-- TOC entry 5854 (class 0 OID 0) +-- Dependencies: 292 +-- Name: COLUMN tb_labeling_assignment.last_work_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_assignment.last_work_dttm IS '최종 작업 시간'; + + +-- +-- TOC entry 293 (class 1259 OID 72342) +-- Name: tb_labeling_inspector; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_labeling_inspector ( + operator_uid uuid DEFAULT gen_random_uuid() NOT NULL, + anal_uid bigint NOT NULL, + inspector_uid character varying(50), + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.tb_labeling_inspector OWNER TO kamco_cds; + +-- +-- TOC entry 5855 (class 0 OID 0) +-- Dependencies: 293 +-- Name: TABLE tb_labeling_inspector; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_labeling_inspector IS '라벨링 작업 할당된 검수자 테이블'; + + +-- +-- TOC entry 5856 (class 0 OID 0) +-- Dependencies: 293 +-- Name: COLUMN tb_labeling_inspector.operator_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_inspector.operator_uid IS '할당 고유 식별자 (PK)'; + + +-- +-- TOC entry 5857 (class 0 OID 0) +-- Dependencies: 293 +-- Name: COLUMN tb_labeling_inspector.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_inspector.anal_uid IS '추론 회차 uid'; + + +-- +-- TOC entry 5858 (class 0 OID 0) +-- Dependencies: 293 +-- Name: COLUMN tb_labeling_inspector.inspector_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_inspector.inspector_uid IS '담당 검수자 ID'; + + +-- +-- TOC entry 5859 (class 0 OID 0) +-- Dependencies: 293 +-- Name: COLUMN tb_labeling_inspector.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_inspector.created_dttm IS '데이터 배정 일시'; + + +-- +-- TOC entry 5860 (class 0 OID 0) +-- Dependencies: 293 +-- Name: COLUMN tb_labeling_inspector.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_inspector.updated_dttm IS '최종 상태 변경 일시 (정체 감지 로직의 기준값)'; + + +-- +-- TOC entry 294 (class 1259 OID 72351) +-- Name: tb_labeling_labeler; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_labeling_labeler ( + lb_usr_uid uuid DEFAULT gen_random_uuid() NOT NULL, + anal_uid bigint NOT NULL, + worker_uid character varying(50), + allocate_cnt bigint, + deleted boolean DEFAULT false, + re_allocate_yn boolean, + re_allocate_cnt bigint, + re_allocate_worker_uid character varying(50), + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now() +); + + +ALTER TABLE public.tb_labeling_labeler OWNER TO kamco_cds; + +-- +-- TOC entry 5861 (class 0 OID 0) +-- Dependencies: 294 +-- Name: TABLE tb_labeling_labeler; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_labeling_labeler IS '라벨링 작업 할당된 라벨러 테이블'; + + +-- +-- TOC entry 5862 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.lb_usr_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.lb_usr_uid IS '할당 고유 식별자 (PK)'; + + +-- +-- TOC entry 5863 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.anal_uid IS '추론 회차 uid'; + + +-- +-- TOC entry 5864 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.worker_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.worker_uid IS '담당 라벨러 ID'; + + +-- +-- TOC entry 5865 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.allocate_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.allocate_cnt IS '할당량 count'; + + +-- +-- TOC entry 5866 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.deleted IS '삭제여부'; + + +-- +-- TOC entry 5867 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.re_allocate_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.re_allocate_yn IS '재할당여부'; + + +-- +-- TOC entry 5868 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.re_allocate_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.re_allocate_cnt IS '재할당 수량'; + + +-- +-- TOC entry 5869 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.re_allocate_worker_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.re_allocate_worker_uid IS '재할당 대상 사번'; + + +-- +-- TOC entry 5870 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.created_dttm IS '등록일시'; + + +-- +-- TOC entry 5871 (class 0 OID 0) +-- Dependencies: 294 +-- Name: COLUMN tb_labeling_labeler.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_labeling_labeler.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 295 (class 1259 OID 72361) +-- Name: tb_log; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_log ( + log_id bigint NOT NULL, + sys_cd_id bigint, + menu_id bigint, + event_type character varying(50), + event_params json, + accnt_id bigint, + event_started_at timestamp with time zone, + event_ended_at timestamp with time zone, + event_status character varying(50), + error_code integer, + error_level character varying(50), + error_name character varying(50), + error_message character varying(255), + error_detail text, + created_dttm timestamp with time zone, + updated_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_log OWNER TO kamco_cds; + +-- +-- TOC entry 5872 (class 0 OID 0) +-- Dependencies: 295 +-- Name: TABLE tb_log; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_log IS '시스템 상세 이벤트 및 행위 로그'; + + +-- +-- TOC entry 5873 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.log_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.log_id IS '로그 식별자 (PK)'; + + +-- +-- TOC entry 5874 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.sys_cd_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.sys_cd_id IS '시스템 코드 ID'; + + +-- +-- TOC entry 5875 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.menu_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.menu_id IS '메뉴 식별자'; + + +-- +-- TOC entry 5876 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.event_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.event_type IS '이벤트 유형 (LOGIN, SEARCH, API_CALL 등)'; + + +-- +-- TOC entry 5877 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.event_params; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.event_params IS '이벤트 발생 시 전달된 파라미터 (JSON)'; + + +-- +-- TOC entry 5878 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.accnt_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.accnt_id IS '계정 식별자'; + + +-- +-- TOC entry 5879 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.event_started_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.event_started_at IS '이벤트 시작 일시'; + + +-- +-- TOC entry 5880 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.event_ended_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.event_ended_at IS '이벤트 종료 일시'; + + +-- +-- TOC entry 5881 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.event_status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.event_status IS '이벤트 상태 (SUCCESS, FAIL)'; + + +-- +-- TOC entry 5882 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.error_code; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.error_code IS '에러 코드'; + + +-- +-- TOC entry 5883 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.error_level; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.error_level IS '에러 레벨'; + + +-- +-- TOC entry 5884 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.error_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.error_name IS '에러 명칭'; + + +-- +-- TOC entry 5885 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.error_message; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.error_message IS '에러 메시지'; + + +-- +-- TOC entry 5886 (class 0 OID 0) +-- Dependencies: 295 +-- Name: COLUMN tb_log.error_detail; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_log.error_detail IS '에러 상세 정보 (Stack Trace 등)'; + + +-- +-- TOC entry 296 (class 1259 OID 72367) +-- Name: tb_log_log_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE public.tb_log ALTER COLUMN log_id ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME public.tb_log_log_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- TOC entry 297 (class 1259 OID 72368) +-- Name: tb_map_inkx_50k; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_inkx_50k ( + fid integer NOT NULL, + mapidcd_no character varying(12), + mapid_nm character varying(100), + mapid_no character varying(100), + geom public.geometry(Polygon,4326), + created_dttm timestamp with time zone, + updated_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_map_inkx_50k OWNER TO kamco_cds; + +-- +-- TOC entry 5887 (class 0 OID 0) +-- Dependencies: 297 +-- Name: TABLE tb_map_inkx_50k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_inkx_50k IS '1:50,000 수치지도 도엽 인덱스'; + + +-- +-- TOC entry 5888 (class 0 OID 0) +-- Dependencies: 297 +-- Name: COLUMN tb_map_inkx_50k.fid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_50k.fid IS '피처 식별자 (PK)'; + + +-- +-- TOC entry 5889 (class 0 OID 0) +-- Dependencies: 297 +-- Name: COLUMN tb_map_inkx_50k.mapidcd_no; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_50k.mapidcd_no IS '도엽 코드 번호'; + + +-- +-- TOC entry 5890 (class 0 OID 0) +-- Dependencies: 297 +-- Name: COLUMN tb_map_inkx_50k.mapid_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_50k.mapid_nm IS '도엽 명칭'; + + +-- +-- TOC entry 5891 (class 0 OID 0) +-- Dependencies: 297 +-- Name: COLUMN tb_map_inkx_50k.mapid_no; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_50k.mapid_no IS '도엽 번호'; + + +-- +-- TOC entry 5892 (class 0 OID 0) +-- Dependencies: 297 +-- Name: COLUMN tb_map_inkx_50k.geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_50k.geom IS '공간 기하 정보 (Polygon, EPSG:4326)'; + + +-- +-- TOC entry 298 (class 1259 OID 72374) +-- Name: tb_map_inkx_50k_fid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_inkx_50k_fid_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_inkx_50k_fid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5893 (class 0 OID 0) +-- Dependencies: 298 +-- Name: tb_map_inkx_50k_fid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_inkx_50k_fid_seq OWNED BY public.tb_map_inkx_50k.fid; + + +-- +-- TOC entry 299 (class 1259 OID 72375) +-- Name: tb_map_inkx_5k; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_inkx_5k ( + fid integer NOT NULL, + mapidcd_no character varying(12), + mapid_nm character varying(100), + geom public.geometry(Polygon,4326), + fid_k50 integer, + use_inference character varying(20), + created_dttm timestamp with time zone, + updated_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_map_inkx_5k OWNER TO kamco_cds; + +-- +-- TOC entry 5894 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.fid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.fid IS '피처 식별자 (PK)'; + + +-- +-- TOC entry 5895 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.mapidcd_no; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.mapidcd_no IS '도엽 코드 번호'; + + +-- +-- TOC entry 5896 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.mapid_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.mapid_nm IS '도엽 명칭'; + + +-- +-- TOC entry 5897 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.geom IS '공간 기하 정보 (Polygon, EPSG:4326)'; + + +-- +-- TOC entry 5898 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.fid_k50; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.fid_k50 IS '상위 5만 도엽(tb_map_inkx_50k) 연결 ID'; + + +-- +-- TOC entry 5899 (class 0 OID 0) +-- Dependencies: 299 +-- Name: COLUMN tb_map_inkx_5k.use_inference; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_inkx_5k.use_inference IS '제외처리'; + + +-- +-- TOC entry 300 (class 1259 OID 72381) +-- Name: tb_map_inkx_5k_fid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_inkx_5k_fid_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_inkx_5k_fid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5900 (class 0 OID 0) +-- Dependencies: 300 +-- Name: tb_map_inkx_5k_fid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_inkx_5k_fid_seq OWNED BY public.tb_map_inkx_5k.fid; + + +-- +-- TOC entry 244 (class 1259 OID 48038) +-- Name: tb_map_sheet_anal_anal_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_anal_anal_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_anal_anal_uid OWNER TO kamco_cds; + +-- +-- TOC entry 245 (class 1259 OID 48049) +-- Name: tb_map_sheet_anal_data_data_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_anal_data_data_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_anal_data_data_uid OWNER TO kamco_cds; + +-- +-- TOC entry 301 (class 1259 OID 72382) +-- Name: tb_map_sheet_anal_data_inference; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_anal_data_inference ( + data_uid bigint NOT NULL, + data_name character varying(128), + data_path character varying(255), + data_type character varying(128), + data_crs_type character varying(128), + data_crs_type_name character varying(255), + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + compare_yyyy integer, + target_yyyy integer, + data_json text, + data_state character varying(20) DEFAULT '0'::character varying, + data_state_dttm timestamp with time zone DEFAULT now(), + anal_strt_dttm timestamp with time zone, + anal_end_dttm timestamp with time zone, + anal_sec bigint DEFAULT 0, + anal_state character varying(20), + anal_uid bigint, + map_sheet_num bigint, + detecting_cnt bigint DEFAULT 0, + pnu bigint DEFAULT 0, + down_state character varying(20), + down_state_dttm timestamp with time zone, + fit_state character varying(20), + fit_state_dttm timestamp with time zone, + labeler_uid bigint, + label_state character varying(20) DEFAULT NULL::character varying, + label_state_dttm timestamp with time zone, + tester_uid bigint, + test_state character varying(20), + test_state_dttm timestamp with time zone, + fit_state_cmmnt text, + ref_map_sheet_num bigint, + stage integer, + file_created_yn boolean DEFAULT false, + m1 character varying(100), + m2 character varying(100), + m3 character varying(100), + file_created_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_map_sheet_anal_data_inference OWNER TO kamco_cds; + +-- +-- TOC entry 5901 (class 0 OID 0) +-- Dependencies: 301 +-- Name: TABLE tb_map_sheet_anal_data_inference; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_anal_data_inference IS '분석데이터 정보 (학습데이터)'; + + +-- +-- TOC entry 5902 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_uid IS '식별키'; + + +-- +-- TOC entry 5903 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_name IS '데이타명'; + + +-- +-- TOC entry 5904 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_path IS '경로'; + + +-- +-- TOC entry 5905 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_type IS '타입'; + + +-- +-- TOC entry 5906 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_crs_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_crs_type IS 'CRS타입'; + + +-- +-- TOC entry 5907 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_crs_type_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_crs_type_name IS 'CRS타입명'; + + +-- +-- TOC entry 5908 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.created_dttm IS '등록일'; + + +-- +-- TOC entry 5909 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.created_uid IS '등록자'; + + +-- +-- TOC entry 5910 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.updated_dttm IS '수정일'; + + +-- +-- TOC entry 5911 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.updated_uid IS '수정자'; + + +-- +-- TOC entry 5912 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.compare_yyyy IS '비교년도'; + + +-- +-- TOC entry 5913 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.target_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.target_yyyy IS '기준년도'; + + +-- +-- TOC entry 5914 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_json; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_json IS 'json전체'; + + +-- +-- TOC entry 5915 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_state IS '처리상태'; + + +-- +-- TOC entry 5916 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.data_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.data_state_dttm IS '데이터처리일'; + + +-- +-- TOC entry 5917 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.anal_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.anal_strt_dttm IS '분석시작일'; + + +-- +-- TOC entry 5918 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.anal_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.anal_end_dttm IS '분석종료일'; + + +-- +-- TOC entry 5919 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.anal_sec; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.anal_sec IS '분석소요초'; + + +-- +-- TOC entry 5920 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.anal_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.anal_state IS '분석상태'; + + +-- +-- TOC entry 5921 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.anal_uid IS '분석식별키'; + + +-- +-- TOC entry 5922 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 5923 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.detecting_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.detecting_cnt IS '변화탐지건수'; + + +-- +-- TOC entry 5924 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.pnu IS 'pnu'; + + +-- +-- TOC entry 5925 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.down_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.down_state IS '다운로드상태'; + + +-- +-- TOC entry 5926 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.down_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.down_state_dttm IS '다운로드일시'; + + +-- +-- TOC entry 5927 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.fit_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.fit_state IS '적합상태'; + + +-- +-- TOC entry 5928 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.fit_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.fit_state_dttm IS '적합상태일시'; + + +-- +-- TOC entry 5929 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.labeler_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.labeler_uid IS '라벨링담당자'; + + +-- +-- TOC entry 5930 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.label_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.label_state IS '라벨링상태'; + + +-- +-- TOC entry 5931 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.label_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.label_state_dttm IS '라벨링일시'; + + +-- +-- TOC entry 5932 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.tester_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.tester_uid IS '검수자'; + + +-- +-- TOC entry 5933 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.test_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.test_state IS '검수상태'; + + +-- +-- TOC entry 5934 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.test_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.test_state_dttm IS '검수상태일시'; + + +-- +-- TOC entry 5935 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.fit_state_cmmnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.fit_state_cmmnt IS '적합상태사유'; + + +-- +-- TOC entry 5936 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.ref_map_sheet_num IS '참조도엽번호'; + + +-- +-- TOC entry 5937 (class 0 OID 0) +-- Dependencies: 301 +-- Name: COLUMN tb_map_sheet_anal_data_inference.file_created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference.file_created_dttm IS '파일 생성일시'; + + +-- +-- TOC entry 302 (class 1259 OID 72397) +-- Name: tb_map_sheet_anal_data_inference_data_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_anal_data_inference_data_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_anal_data_inference_data_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 5938 (class 0 OID 0) +-- Dependencies: 302 +-- Name: tb_map_sheet_anal_data_inference_data_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_sheet_anal_data_inference_data_uid_seq OWNED BY public.tb_map_sheet_anal_data_inference.data_uid; + + +-- +-- TOC entry 303 (class 1259 OID 72398) +-- Name: tb_map_sheet_anal_data_inference_geom; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_anal_data_inference_geom ( + geo_uid bigint NOT NULL, + cd_prob double precision, + class_before_cd character varying(40), + class_before_prob double precision, + class_after_cd character varying(40), + class_after_prob double precision, + map_sheet_num bigint, + ref_map_sheet_num bigint, + compare_yyyy integer, + target_yyyy integer, + area double precision, + geom public.geometry, + before_geom public.geometry, + geom_center public.geometry, + geo_type character varying(100), + data_uid bigint, + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + geom_cnt bigint DEFAULT 0, + pnu bigint DEFAULT 0, + fit_state character varying(20) DEFAULT '0'::character varying, + fit_state_dttm timestamp with time zone DEFAULT now(), + fit_state_cmmnt text, + labeler_uid bigint, + label_state character varying(20), + label_state_dttm timestamp with time zone DEFAULT now(), + tester_uid bigint, + test_state character varying(20), + test_state_dttm timestamp with time zone DEFAULT now(), + map_5k_id bigint, + uuid uuid DEFAULT public.uuid_generate_v4(), + stage integer, + file_created_yn boolean DEFAULT false, + file_created_dttm timestamp with time zone, + pass_yn boolean, + pass_yn_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_map_sheet_anal_data_inference_geom OWNER TO kamco_cds; + +-- +-- TOC entry 5939 (class 0 OID 0) +-- Dependencies: 303 +-- Name: TABLE tb_map_sheet_anal_data_inference_geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_anal_data_inference_geom IS '분석데이터 GEOM 정보 (학습데이터)'; + + +-- +-- TOC entry 5940 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.geo_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.geo_uid IS '식별키'; + + +-- +-- TOC entry 5941 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.cd_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.cd_prob IS '정확도'; + + +-- +-- TOC entry 5942 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.class_before_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.class_before_cd IS '이전class명'; + + +-- +-- TOC entry 5943 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.class_before_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.class_before_prob IS '이전class정확도'; + + +-- +-- TOC entry 5944 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.class_after_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.class_after_cd IS '이후class코드'; + + +-- +-- TOC entry 5945 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.class_after_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.class_after_prob IS '이후class정확도'; + + +-- +-- TOC entry 5946 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 5947 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.ref_map_sheet_num IS '참조(부모)도엽번호'; + + +-- +-- TOC entry 5948 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.compare_yyyy IS '이전년도'; + + +-- +-- TOC entry 5949 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.target_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.target_yyyy IS '이후년도'; + + +-- +-- TOC entry 5950 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.area IS '면적'; + + +-- +-- TOC entry 5951 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.geom IS 'geometry정보'; + + +-- +-- TOC entry 5952 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.geom_center; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.geom_center IS '폴리곤중앙값'; + + +-- +-- TOC entry 5953 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.geo_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.geo_type IS '타입'; + + +-- +-- TOC entry 5954 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.data_uid IS '데이터식별키'; + + +-- +-- TOC entry 5955 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.created_dttm IS '등록일'; + + +-- +-- TOC entry 5956 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.created_uid IS '등록자'; + + +-- +-- TOC entry 5957 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.updated_dttm IS '수정일'; + + +-- +-- TOC entry 5958 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.updated_uid IS '수정자'; + + +-- +-- TOC entry 5959 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.geom_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.geom_cnt IS 'geometry건수'; + + +-- +-- TOC entry 5960 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.pnu IS 'pnu'; + + +-- +-- TOC entry 5961 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.fit_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.fit_state IS '적합상태'; + + +-- +-- TOC entry 5962 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.fit_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.fit_state_dttm IS '적합상태일시'; + + +-- +-- TOC entry 5963 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.fit_state_cmmnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.fit_state_cmmnt IS '적합상태사유'; + + +-- +-- TOC entry 5964 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.labeler_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.labeler_uid IS '라벨'; + + +-- +-- TOC entry 5965 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.label_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.label_state IS '라벨링상태'; + + +-- +-- TOC entry 5966 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.label_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.label_state_dttm IS '라벨링상태일시'; + + +-- +-- TOC entry 5967 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.tester_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.tester_uid IS '검수자'; + + +-- +-- TOC entry 5968 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.test_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.test_state IS '검수상태'; + + +-- +-- TOC entry 5969 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.test_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.test_state_dttm IS '검수일'; + + +-- +-- TOC entry 5970 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.file_created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.file_created_dttm IS '파일 생성 일시'; + + +-- +-- TOC entry 5971 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.pass_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.pass_yn IS '적합여부 (true: 적합, false: 부적합)'; + + +-- +-- TOC entry 5972 (class 0 OID 0) +-- Dependencies: 303 +-- Name: COLUMN tb_map_sheet_anal_data_inference_geom.pass_yn_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_data_inference_geom.pass_yn_dttm IS '적합여부 등록일시'; + + +-- +-- TOC entry 304 (class 1259 OID 72414) +-- Name: tb_map_sheet_anal_data_inference_geom_geo_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE public.tb_map_sheet_anal_data_inference_geom ALTER COLUMN geo_uid ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME public.tb_map_sheet_anal_data_inference_geom_geo_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- TOC entry 247 (class 1259 OID 48124) +-- Name: tb_map_sheet_anal_inference_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_anal_inference_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_anal_inference_uid OWNER TO kamco_cds; + +-- +-- TOC entry 305 (class 1259 OID 72415) +-- Name: tb_map_sheet_anal_inference; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_anal_inference ( + anal_uid bigint DEFAULT nextval('public.tb_map_sheet_anal_inference_uid'::regclass) NOT NULL, + compare_yyyy integer, + target_yyyy integer, + model_uid bigint, + server_ids character varying(100), + anal_strt_dttm timestamp with time zone, + anal_end_dttm timestamp with time zone, + anal_sec bigint, + anal_state character varying(20), + gukyuin_used character varying(20), + accuracy double precision, + result_url character varying(255), + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + anal_title character varying(255), + detecting_cnt bigint, + anal_pred_sec bigint, + model_ver_uid bigint, + hyper_params json, + tranning_rate double precision[], + validation_rate double precision[], + test_rate character varying, + detecting_description character varying(128), + base_map_sheet_num character varying(12), + uuid uuid DEFAULT gen_random_uuid(), + model_m1_ver character varying(50), + model_m2_ver character varying(50), + model_m3_ver character varying(50), + anal_target_type character varying(20), + gukyuin_apply_dttm timestamp with time zone, + detection_data_option character varying(20), + stage integer, + labeling_closed_yn character varying(1) DEFAULT 'N'::character varying, + inspection_closed_yn character varying(1) DEFAULT 'N'::character varying +); + + +ALTER TABLE public.tb_map_sheet_anal_inference OWNER TO kamco_cds; + +-- +-- TOC entry 5973 (class 0 OID 0) +-- Dependencies: 305 +-- Name: TABLE tb_map_sheet_anal_inference; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_anal_inference IS '분석현황 (학습 데이터)'; + + +-- +-- TOC entry 5974 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_uid IS '식별키'; + + +-- +-- TOC entry 5975 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.compare_yyyy IS '비교년도'; + + +-- +-- TOC entry 5976 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.target_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.target_yyyy IS '기준년도'; + + +-- +-- TOC entry 5977 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.model_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.model_uid IS '모델식별키'; + + +-- +-- TOC entry 5978 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.server_ids; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.server_ids IS '서버ID'; + + +-- +-- TOC entry 5979 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_strt_dttm IS '분석시작일'; + + +-- +-- TOC entry 5980 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_end_dttm IS '분석종료일'; + + +-- +-- TOC entry 5981 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_sec; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_sec IS '소요초'; + + +-- +-- TOC entry 5982 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_state IS '분석상태'; + + +-- +-- TOC entry 5983 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.gukyuin_used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.gukyuin_used IS '국유인반영여부'; + + +-- +-- TOC entry 5984 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.accuracy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.accuracy IS '정확도'; + + +-- +-- TOC entry 5985 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.result_url; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.result_url IS '결과URL'; + + +-- +-- TOC entry 5986 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.created_dttm IS '등록일'; + + +-- +-- TOC entry 5987 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.created_uid IS '등록자'; + + +-- +-- TOC entry 5988 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.updated_dttm IS '수정일'; + + +-- +-- TOC entry 5989 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.updated_uid IS '수정자'; + + +-- +-- TOC entry 5990 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_title; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_title IS '제목'; + + +-- +-- TOC entry 5991 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.detecting_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.detecting_cnt IS '탐지건수'; + + +-- +-- TOC entry 5992 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_pred_sec; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_pred_sec IS '예상소요초'; + + +-- +-- TOC entry 5993 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.model_ver_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.model_ver_uid IS '모델버전식별키'; + + +-- +-- TOC entry 5994 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.hyper_params; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.hyper_params IS '하이퍼파라메터'; + + +-- +-- TOC entry 5995 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.tranning_rate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.tranning_rate IS 'tranning비율'; + + +-- +-- TOC entry 5996 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.validation_rate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.validation_rate IS 'validation비율'; + + +-- +-- TOC entry 5997 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.test_rate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.test_rate IS '테스트비율'; + + +-- +-- TOC entry 5998 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.detecting_description; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.detecting_description IS '변화탐지설명'; + + +-- +-- TOC entry 5999 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.base_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.base_map_sheet_num IS '기본도엽번호(5k)'; + + +-- +-- TOC entry 6000 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.uuid IS 'UUID'; + + +-- +-- TOC entry 6001 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.model_m1_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.model_m1_ver IS '모델M1버전'; + + +-- +-- TOC entry 6002 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.model_m2_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.model_m2_ver IS '모델M2버전'; + + +-- +-- TOC entry 6003 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.model_m3_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.model_m3_ver IS '모델M3버전'; + + +-- +-- TOC entry 6004 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.anal_target_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.anal_target_type IS '분석대상도엽(ALL/PART)'; + + +-- +-- TOC entry 6005 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.gukyuin_apply_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.gukyuin_apply_dttm IS '국유인 반영일시'; + + +-- +-- TOC entry 6006 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.stage; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.stage IS '회차'; + + +-- +-- TOC entry 6007 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.labeling_closed_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.labeling_closed_yn IS '라벨링 종료 여부 (Y: 종료, N: 진행중)'; + + +-- +-- TOC entry 6008 (class 0 OID 0) +-- Dependencies: 305 +-- Name: COLUMN tb_map_sheet_anal_inference.inspection_closed_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_inference.inspection_closed_yn IS '검수 종료 여부 (Y: 종료, N: 진행중)'; + + +-- +-- TOC entry 306 (class 1259 OID 72427) +-- Name: tb_map_sheet_anal_sttc; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_anal_sttc ( + compare_yyyy integer NOT NULL, + target_yyyy integer NOT NULL, + map_sheet_num bigint NOT NULL, + class_before_cnt bigint, + class_after_cnt bigint, + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + ref_map_sheet_num bigint NOT NULL, + data_uid bigint NOT NULL, + class_before_cd character varying(30) DEFAULT NULL::character varying NOT NULL, + class_after_cd character varying(30) DEFAULT NULL::character varying NOT NULL, + anal_uid bigint, + class_after_prob_avg double precision +); + + +ALTER TABLE public.tb_map_sheet_anal_sttc OWNER TO kamco_cds; + +-- +-- TOC entry 6009 (class 0 OID 0) +-- Dependencies: 306 +-- Name: TABLE tb_map_sheet_anal_sttc; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_anal_sttc IS '분석결과집계현황'; + + +-- +-- TOC entry 6010 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.compare_yyyy IS '비교년도'; + + +-- +-- TOC entry 6011 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.target_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.target_yyyy IS '기준년도'; + + +-- +-- TOC entry 6012 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 6013 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.class_before_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.class_before_cnt IS '이전class수'; + + +-- +-- TOC entry 6014 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.class_after_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.class_after_cnt IS '이후class수'; + + +-- +-- TOC entry 6015 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.created_dttm IS '등록일'; + + +-- +-- TOC entry 6016 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.created_uid IS '등록자'; + + +-- +-- TOC entry 6017 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.updated_dttm IS '수정일'; + + +-- +-- TOC entry 6018 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.updated_uid IS '수정자'; + + +-- +-- TOC entry 6019 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.ref_map_sheet_num IS '참조(부모)도엽번호'; + + +-- +-- TOC entry 6020 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.data_uid IS '분석테이터 식별키'; + + +-- +-- TOC entry 6021 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.class_before_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.class_before_cd IS '이전class코드(영문)'; + + +-- +-- TOC entry 6022 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.class_after_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.class_after_cd IS '이후class코드(영문)'; + + +-- +-- TOC entry 6023 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.anal_uid IS '분석현황식별키'; + + +-- +-- TOC entry 6024 (class 0 OID 0) +-- Dependencies: 306 +-- Name: COLUMN tb_map_sheet_anal_sttc.class_after_prob_avg; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_sttc.class_after_prob_avg IS '정확도평균'; + + +-- +-- TOC entry 307 (class 1259 OID 72441) +-- Name: tb_map_sheet_anal_target_data; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_anal_target_data ( + target_uid bigint NOT NULL, + anal_uid bigint, + data_uid bigint +); + + +ALTER TABLE public.tb_map_sheet_anal_target_data OWNER TO kamco_cds; + +-- +-- TOC entry 6025 (class 0 OID 0) +-- Dependencies: 307 +-- Name: TABLE tb_map_sheet_anal_target_data; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_anal_target_data IS '분석실행데이터'; + + +-- +-- TOC entry 6026 (class 0 OID 0) +-- Dependencies: 307 +-- Name: COLUMN tb_map_sheet_anal_target_data.target_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_target_data.target_uid IS '식별키'; + + +-- +-- TOC entry 6027 (class 0 OID 0) +-- Dependencies: 307 +-- Name: COLUMN tb_map_sheet_anal_target_data.anal_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_target_data.anal_uid IS '분석현황식별키'; + + +-- +-- TOC entry 6028 (class 0 OID 0) +-- Dependencies: 307 +-- Name: COLUMN tb_map_sheet_anal_target_data.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_anal_target_data.data_uid IS '데이터식별키'; + + +-- +-- TOC entry 345 (class 1259 OID 74981) +-- Name: tb_map_sheet_learn; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_learn ( + id bigint NOT NULL, + uuid uuid DEFAULT gen_random_uuid(), + title character varying(200) NOT NULL, + status character varying(10), + m1_model_uuid uuid, + m2_model_uuid uuid, + m3_model_uuid uuid, + compare_yyyy integer, + target_yyyy integer, + detect_option character varying(20), + map_sheet_scope character varying(20), + detecting_cnt bigint, + infer_start_dttm timestamp with time zone, + infer_end_dttm timestamp with time zone, + elapsed_time timestamp with time zone, + apply_yn boolean, + apply_dttm timestamp with time zone, + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + map_sheet_cnt character varying(100) +); + + +ALTER TABLE public.tb_map_sheet_learn OWNER TO kamco_cds; + +-- +-- TOC entry 6029 (class 0 OID 0) +-- Dependencies: 345 +-- Name: TABLE tb_map_sheet_learn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_learn IS '추론관리 목록'; + + +-- +-- TOC entry 6030 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.id IS '식별키'; + + +-- +-- TOC entry 6031 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.uuid IS 'UUID'; + + +-- +-- TOC entry 6032 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.title; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.title IS '제목'; + + +-- +-- TOC entry 6033 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.status IS '상태'; + + +-- +-- TOC entry 6034 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.m1_model_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.m1_model_uuid IS '모델1 식별키'; + + +-- +-- TOC entry 6035 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.m2_model_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.m2_model_uuid IS '모델2 식별키'; + + +-- +-- TOC entry 6036 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.m3_model_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.m3_model_uuid IS '모델3 식별키'; + + +-- +-- TOC entry 6037 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.compare_yyyy IS '비교년도'; + + +-- +-- TOC entry 6038 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.target_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.target_yyyy IS '기준년도'; + + +-- +-- TOC entry 6039 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.detect_option; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.detect_option IS '탐지 데이터 옵션 - EXCL 추론제외, PREV 이전 년도 도엽 사용 '; + + +-- +-- TOC entry 6040 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.map_sheet_scope; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.map_sheet_scope IS '분석대상 도엽 - ALL 전체, PART 부분'; + + +-- +-- TOC entry 6041 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.detecting_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.detecting_cnt IS '탐지건수'; + + +-- +-- TOC entry 6042 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.infer_start_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.infer_start_dttm IS '변화탐지 추론 기간 시작일시'; + + +-- +-- TOC entry 6043 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.infer_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.infer_end_dttm IS '변화탐지 추론 기간 종료일시'; + + +-- +-- TOC entry 6044 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.elapsed_time; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.elapsed_time IS '소요시간'; + + +-- +-- TOC entry 6045 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.apply_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.apply_yn IS '반영여부'; + + +-- +-- TOC entry 6046 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.apply_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.apply_dttm IS '반영일시'; + + +-- +-- TOC entry 6047 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6048 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.created_uid IS '등록자'; + + +-- +-- TOC entry 6049 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 6050 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.updated_uid IS '수정자'; + + +-- +-- TOC entry 6051 (class 0 OID 0) +-- Dependencies: 345 +-- Name: COLUMN tb_map_sheet_learn.map_sheet_cnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn.map_sheet_cnt IS '분석 도엽 (화성 외 38건)'; + + +-- +-- TOC entry 346 (class 1259 OID 74992) +-- Name: tb_map_sheet_learn_5k; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_learn_5k ( + id bigint NOT NULL, + learn_id bigint NOT NULL, + map_sheet_num bigint NOT NULL, + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint +); + + +ALTER TABLE public.tb_map_sheet_learn_5k OWNER TO kamco_cds; + +-- +-- TOC entry 6052 (class 0 OID 0) +-- Dependencies: 346 +-- Name: TABLE tb_map_sheet_learn_5k; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_learn_5k IS '변화탐지 실행 정보 입력 5k도엽 정보'; + + +-- +-- TOC entry 6053 (class 0 OID 0) +-- Dependencies: 346 +-- Name: COLUMN tb_map_sheet_learn_5k.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_5k.id IS '식별키'; + + +-- +-- TOC entry 6054 (class 0 OID 0) +-- Dependencies: 346 +-- Name: COLUMN tb_map_sheet_learn_5k.learn_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_5k.learn_id IS 'tb_map_sheet_learn 테이블 id'; + + +-- +-- TOC entry 6055 (class 0 OID 0) +-- Dependencies: 346 +-- Name: COLUMN tb_map_sheet_learn_5k.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_5k.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 6056 (class 0 OID 0) +-- Dependencies: 346 +-- Name: COLUMN tb_map_sheet_learn_5k.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_5k.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6057 (class 0 OID 0) +-- Dependencies: 346 +-- Name: COLUMN tb_map_sheet_learn_5k.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_5k.created_uid IS '등록자'; + + +-- +-- TOC entry 343 (class 1259 OID 74979) +-- Name: tb_map_sheet_learn_5k_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_learn_5k_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_learn_5k_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6058 (class 0 OID 0) +-- Dependencies: 343 +-- Name: tb_map_sheet_learn_5k_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_sheet_learn_5k_seq OWNED BY public.tb_map_sheet_learn_5k.id; + + +-- +-- TOC entry 308 (class 1259 OID 72465) +-- Name: tb_map_sheet_learn_data; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_learn_data ( + data_uid bigint NOT NULL, + anal_end_dttm timestamp with time zone, + anal_map_sheet character varying(255), + anal_sec bigint, + anal_state character varying(20), + anal_strt_dttm timestamp with time zone, + compare_yyyy integer, + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + data_crs_type character varying(128), + data_crs_type_name character varying(255), + data_json json, + data_name character varying(128), + data_path character varying(255), + data_state character varying(20), + data_state_dttm timestamp with time zone DEFAULT now(), + data_title character varying(255), + data_type character varying(128), + data_yyyy integer, + gukuin_used character varying(20), + gukuin_used_dttm timestamp with time zone, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint +); + + +ALTER TABLE public.tb_map_sheet_learn_data OWNER TO kamco_cds; + +-- +-- TOC entry 6059 (class 0 OID 0) +-- Dependencies: 308 +-- Name: TABLE tb_map_sheet_learn_data; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_learn_data IS '분석데이터 (AI 추론 데이터)'; + + +-- +-- TOC entry 6060 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_uid IS '데이터 식별자 (PK)'; + + +-- +-- TOC entry 6061 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.anal_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.anal_end_dttm IS '분석 종료 일시'; + + +-- +-- TOC entry 6062 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.anal_map_sheet; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.anal_map_sheet IS '분석 대상 도엽 목록'; + + +-- +-- TOC entry 6063 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.anal_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.anal_state IS '분석 진행 상태'; + + +-- +-- TOC entry 6064 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.anal_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.anal_strt_dttm IS '분석 시작 일시'; + + +-- +-- TOC entry 6065 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.compare_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.compare_yyyy IS '비교 기준 연도'; + + +-- +-- TOC entry 6066 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.created_dttm IS '최초 등록 일시'; + + +-- +-- TOC entry 6067 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.created_uid IS '등록자 식별키'; + + +-- +-- TOC entry 6068 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_crs_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_crs_type IS '좌표계 유형 (EPSG 코드 등)'; + + +-- +-- TOC entry 6069 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_crs_type_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_crs_type_name IS '좌표계 명칭'; + + +-- +-- TOC entry 6070 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_json; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_json IS '분석 설정 및 결과 JSON'; + + +-- +-- TOC entry 6071 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_name IS '데이터 명칭'; + + +-- +-- TOC entry 6072 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_path IS '데이터 저장 경로'; + + +-- +-- TOC entry 6073 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_state IS '데이터 처리 상태'; + + +-- +-- TOC entry 6074 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_state_dttm IS '데이터 상태 변경 일시'; + + +-- +-- TOC entry 6075 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_title; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_title IS '데이터 제목'; + + +-- +-- TOC entry 6076 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_type IS '데이터 유형 (AI_INFERENCE 등)'; + + +-- +-- TOC entry 6077 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.data_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_yyyy IS '데이터 대상 연도'; + + +-- +-- TOC entry 6078 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.gukuin_used; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.gukuin_used IS '국유인(Gukuin) 시스템 반영 여부'; + + +-- +-- TOC entry 6079 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.gukuin_used_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.gukuin_used_dttm IS '국유인 시스템 반영 일시'; + + +-- +-- TOC entry 6080 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.updated_dttm IS '최종 수정 일시'; + + +-- +-- TOC entry 6081 (class 0 OID 0) +-- Dependencies: 308 +-- Name: COLUMN tb_map_sheet_learn_data.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data.updated_uid IS '수정자 식별키'; + + +-- +-- TOC entry 248 (class 1259 OID 48162) +-- Name: tb_map_sheet_learn_data_data_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_learn_data_data_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_learn_data_data_uid OWNER TO kamco_cds; + +-- +-- TOC entry 309 (class 1259 OID 72474) +-- Name: tb_map_sheet_learn_data_geom; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_learn_data_geom ( + geo_uid bigint NOT NULL, + after_yyyy integer, + area double precision, + before_yyyy integer, + cd_prob double precision, + class_after_cd character varying(100), + class_after_prob double precision, + class_before_cd character varying(100), + class_before_prob double precision, + created_dttm timestamp with time zone, + created_uid bigint, + data_uid bigint, + geo_type character varying(100), + map_sheet_num bigint, + updated_dttm timestamp with time zone, + updated_uid bigint, + geom public.geometry(Polygon,5186), + label_status_cd character varying(20) DEFAULT 'WAIT'::character varying, + survey_result_cd character varying(20), + failure_reason_cd character varying(20), + history_jsonb jsonb DEFAULT '[]'::jsonb +); + + +ALTER TABLE public.tb_map_sheet_learn_data_geom OWNER TO kamco_cds; + +-- +-- TOC entry 6082 (class 0 OID 0) +-- Dependencies: 309 +-- Name: TABLE tb_map_sheet_learn_data_geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_learn_data_geom IS '라벨링 툴에서 그린 폴리곤 저장'; + + +-- +-- TOC entry 6083 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.geo_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.geo_uid IS '공간 데이터 식별자 (PK)'; + + +-- +-- TOC entry 6084 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.after_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.after_yyyy IS '변화 후 연도'; + + +-- +-- TOC entry 6085 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.area IS '탐지 면적 (제곱미터)'; + + +-- +-- TOC entry 6086 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.before_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.before_yyyy IS '변화 전 연도'; + + +-- +-- TOC entry 6087 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.cd_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.cd_prob IS '변화 탐지(Change Detection) 확률'; + + +-- +-- TOC entry 6088 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.class_after_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.class_after_cd IS '변화 후 지목/분류명'; + + +-- +-- TOC entry 6089 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.class_after_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.class_after_prob IS '변화 후 분류 신뢰도'; + + +-- +-- TOC entry 6090 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.class_before_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.class_before_cd IS '변화 전 지목/분류명'; + + +-- +-- TOC entry 6091 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.class_before_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.class_before_prob IS '변화 전 분류 신뢰도'; + + +-- +-- TOC entry 6092 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.created_dttm IS '등록 일시'; + + +-- +-- TOC entry 6093 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.created_uid IS '등록자 식별키'; + + +-- +-- TOC entry 6094 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.data_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.data_uid IS '부모 데이터 식별자 (FK: tb_map_sheet_learn_data)'; + + +-- +-- TOC entry 6095 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.geo_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.geo_type IS '지형지물 유형'; + + +-- +-- TOC entry 6096 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.map_sheet_num IS '도엽 번호'; + + +-- +-- TOC entry 6097 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.updated_dttm IS '수정 일시'; + + +-- +-- TOC entry 6098 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.updated_uid IS '수정자 식별키'; + + +-- +-- TOC entry 6099 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.geom; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.geom IS '탐지 결과 폴리곤 (Geometry, EPSG:5186)'; + + +-- +-- TOC entry 6100 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.label_status_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.label_status_cd IS '제작상태 (WAIT:미확인, DONE:완료, EXCLUDE:제외)'; + + +-- +-- TOC entry 6101 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.survey_result_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.survey_result_cd IS '실태조사 검증결과 코드'; + + +-- +-- TOC entry 6102 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.failure_reason_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.failure_reason_cd IS '부적합 사유 코드'; + + +-- +-- TOC entry 6103 (class 0 OID 0) +-- Dependencies: 309 +-- Name: COLUMN tb_map_sheet_learn_data_geom.history_jsonb; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.history_jsonb IS '작업 및 검수 수정 이력 데이터 (JSON 배열)'; + + +-- +-- TOC entry 246 (class 1259 OID 48065) +-- Name: tb_map_sheet_learn_data_geom_geom_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_learn_data_geom_geom_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_learn_data_geom_geom_uid OWNER TO kamco_cds; + +-- +-- TOC entry 342 (class 1259 OID 74978) +-- Name: tb_map_sheet_learn_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_learn_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_learn_uid OWNER TO kamco_cds; + +-- +-- TOC entry 6104 (class 0 OID 0) +-- Dependencies: 342 +-- Name: tb_map_sheet_learn_uid; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_sheet_learn_uid OWNED BY public.tb_map_sheet_learn.id; + + +-- +-- TOC entry 310 (class 1259 OID 72482) +-- Name: tb_map_sheet_mng; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_mng ( + mng_yyyy integer NOT NULL, + mng_state character varying(20) DEFAULT 'NOTYET'::character varying, + sync_state character varying(20) DEFAULT 'NOTYET'::character varying, + mng_state_dttm timestamp with time zone DEFAULT now(), + sync_state_dttm timestamp with time zone DEFAULT now(), + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT now(), + updated_uid bigint, + mng_path character varying(255) DEFAULT 'NULL::character varying'::character varying, + sync_check_state character varying(20) DEFAULT 'NOTYET'::character varying, + sync_strt_dttm timestamp with time zone, + sync_end_dttm timestamp with time zone, + sync_check_strt_dttm timestamp with time zone, + sync_check_end_dttm timestamp with time zone +); + + +ALTER TABLE public.tb_map_sheet_mng OWNER TO kamco_cds; + +-- +-- TOC entry 6105 (class 0 OID 0) +-- Dependencies: 310 +-- Name: TABLE tb_map_sheet_mng; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_mng IS '영상관리상태정보'; + + +-- +-- TOC entry 6106 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.mng_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.mng_yyyy IS '년도'; + + +-- +-- TOC entry 6107 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.mng_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.mng_state IS '업로드(작업)상태'; + + +-- +-- TOC entry 6108 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_state IS '동기화상태'; + + +-- +-- TOC entry 6109 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.mng_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.mng_state_dttm IS '업로드상태일시'; + + +-- +-- TOC entry 6110 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_state_dttm IS '동기화상태일시'; + + +-- +-- TOC entry 6111 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6112 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.created_uid IS '등록자'; + + +-- +-- TOC entry 6113 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 6114 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.updated_uid IS '수정자'; + + +-- +-- TOC entry 6115 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.mng_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.mng_path IS '관리경로'; + + +-- +-- TOC entry 6116 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_check_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_check_state IS '싱크데이터체크상태'; + + +-- +-- TOC entry 6117 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_strt_dttm IS '동기화시작일'; + + +-- +-- TOC entry 6118 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_end_dttm IS '동기화종료일'; + + +-- +-- TOC entry 6119 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_check_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_check_strt_dttm IS '동기화데이터체크시작일'; + + +-- +-- TOC entry 6120 (class 0 OID 0) +-- Dependencies: 310 +-- Name: COLUMN tb_map_sheet_mng.sync_check_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng.sync_check_end_dttm IS '동기화데이터체크종료일'; + + +-- +-- TOC entry 311 (class 1259 OID 72494) +-- Name: tb_map_sheet_mng_files; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_mng_files ( + file_uid bigint NOT NULL, + mng_yyyy integer NOT NULL, + map_sheet_num character varying(20) NOT NULL, + ref_map_sheet_num character varying(20), + file_path character varying(255), + file_name character varying(100), + file_ext character varying(20), + hst_uid bigint, + file_size bigint, + file_state character varying(20), + file_del boolean DEFAULT false NOT NULL +); + + +ALTER TABLE public.tb_map_sheet_mng_files OWNER TO kamco_cds; + +-- +-- TOC entry 6121 (class 0 OID 0) +-- Dependencies: 311 +-- Name: TABLE tb_map_sheet_mng_files; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_mng_files IS '영상관리파일'; + + +-- +-- TOC entry 6122 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_uid IS '식별키'; + + +-- +-- TOC entry 6123 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.mng_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.mng_yyyy IS '관리년도'; + + +-- +-- TOC entry 6124 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 6125 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.ref_map_sheet_num IS '도엽참조(부모)번호'; + + +-- +-- TOC entry 6126 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_path IS '경로'; + + +-- +-- TOC entry 6127 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_name IS '파일명'; + + +-- +-- TOC entry 6128 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_ext; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_ext IS '파일확장자'; + + +-- +-- TOC entry 6129 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.hst_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.hst_uid IS '관리내역식별키'; + + +-- +-- TOC entry 6130 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_size; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_size IS '파일용량'; + + +-- +-- TOC entry 6131 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_state IS '파일상태'; + + +-- +-- TOC entry 6132 (class 0 OID 0) +-- Dependencies: 311 +-- Name: COLUMN tb_map_sheet_mng_files.file_del; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_files.file_del IS '파일삭제'; + + +-- +-- TOC entry 312 (class 1259 OID 72502) +-- Name: tb_map_sheet_mng_files_file_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_mng_files_file_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_mng_files_file_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6133 (class 0 OID 0) +-- Dependencies: 312 +-- Name: tb_map_sheet_mng_files_file_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_map_sheet_mng_files_file_uid_seq OWNED BY public.tb_map_sheet_mng_files.file_uid; + + +-- +-- TOC entry 249 (class 1259 OID 48190) +-- Name: tb_map_sheet_mng_hst_hst_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_map_sheet_mng_hst_hst_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_map_sheet_mng_hst_hst_uid OWNER TO kamco_cds; + +-- +-- TOC entry 313 (class 1259 OID 72503) +-- Name: tb_map_sheet_mng_hst; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_mng_hst ( + hst_uid bigint DEFAULT nextval('public.tb_map_sheet_mng_hst_hst_uid'::regclass) NOT NULL, + mng_yyyy integer, + map_sheet_code integer, + map_sheet_num character varying(20), + map_sheet_name character varying(100) DEFAULT 'NULL::character varying'::character varying, + map_sheet_code_src integer, + scale_ratio integer, + data_state character varying(20) DEFAULT 'NOTYET'::character varying, + data_state_dttm timestamp with time zone DEFAULT '2025-12-12 16:26:49.460175+09'::timestamp with time zone, + use_inference character varying(20) DEFAULT NULL::character varying, + use_inference_dttm timestamp with time zone DEFAULT '2025-12-12 16:26:49.460175+09'::timestamp with time zone, + map_sheet_path character varying(255), + ref_map_sheet_num character varying(20), + created_dttm timestamp with time zone DEFAULT '2025-12-12 16:26:49.460175+09'::timestamp with time zone, + created_uid bigint, + updated_dttm timestamp with time zone DEFAULT '2025-12-12 16:26:49.460175+09'::timestamp with time zone, + updated_uid bigint, + sync_state character varying(20) DEFAULT 'NOTYET'::character varying, + sync_check_state character varying(20) DEFAULT 'NOTYET'::character varying, + sync_strt_dttm timestamp with time zone, + sync_end_dttm timestamp with time zone, + sync_check_strt_dttm timestamp with time zone, + sync_check_end_dttm timestamp with time zone, + tif_size_bytes bigint, + tfw_size_bytes bigint, + total_size_bytes bigint, + sync_tif_file_name character varying(100), + sync_tfw_file_name character varying(100), + sync_check_tif_file_name character varying(100), + sync_check_tfw_file_name character varying(100) +); + + +ALTER TABLE public.tb_map_sheet_mng_hst OWNER TO kamco_cds; + +-- +-- TOC entry 6134 (class 0 OID 0) +-- Dependencies: 313 +-- Name: TABLE tb_map_sheet_mng_hst; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_mng_hst IS '영상관리이력'; + + +-- +-- TOC entry 6135 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.hst_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.hst_uid IS '식별키'; + + +-- +-- TOC entry 6136 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.mng_yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.mng_yyyy IS '년도'; + + +-- +-- TOC entry 6137 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.map_sheet_code; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.map_sheet_code IS '도엽코드'; + + +-- +-- TOC entry 6138 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 6139 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.map_sheet_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.map_sheet_name IS '도엽명'; + + +-- +-- TOC entry 6140 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.map_sheet_code_src; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.map_sheet_code_src IS '원천도엽코드'; + + +-- +-- TOC entry 6141 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.scale_ratio; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.scale_ratio IS '도엽비율'; + + +-- +-- TOC entry 6142 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.data_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.data_state IS '데이터상태(정상,데이터없음)'; + + +-- +-- TOC entry 6143 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.data_state_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.data_state_dttm IS '상태일시'; + + +-- +-- TOC entry 6144 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.use_inference; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.use_inference IS '추론제외(여,부)'; + + +-- +-- TOC entry 6145 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.use_inference_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.use_inference_dttm IS '추론제외일시'; + + +-- +-- TOC entry 6146 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.map_sheet_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.map_sheet_path IS '도엽경로'; + + +-- +-- TOC entry 6147 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.ref_map_sheet_num IS '참조(부모)도엽번호'; + + +-- +-- TOC entry 6148 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6149 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.created_uid IS '등록자'; + + +-- +-- TOC entry 6150 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 6151 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.updated_uid IS '수정자'; + + +-- +-- TOC entry 6152 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_state IS '동기화상태'; + + +-- +-- TOC entry 6153 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_check_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_check_state IS '동기화데이터체크상태'; + + +-- +-- TOC entry 6154 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_strt_dttm IS '동기화시작일'; + + +-- +-- TOC entry 6155 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_end_dttm IS '동기화종료일'; + + +-- +-- TOC entry 6156 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_check_strt_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_check_strt_dttm IS '동기화데이터체크시작일'; + + +-- +-- TOC entry 6157 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_check_end_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_check_end_dttm IS '동기화데이터체크종료일'; + + +-- +-- TOC entry 6158 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_tif_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_tif_file_name IS 'tif싱크파일명'; + + +-- +-- TOC entry 6159 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_tfw_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_tfw_file_name IS 'tfw싱크파일경로'; + + +-- +-- TOC entry 6160 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_check_tif_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_check_tif_file_name IS 'tif처리파일명'; + + +-- +-- TOC entry 6161 (class 0 OID 0) +-- Dependencies: 313 +-- Name: COLUMN tb_map_sheet_mng_hst.sync_check_tfw_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_mng_hst.sync_check_tfw_file_name IS 'tfw처리파일명'; + + +-- +-- TOC entry 314 (class 1259 OID 72519) +-- Name: tb_map_sheet_years_map; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_map_sheet_years_map ( + map_sheet_num character varying(30) NOT NULL, + ref_map_sheet_num character varying(20), + map_years text, + lvl integer, + max_year integer, + min_year integer +); + + +ALTER TABLE public.tb_map_sheet_years_map OWNER TO kamco_cds; + +-- +-- TOC entry 6162 (class 0 OID 0) +-- Dependencies: 314 +-- Name: TABLE tb_map_sheet_years_map; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_map_sheet_years_map IS '도엽별비교가능년도'; + + +-- +-- TOC entry 6163 (class 0 OID 0) +-- Dependencies: 314 +-- Name: COLUMN tb_map_sheet_years_map.map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_years_map.map_sheet_num IS '도엽번호'; + + +-- +-- TOC entry 6164 (class 0 OID 0) +-- Dependencies: 314 +-- Name: COLUMN tb_map_sheet_years_map.ref_map_sheet_num; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_years_map.ref_map_sheet_num IS '참조도엽번호'; + + +-- +-- TOC entry 6165 (class 0 OID 0) +-- Dependencies: 314 +-- Name: COLUMN tb_map_sheet_years_map.map_years; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_years_map.map_years IS '매핑가능년도(배열)'; + + +-- +-- TOC entry 6166 (class 0 OID 0) +-- Dependencies: 314 +-- Name: COLUMN tb_map_sheet_years_map.max_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_years_map.max_year IS '년도최근'; + + +-- +-- TOC entry 6167 (class 0 OID 0) +-- Dependencies: 314 +-- Name: COLUMN tb_map_sheet_years_map.min_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_map_sheet_years_map.min_year IS '년도(최소)'; + + +-- +-- TOC entry 315 (class 1259 OID 72525) +-- Name: tb_member; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_member ( + id bigint NOT NULL, + uuid uuid DEFAULT gen_random_uuid() NOT NULL, + user_role character varying(50) NOT NULL, + user_id character varying(50) NOT NULL, + employee_no character varying(50) NOT NULL, + name character varying(100) NOT NULL, + password character varying(255) NOT NULL, + status character varying(20) DEFAULT 'INACTIVE'::character varying, + created_dttm timestamp with time zone DEFAULT now() NOT NULL, + updated_dttm timestamp with time zone DEFAULT now(), + first_login_dttm timestamp with time zone, + last_login_dttm timestamp with time zone, + login_fail_count bigint DEFAULT 0, + rgstr_uid bigint, + updtr_uid bigint, + status_chg_dttm timestamp with time zone, + pwd_reset_yn boolean +); + + +ALTER TABLE public.tb_member OWNER TO kamco_cds; + +-- +-- TOC entry 6168 (class 0 OID 0) +-- Dependencies: 315 +-- Name: TABLE tb_member; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_member IS '시스템 회원 관리 정보'; + + +-- +-- TOC entry 6169 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.id IS '회원 고유 식별자 (PK)'; + + +-- +-- TOC entry 6170 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.uuid IS '회원 UUID'; + + +-- +-- TOC entry 6171 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.user_role; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.user_role IS '사용자 권한 그룹'; + + +-- +-- TOC entry 6172 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.user_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.user_id IS '로그인 ID'; + + +-- +-- TOC entry 6173 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.employee_no; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.employee_no IS '사번'; + + +-- +-- TOC entry 6174 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.name IS '성명'; + + +-- +-- TOC entry 6175 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.password; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.password IS '암호화된 비밀번호'; + + +-- +-- TOC entry 6176 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.status IS '계정 상태 (ACTIVE, INACTIVE 등)'; + + +-- +-- TOC entry 6177 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.created_dttm IS '계정 생성 일시'; + + +-- +-- TOC entry 6178 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.updated_dttm IS '계정 수정 일시'; + + +-- +-- TOC entry 6179 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.first_login_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.first_login_dttm IS '최인 로그인'; + + +-- +-- TOC entry 6180 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.last_login_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.last_login_dttm IS '최종 로그인'; + + +-- +-- TOC entry 6181 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.login_fail_count; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.login_fail_count IS '로그인 실패 카운트'; + + +-- +-- TOC entry 6182 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.rgstr_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.rgstr_uid IS '등록자'; + + +-- +-- TOC entry 6183 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.updtr_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.updtr_uid IS '수정자'; + + +-- +-- TOC entry 6184 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.status_chg_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.status_chg_dttm IS '상태 변경일'; + + +-- +-- TOC entry 6185 (class 0 OID 0) +-- Dependencies: 315 +-- Name: COLUMN tb_member.pwd_reset_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_member.pwd_reset_yn IS '패스워드 변경 여부'; + + +-- +-- TOC entry 316 (class 1259 OID 72543) +-- Name: tb_member_copy; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_member_copy ( + id bigint, + uuid uuid, + user_role character varying(50), + user_id character varying(50), + employee_no character varying(50), + name character varying(100), + password character varying(255), + status character varying(20), + created_dttm timestamp with time zone, + updated_dttm timestamp with time zone, + first_login_dttm timestamp with time zone, + last_login_dttm timestamp with time zone, + login_fail_count bigint, + rgstr_uid bigint, + updtr_uid bigint, + status_chg_dttm timestamp with time zone, + pwd_reset_yn boolean +); + + +ALTER TABLE public.tb_member_copy OWNER TO kamco_cds; + +-- +-- TOC entry 317 (class 1259 OID 72548) +-- Name: tb_member_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_member_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_member_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6186 (class 0 OID 0) +-- Dependencies: 317 +-- Name: tb_member_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_member_id_seq OWNED BY public.tb_member.id; + + +-- +-- TOC entry 318 (class 1259 OID 72549) +-- Name: tb_menu; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_menu ( + menu_uid character varying(255) NOT NULL, + menu_nm character varying(255) DEFAULT 'NULL::character varying'::character varying, + menu_url character varying(255) DEFAULT 'NULL::character varying'::character varying, + description character varying(255) DEFAULT 'NULL::character varying'::character varying, + parent_menu_uid character varying(255), + menu_order bigint, + is_use boolean DEFAULT true NOT NULL, + deleted boolean DEFAULT false NOT NULL, + created_dttm timestamp with time zone DEFAULT '2025-11-18 10:36:43.426102+09'::timestamp with time zone, + updated_dttm timestamp with time zone DEFAULT '2025-11-18 10:36:43.47076+09'::timestamp with time zone, + created_uid bigint, + updated_uid bigint +); + + +ALTER TABLE public.tb_menu OWNER TO kamco_cds; + +-- +-- TOC entry 6187 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.menu_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.menu_uid IS '메뉴아이디'; + + +-- +-- TOC entry 6188 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.menu_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.menu_nm IS '메뉴명'; + + +-- +-- TOC entry 6189 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.menu_url; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.menu_url IS '메뉴URL'; + + +-- +-- TOC entry 6190 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.description; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.description IS '설명'; + + +-- +-- TOC entry 6191 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.parent_menu_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.parent_menu_uid IS '부모메뉴아이디'; + + +-- +-- TOC entry 6192 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.menu_order; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.menu_order IS '순서정렬'; + + +-- +-- TOC entry 6193 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.is_use; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.is_use IS '사용여부'; + + +-- +-- TOC entry 6194 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.deleted IS '삭제여부'; + + +-- +-- TOC entry 6195 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6196 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 6197 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.created_uid IS '등록자uid'; + + +-- +-- TOC entry 6198 (class 0 OID 0) +-- Dependencies: 318 +-- Name: COLUMN tb_menu.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu.updated_uid IS '수정자uid'; + + +-- +-- TOC entry 250 (class 1259 OID 48241) +-- Name: tb_menu_mapp_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_menu_mapp_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_menu_mapp_seq OWNER TO kamco_cds; + +-- +-- TOC entry 319 (class 1259 OID 72564) +-- Name: tb_menu_mapp; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_menu_mapp ( + mapp_uid bigint DEFAULT nextval('public.tb_menu_mapp_seq'::regclass) NOT NULL, + menu_uid character varying(255) NOT NULL, + deleted boolean DEFAULT false NOT NULL, + role_code character varying(50) +); + + +ALTER TABLE public.tb_menu_mapp OWNER TO kamco_cds; + +-- +-- TOC entry 6199 (class 0 OID 0) +-- Dependencies: 319 +-- Name: COLUMN tb_menu_mapp.mapp_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu_mapp.mapp_uid IS '식별키'; + + +-- +-- TOC entry 6200 (class 0 OID 0) +-- Dependencies: 319 +-- Name: COLUMN tb_menu_mapp.menu_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu_mapp.menu_uid IS '메뉴식별키'; + + +-- +-- TOC entry 6201 (class 0 OID 0) +-- Dependencies: 319 +-- Name: COLUMN tb_menu_mapp.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_menu_mapp.deleted IS '삭제여부'; + + +-- +-- TOC entry 251 (class 1259 OID 48250) +-- Name: tb_model_deploy_hst_deploy_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_model_deploy_hst_deploy_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_model_deploy_hst_deploy_uid OWNER TO kamco_cds; + +-- +-- TOC entry 320 (class 1259 OID 72572) +-- Name: tb_model_deploy_hst; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_model_deploy_hst ( + deploy_uid bigint DEFAULT nextval('public.tb_model_deploy_hst_deploy_uid'::regclass) NOT NULL, + model_uid bigint, + server_id bigint, + deploy_state character varying(20), + deploy_dttm timestamp with time zone, + created_dttm timestamp with time zone, + created_uid bigint, + updated_dttm timestamp with time zone, + updated_uid bigint, + model_ver_uid bigint +); + + +ALTER TABLE public.tb_model_deploy_hst OWNER TO kamco_cds; + +-- +-- TOC entry 6202 (class 0 OID 0) +-- Dependencies: 320 +-- Name: TABLE tb_model_deploy_hst; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_model_deploy_hst IS '모델배포이력'; + + +-- +-- TOC entry 6203 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.deploy_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.deploy_uid IS '식별키'; + + +-- +-- TOC entry 6204 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.model_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.model_uid IS '모델식별키'; + + +-- +-- TOC entry 6205 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.server_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.server_id IS '서버ID'; + + +-- +-- TOC entry 6206 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.deploy_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.deploy_state IS '배포상태'; + + +-- +-- TOC entry 6207 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.deploy_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.deploy_dttm IS '배포일'; + + +-- +-- TOC entry 6208 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.created_dttm IS '등록일시'; + + +-- +-- TOC entry 6209 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.created_uid IS '등록자'; + + +-- +-- TOC entry 6210 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 6211 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.updated_uid IS '수정자'; + + +-- +-- TOC entry 6212 (class 0 OID 0) +-- Dependencies: 320 +-- Name: COLUMN tb_model_deploy_hst.model_ver_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_deploy_hst.model_ver_uid IS '모델버전uid'; + + +-- +-- TOC entry 321 (class 1259 OID 72577) +-- Name: tb_model_mng; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_model_mng ( + model_uid bigint NOT NULL, + model_ver character varying(50) NOT NULL, + create_complete_dttm timestamp with time zone DEFAULT now(), + recent_use_dttm timestamp with time zone, + deleted boolean DEFAULT false NOT NULL, + created_uid bigint, + updated_uid bigint, + created_dttm timestamp with time zone DEFAULT now(), + updated_dttm timestamp with time zone, + model_type character varying(10), + file_path character varying(255), + file_name character varying(100), + memo character varying(255), + uuid uuid, + cd_model_path character varying(155), + cd_model_file_name character varying(155), + cd_model_config_path character varying(155), + cd_model_config_file_name character varying(155), + cls_model_path character varying(155), + cls_model_file_name character varying(155), + cls_model_version character varying(100), + priority double precision DEFAULT 0 +); + + +ALTER TABLE public.tb_model_mng OWNER TO kamco_cds; + +-- +-- TOC entry 6213 (class 0 OID 0) +-- Dependencies: 321 +-- Name: TABLE tb_model_mng; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_model_mng IS '추론 서버 AI 모델 관리 마스터'; + + +-- +-- TOC entry 6214 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.model_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.model_uid IS '모델 식별자 (PK)'; + + +-- +-- TOC entry 6215 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.model_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.model_ver IS '모델 버전 명칭 (M1, M2, M3 등)'; + + +-- +-- TOC entry 6216 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.create_complete_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.create_complete_dttm IS '모델 생성 완료 일시'; + + +-- +-- TOC entry 6217 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.recent_use_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.recent_use_dttm IS '최근 모델 사용(추론) 일시'; + + +-- +-- TOC entry 6218 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.deleted IS '삭제 여부 (false: 정상, true: 삭제)'; + + +-- +-- TOC entry 6219 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.created_uid IS '등록자 식별키'; + + +-- +-- TOC entry 6220 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.updated_uid IS '수정자 식별키'; + + +-- +-- TOC entry 6221 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.created_dttm IS '데이터 등록 일시'; + + +-- +-- TOC entry 6222 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.updated_dttm IS '데이터 수정 일시'; + + +-- +-- TOC entry 6223 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.model_type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.model_type IS '모델 유형 (예: CD-변화탐지, CLS-분류)'; + + +-- +-- TOC entry 6224 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.file_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.file_path IS '서버 내 모델 파일 저장 경로'; + + +-- +-- TOC entry 6225 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.file_name IS '저장된 모델 파일명'; + + +-- +-- TOC entry 6226 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.memo; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.memo IS '모델 관련 비고 및 메모'; + + +-- +-- TOC entry 6227 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.uuid IS 'uuid'; + + +-- +-- TOC entry 6228 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cd_model_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cd_model_path IS '모델경로'; + + +-- +-- TOC entry 6229 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cd_model_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cd_model_file_name IS '모델파일명'; + + +-- +-- TOC entry 6230 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cd_model_config_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cd_model_config_path IS '모델config경로'; + + +-- +-- TOC entry 6231 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cd_model_config_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cd_model_config_file_name IS '모델config파일명'; + + +-- +-- TOC entry 6232 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cls_model_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cls_model_path IS 'cls모델경로'; + + +-- +-- TOC entry 6233 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cls_model_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cls_model_file_name IS 'cls모델파일명'; + + +-- +-- TOC entry 6234 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.cls_model_version; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.cls_model_version IS 'cls모델버전'; + + +-- +-- TOC entry 6235 (class 0 OID 0) +-- Dependencies: 321 +-- Name: COLUMN tb_model_mng.priority; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_mng.priority IS 'priority'; + + +-- +-- TOC entry 322 (class 1259 OID 72589) +-- Name: tb_model_mng_bak; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_model_mng_bak ( + model_uid bigint, + model_nm character varying(100), + model_cate character varying(64), + model_path character varying(255), + created_dttm timestamp with time zone, + created_uid bigint, + updated_dttm timestamp with time zone, + updated_uid bigint, + model_cntnt text, + bbone_ver character varying(20) +); + + +ALTER TABLE public.tb_model_mng_bak OWNER TO kamco_cds; + +-- +-- TOC entry 252 (class 1259 OID 48271) +-- Name: tb_model_mng_model_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_model_mng_model_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_model_mng_model_uid OWNER TO kamco_cds; + +-- +-- TOC entry 323 (class 1259 OID 72594) +-- Name: tb_model_mng_model_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_model_mng_model_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_model_mng_model_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6236 (class 0 OID 0) +-- Dependencies: 323 +-- Name: tb_model_mng_model_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_model_mng_model_uid_seq OWNED BY public.tb_model_mng.model_uid; + + +-- +-- TOC entry 349 (class 1259 OID 75016) +-- Name: tb_model_result_metric; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_model_result_metric ( + metric_uid bigint NOT NULL, + model_uid bigint, + model_ver_uid bigint, + metrics jsonb, + f1_score double precision DEFAULT 0, + "precision" double precision DEFAULT 0, + recall double precision DEFAULT 0, + loss double precision DEFAULT 0, + iou double precision DEFAULT 0, + created_dttm timestamp with time zone DEFAULT now(), + updated_dttm timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.tb_model_result_metric OWNER TO kamco_cds; + +-- +-- TOC entry 6237 (class 0 OID 0) +-- Dependencies: 349 +-- Name: TABLE tb_model_result_metric; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_model_result_metric IS '학습성능지표'; + + +-- +-- TOC entry 6238 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.metric_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.metric_uid IS '메트릭 ID (PK)'; + + +-- +-- TOC entry 6239 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.model_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.model_uid IS '모델 ID'; + + +-- +-- TOC entry 6240 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.model_ver_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.model_ver_uid IS '모델버전 ID'; + + +-- +-- TOC entry 6241 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.metrics; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.metrics IS '전체 메트릭'; + + +-- +-- TOC entry 6242 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.f1_score; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.f1_score IS 'F1-Score'; + + +-- +-- TOC entry 6243 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric."precision"; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric."precision" IS 'Precision'; + + +-- +-- TOC entry 6244 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.recall; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.recall IS 'Recall'; + + +-- +-- TOC entry 6245 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.loss; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.loss IS 'Loss'; + + +-- +-- TOC entry 6246 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.iou; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.iou IS 'IoU'; + + +-- +-- TOC entry 6247 (class 0 OID 0) +-- Dependencies: 349 +-- Name: COLUMN tb_model_result_metric.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_result_metric.created_dttm IS '등록일'; + + +-- +-- TOC entry 348 (class 1259 OID 75015) +-- Name: tb_model_result_metric_metric_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_model_result_metric_metric_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_model_result_metric_metric_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6248 (class 0 OID 0) +-- Dependencies: 348 +-- Name: tb_model_result_metric_metric_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_model_result_metric_metric_uid_seq OWNED BY public.tb_model_result_metric.metric_uid; + + +-- +-- TOC entry 253 (class 1259 OID 48281) +-- Name: tb_model_ver_model_ver_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_model_ver_model_ver_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_model_ver_model_ver_uid OWNER TO kamco_cds; + +-- +-- TOC entry 324 (class 1259 OID 72598) +-- Name: tb_model_ver; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_model_ver ( + model_ver_uid bigint DEFAULT nextval('public.tb_model_ver_model_ver_uid'::regclass) NOT NULL, + model_uid bigint NOT NULL, + model_cate character varying(64), + model_ver character varying(64), + used_state character varying(20), + model_state character varying(20), + quality_prob double precision, + deploy_state character varying(20), + model_path character varying(255), + created_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_dttm timestamp with time zone, + updated_uid bigint, + deleted boolean, + leaning_rate double precision[], + batch_size double precision[], + dropout_rate double precision[], + number_of_filters double precision[], + best_state character varying(20), + copy_state character varying(20), + hyper_params json, + ver_cntnt text +); + + +ALTER TABLE public.tb_model_ver OWNER TO kamco_cds; + +-- +-- TOC entry 6249 (class 0 OID 0) +-- Dependencies: 324 +-- Name: TABLE tb_model_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_model_ver IS '모델관리버전정보'; + + +-- +-- TOC entry 6250 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_ver_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_ver_uid IS '식별키'; + + +-- +-- TOC entry 6251 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_uid IS '모델식별키'; + + +-- +-- TOC entry 6252 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_cate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_cate IS '분류'; + + +-- +-- TOC entry 6253 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_ver; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_ver IS '모델버전'; + + +-- +-- TOC entry 6254 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.used_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.used_state IS '사용상태'; + + +-- +-- TOC entry 6255 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_state IS '모델상태'; + + +-- +-- TOC entry 6256 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.quality_prob; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.quality_prob IS '모델정확도'; + + +-- +-- TOC entry 6257 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.deploy_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.deploy_state IS '배포상태'; + + +-- +-- TOC entry 6258 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.model_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.model_path IS '모델경로'; + + +-- +-- TOC entry 6259 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.created_dttm IS '등록일'; + + +-- +-- TOC entry 6260 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.created_uid IS '등록자'; + + +-- +-- TOC entry 6261 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.updated_dttm IS '수정일'; + + +-- +-- TOC entry 6262 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.updated_uid IS '수정자'; + + +-- +-- TOC entry 6263 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.deleted IS '삭제여부'; + + +-- +-- TOC entry 6264 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.leaning_rate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.leaning_rate IS '학습률'; + + +-- +-- TOC entry 6265 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.batch_size; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.batch_size IS '배치크기'; + + +-- +-- TOC entry 6266 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.dropout_rate; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.dropout_rate IS '드롭아웃비율'; + + +-- +-- TOC entry 6267 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.number_of_filters; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.number_of_filters IS 'CNN레이어필터수'; + + +-- +-- TOC entry 6268 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.best_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.best_state IS 'best상태'; + + +-- +-- TOC entry 6269 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.copy_state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.copy_state IS '이관대상'; + + +-- +-- TOC entry 6270 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.hyper_params; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.hyper_params IS '하이퍼파라메터JSON'; + + +-- +-- TOC entry 6271 (class 0 OID 0) +-- Dependencies: 324 +-- Name: COLUMN tb_model_ver.ver_cntnt; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_model_ver.ver_cntnt IS '내용설명'; + + +-- +-- TOC entry 347 (class 1259 OID 75007) +-- Name: tb_pnu; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_pnu ( + id bigint NOT NULL, + geom_uuid uuid, + pnu character(19), + created_dttm timestamp with time zone, + created_uid bigint, + del_yn boolean DEFAULT false +); + + +ALTER TABLE public.tb_pnu OWNER TO kamco_cds; + +-- +-- TOC entry 6272 (class 0 OID 0) +-- Dependencies: 347 +-- Name: TABLE tb_pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_pnu IS 'GEOM PNU 정보'; + + +-- +-- TOC entry 6273 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.id IS '식별키'; + + +-- +-- TOC entry 6274 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.geom_uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.geom_uuid IS 'geom uuid'; + + +-- +-- TOC entry 6275 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.pnu; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.pnu IS 'pnu'; + + +-- +-- TOC entry 6276 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.created_dttm IS '생성일시'; + + +-- +-- TOC entry 6277 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.created_uid IS '생성자'; + + +-- +-- TOC entry 6278 (class 0 OID 0) +-- Dependencies: 347 +-- Name: COLUMN tb_pnu.del_yn; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_pnu.del_yn IS '삭제여부'; + + +-- +-- TOC entry 344 (class 1259 OID 74980) +-- Name: tb_pnu_uid; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_pnu_uid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_pnu_uid OWNER TO kamco_cds; + +-- +-- TOC entry 6279 (class 0 OID 0) +-- Dependencies: 344 +-- Name: tb_pnu_uid; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_pnu_uid OWNED BY public.tb_pnu.id; + + +-- +-- TOC entry 254 (class 1259 OID 48291) +-- Name: tb_server_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_server_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_server_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 325 (class 1259 OID 72610) +-- Name: tb_server; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_server ( + id bigint DEFAULT nextval('public.tb_server_id_seq'::regclass) NOT NULL, + name character varying(255) NOT NULL, + description character varying(255), + type character varying(255) NOT NULL, + url character varying(255) NOT NULL, + username character varying(255), + password character varying(255), + created_at timestamp with time zone, + updated_at timestamp with time zone, + status character varying(100), + cpu_usage real +); + + +ALTER TABLE public.tb_server OWNER TO kamco_cds; + +-- +-- TOC entry 6280 (class 0 OID 0) +-- Dependencies: 325 +-- Name: TABLE tb_server; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_server IS '관리 대상 서버 목록 (k-water 원본)'; + + +-- +-- TOC entry 6281 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.id IS '서버 ID (PK)'; + + +-- +-- TOC entry 6282 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.name IS '서버명 (e.g., AI서버1)'; + + +-- +-- TOC entry 6283 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.description; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.description IS '설명'; + + +-- +-- TOC entry 6284 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.type; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.type IS '서버 유형'; + + +-- +-- TOC entry 6285 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.url; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.url IS '서버 URL'; + + +-- +-- TOC entry 6286 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.username; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.username IS '이름'; + + +-- +-- TOC entry 6287 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.password; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.password IS '패스워드'; + + +-- +-- TOC entry 6288 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.created_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.created_at IS '생성 일시'; + + +-- +-- TOC entry 6289 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.updated_at; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.updated_at IS '수정 일시'; + + +-- +-- TOC entry 6290 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.status IS '현재 작업 상태 (e.g., 경주35901 분석중...)'; + + +-- +-- TOC entry 6291 (class 0 OID 0) +-- Dependencies: 325 +-- Name: COLUMN tb_server.cpu_usage; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_server.cpu_usage IS '서버 사용률 (%)'; + + +-- +-- TOC entry 326 (class 1259 OID 72620) +-- Name: tb_sys_cd; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_sys_cd ( + sys_cd_id bigint NOT NULL, + sys_cd_cd character varying(255), + sys_cd_nm character varying(255), + deleted boolean NOT NULL +); + + +ALTER TABLE public.tb_sys_cd OWNER TO kamco_cds; + +-- +-- TOC entry 6292 (class 0 OID 0) +-- Dependencies: 326 +-- Name: TABLE tb_sys_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_sys_cd IS '시스템 공통 코드 그룹 마스터'; + + +-- +-- TOC entry 6293 (class 0 OID 0) +-- Dependencies: 326 +-- Name: COLUMN tb_sys_cd.sys_cd_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_sys_cd.sys_cd_id IS '시스템 코드 ID (PK)'; + + +-- +-- TOC entry 6294 (class 0 OID 0) +-- Dependencies: 326 +-- Name: COLUMN tb_sys_cd.sys_cd_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_sys_cd.sys_cd_cd IS '시스템 코드'; + + +-- +-- TOC entry 6295 (class 0 OID 0) +-- Dependencies: 326 +-- Name: COLUMN tb_sys_cd.sys_cd_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_sys_cd.sys_cd_nm IS '시스템 코드 명칭'; + + +-- +-- TOC entry 6296 (class 0 OID 0) +-- Dependencies: 326 +-- Name: COLUMN tb_sys_cd.deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_sys_cd.deleted IS '삭제 여부'; + + +-- +-- TOC entry 327 (class 1259 OID 72627) +-- Name: tb_sys_cd_sys_cd_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE public.tb_sys_cd ALTER COLUMN sys_cd_id ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME public.tb_sys_cd_sys_cd_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- TOC entry 328 (class 1259 OID 72628) +-- Name: tb_test_tree_map; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_test_tree_map ( + mng_yyyy integer, + map_sheet_num character varying(20), + uid bigint NOT NULL +); + + +ALTER TABLE public.tb_test_tree_map OWNER TO kamco_cds; + +-- +-- TOC entry 329 (class 1259 OID 72632) +-- Name: tb_test_tree_map_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_test_tree_map_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_test_tree_map_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6297 (class 0 OID 0) +-- Dependencies: 329 +-- Name: tb_test_tree_map_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_test_tree_map_uid_seq OWNED BY public.tb_test_tree_map.uid; + + +-- +-- TOC entry 330 (class 1259 OID 72633) +-- Name: tb_upload_session; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_upload_session ( + upload_id character varying(100) NOT NULL, + completed_dttm timestamp(6) with time zone, + created_dttm timestamp(6) with time zone DEFAULT now() NOT NULL, + dataset_id bigint, + error_message text, + file_name character varying(255), + file_size bigint DEFAULT 0, + final_path character varying(500), + status character varying(20), + temp_path character varying(500), + chunk_total_index integer, + updated_dttm timestamp(6) with time zone DEFAULT now() NOT NULL, + chunk_index integer, + upload_divi character varying(50), + file_hash character varying(300), + total_chunks integer, + uploaded_chunks integer, + uuid uuid DEFAULT public.uuid_generate_v4() NOT NULL +); + + +ALTER TABLE public.tb_upload_session OWNER TO kamco_cds; + +-- +-- TOC entry 6298 (class 0 OID 0) +-- Dependencies: 330 +-- Name: TABLE tb_upload_session; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_upload_session IS '파일 업로드 세션'; + + +-- +-- TOC entry 6299 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.upload_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.upload_id IS '업로드 ID'; + + +-- +-- TOC entry 6300 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.completed_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.completed_dttm IS '완료 일시'; + + +-- +-- TOC entry 6301 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.created_dttm IS '생성 일시'; + + +-- +-- TOC entry 6302 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.dataset_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.dataset_id IS '데이터셋 ID'; + + +-- +-- TOC entry 6303 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.error_message; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.error_message IS '에러 메시지'; + + +-- +-- TOC entry 6304 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.file_name IS '파일명'; + + +-- +-- TOC entry 6305 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.file_size; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.file_size IS '파일 크기'; + + +-- +-- TOC entry 6306 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.final_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.final_path IS '최종 경로'; + + +-- +-- TOC entry 6307 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.status IS '상태'; + + +-- +-- TOC entry 6308 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.temp_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.temp_path IS '임시 경로'; + + +-- +-- TOC entry 6309 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.chunk_total_index; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.chunk_total_index IS '전체 청크 수'; + + +-- +-- TOC entry 6310 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.updated_dttm IS '수정 일시'; + + +-- +-- TOC entry 6311 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.chunk_index; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.chunk_index IS '업로드된 청크 수'; + + +-- +-- TOC entry 6312 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.upload_divi; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.upload_divi IS '업로드구분'; + + +-- +-- TOC entry 6313 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.file_hash; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.file_hash IS '파일해쉬'; + + +-- +-- TOC entry 6314 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.total_chunks; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.total_chunks IS '전체 청크 수'; + + +-- +-- TOC entry 6315 (class 0 OID 0) +-- Dependencies: 330 +-- Name: COLUMN tb_upload_session.uploaded_chunks; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_upload_session.uploaded_chunks IS '업로드 완료된 청크 수'; + + +-- +-- TOC entry 255 (class 1259 OID 48310) +-- Name: tb_user_user_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_user_user_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 + CYCLE; + + +ALTER SEQUENCE public.tb_user_user_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 331 (class 1259 OID 72646) +-- Name: tb_user; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_user ( + user_uid bigint DEFAULT nextval('public.tb_user_user_uid_seq'::regclass) NOT NULL, + user_nm character varying(255) NOT NULL, + user_id character varying(255) NOT NULL, + user_pw character varying(255) NOT NULL, + state character varying(255) DEFAULT 'ACTIVE'::character varying NOT NULL, + date_withdrawal timestamp with time zone, + created_dttm timestamp with time zone DEFAULT '2025-11-12 15:30:41.660246+09'::timestamp with time zone, + updated_dttm timestamp with time zone DEFAULT '2025-11-12 15:30:41.660246+09'::timestamp with time zone, + created_uid bigint, + updated_uid bigint, + user_email character varying(255), + user_auth character varying(20) NOT NULL, + emp_id character varying(255) NOT NULL +); + + +ALTER TABLE public.tb_user OWNER TO kamco_cds; + +-- +-- TOC entry 6316 (class 0 OID 0) +-- Dependencies: 331 +-- Name: TABLE tb_user; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_user IS '사용자정보'; + + +-- +-- TOC entry 6317 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_uid IS 'tb_user 테이블 PK'; + + +-- +-- TOC entry 6318 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_nm IS '사용자명'; + + +-- +-- TOC entry 6319 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_id IS '사용자ID'; + + +-- +-- TOC entry 6320 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_pw; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_pw IS '패스워드'; + + +-- +-- TOC entry 6321 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.state; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.state IS 'ACTIVE : 정상, LOCKED : 잠김, EXPIRED : 만료, WITHDRAWAL : 탈퇴'; + + +-- +-- TOC entry 6322 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.date_withdrawal; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.date_withdrawal IS '탈퇴일자 (계정상태가 WITHDRAWAL인 경우)'; + + +-- +-- TOC entry 6323 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.created_dttm IS '등록일'; + + +-- +-- TOC entry 6324 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.updated_dttm IS '최근 변경일'; + + +-- +-- TOC entry 6325 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.created_uid IS '등록자식별키'; + + +-- +-- TOC entry 6326 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.updated_uid IS '수정자식별키'; + + +-- +-- TOC entry 6327 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_email; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_email IS '이메일'; + + +-- +-- TOC entry 6328 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.user_auth; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.user_auth IS '권한(admin,label,check)'; + + +-- +-- TOC entry 6329 (class 0 OID 0) +-- Dependencies: 331 +-- Name: COLUMN tb_user.emp_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user.emp_id IS '사번'; + + +-- +-- TOC entry 256 (class 1259 OID 48327) +-- Name: tb_user_layer_user_layer_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_user_layer_user_layer_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_user_layer_user_layer_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 332 (class 1259 OID 72662) +-- Name: tb_user_layer; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_user_layer ( + user_layer_uid bigint DEFAULT nextval('public.tb_user_layer_user_layer_uid_seq'::regclass) NOT NULL, + user_layer_group_uid bigint NOT NULL, + layer_cd character varying(100), + layer_nm character varying(255) NOT NULL, + service_nm character varying(100), + service_url text, + min_level integer, + max_level integer, + opacity double precision DEFAULT 1.0, + is_visible boolean DEFAULT true, + is_history_layer boolean DEFAULT false, + sort_order integer DEFAULT 0, + is_selectable boolean DEFAULT true, + is_color_configurable boolean DEFAULT false, + is_opacity_configurable boolean DEFAULT true, + is_label_configurable boolean DEFAULT false, + layer_index integer, + is_use boolean DEFAULT true, + boundary_box character varying(255), + epsg character varying(50), + is_border_area boolean DEFAULT false, + created_dttm timestamp with time zone DEFAULT now(), + updated_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_uid bigint +); + + +ALTER TABLE public.tb_user_layer OWNER TO kamco_cds; + +-- +-- TOC entry 6330 (class 0 OID 0) +-- Dependencies: 332 +-- Name: TABLE tb_user_layer; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_user_layer IS '국유iN 사용자 레이어 상세 설정 (UI_GUKU_CD_01_04, _08, _09). 사용자가 설정한 개별 레이어 상세 정보.'; + + +-- +-- TOC entry 6331 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.user_layer_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.user_layer_uid IS '사용자 레이어 UID (PK)'; + + +-- +-- TOC entry 6332 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.user_layer_group_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.user_layer_group_uid IS '사용자 레이어 그룹 UID (FK)'; + + +-- +-- TOC entry 6333 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.layer_cd; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.layer_cd IS '레이어 코드 (e.g., Arial2023)'; + + +-- +-- TOC entry 6334 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.layer_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.layer_nm IS '레이어명 (e.g., 국토지리정보원 2023)'; + + +-- +-- TOC entry 6335 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.service_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.service_nm IS 'Service명 (e.g., TMS, WMS, WFS)'; + + +-- +-- TOC entry 6336 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.service_url; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.service_url IS 'Service URL'; + + +-- +-- TOC entry 6337 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.min_level; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.min_level IS '최소 표시 레벨'; + + +-- +-- TOC entry 6338 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.max_level; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.max_level IS '최대 표시 레벨'; + + +-- +-- TOC entry 6339 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.opacity; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.opacity IS '레이어 투명도 (0.0 ~ 1.0)'; + + +-- +-- TOC entry 6340 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_visible; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_visible IS '레이어 보기 여부 (Y/N)'; + + +-- +-- TOC entry 6341 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_history_layer; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_history_layer IS '이력 여부 (Y/N)'; + + +-- +-- TOC entry 6342 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.sort_order; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.sort_order IS '레이어 정렬 순번'; + + +-- +-- TOC entry 6343 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_selectable; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_selectable IS '레이어 선택 가능 여부 (Y/N)'; + + +-- +-- TOC entry 6344 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_color_configurable; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_color_configurable IS '레이어 색상 설정 가능 여부 (Y/N)'; + + +-- +-- TOC entry 6345 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_opacity_configurable; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_opacity_configurable IS '레이어 투명도 조정 가능 여부 (Y/N)'; + + +-- +-- TOC entry 6346 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_label_configurable; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_label_configurable IS '레이어 라벨 설정 가능 여부 (Y/N)'; + + +-- +-- TOC entry 6347 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.layer_index; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.layer_index IS '레이어 인덱스 지수'; + + +-- +-- TOC entry 6348 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_use; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_use IS '사용 여부 (Y/N)'; + + +-- +-- TOC entry 6349 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.boundary_box; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.boundary_box IS 'Boundary 좌표 (Text)'; + + +-- +-- TOC entry 6350 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.epsg; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.epsg IS '좌표계 (e.g., EPSG:5181)'; + + +-- +-- TOC entry 6351 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.is_border_area; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.is_border_area IS '접경 지역 여부 (Y/N)'; + + +-- +-- TOC entry 6352 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.created_dttm IS '생성 일시'; + + +-- +-- TOC entry 6353 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.updated_dttm IS '수정 일시'; + + +-- +-- TOC entry 6354 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.created_uid IS '생성자 UID (tb_user.user_uid)'; + + +-- +-- TOC entry 6355 (class 0 OID 0) +-- Dependencies: 332 +-- Name: COLUMN tb_user_layer.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer.updated_uid IS '수정자 UID (tb_user.user_uid)'; + + +-- +-- TOC entry 257 (class 1259 OID 48349) +-- Name: tb_user_layer_group_user_layer_group_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_user_layer_group_user_layer_group_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_user_layer_group_user_layer_group_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 333 (class 1259 OID 72683) +-- Name: tb_user_layer_group; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_user_layer_group ( + user_layer_group_uid bigint DEFAULT nextval('public.tb_user_layer_group_user_layer_group_uid_seq'::regclass) NOT NULL, + user_uid bigint NOT NULL, + group_nm character varying(255) NOT NULL, + sort_order integer DEFAULT 0, + is_group_visible boolean DEFAULT true, + is_single_choice boolean DEFAULT false, + is_registerable boolean DEFAULT false, + is_use boolean DEFAULT true, + created_dttm timestamp with time zone DEFAULT now(), + updated_dttm timestamp with time zone DEFAULT now(), + created_uid bigint, + updated_uid bigint +); + + +ALTER TABLE public.tb_user_layer_group OWNER TO kamco_cds; + +-- +-- TOC entry 6356 (class 0 OID 0) +-- Dependencies: 333 +-- Name: TABLE tb_user_layer_group; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_user_layer_group IS '국유iN 사용자 레이어 그룹 설정'; + + +-- +-- TOC entry 6357 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.user_layer_group_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.user_layer_group_uid IS '사용자 레이어 그룹 UID (PK)'; + + +-- +-- TOC entry 6358 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.user_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.user_uid IS '설정 소유자 UID (tb_user.user_uid)'; + + +-- +-- TOC entry 6359 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.group_nm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.group_nm IS '레이어 그룹명'; + + +-- +-- TOC entry 6360 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.sort_order; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.sort_order IS '정렬 순서'; + + +-- +-- TOC entry 6361 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.is_group_visible; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.is_group_visible IS '그룹 보기 여부 (Y/N)'; + + +-- +-- TOC entry 6362 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.is_single_choice; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.is_single_choice IS '단일 선택 여부 (Y/N)'; + + +-- +-- TOC entry 6363 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.is_registerable; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.is_registerable IS '등록 가능 여부 (Y/N)'; + + +-- +-- TOC entry 6364 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.is_use; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.is_use IS '사용 여부 (Y/N)'; + + +-- +-- TOC entry 6365 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.created_dttm IS '생성 일시'; + + +-- +-- TOC entry 6366 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.updated_dttm IS '수정 일시'; + + +-- +-- TOC entry 6367 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.created_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.created_uid IS '생성자 UID (tb_user.user_uid)'; + + +-- +-- TOC entry 6368 (class 0 OID 0) +-- Dependencies: 333 +-- Name: COLUMN tb_user_layer_group.updated_uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_user_layer_group.updated_uid IS '수정자 UID (tb_user.user_uid)'; + + +-- +-- TOC entry 334 (class 1259 OID 72697) +-- Name: tb_year; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_year ( + yyyy integer NOT NULL, + status character varying(20) +); + + +ALTER TABLE public.tb_year OWNER TO kamco_cds; + +-- +-- TOC entry 6369 (class 0 OID 0) +-- Dependencies: 334 +-- Name: TABLE tb_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_year IS '기준년도'; + + +-- +-- TOC entry 6370 (class 0 OID 0) +-- Dependencies: 334 +-- Name: COLUMN tb_year.yyyy; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_year.yyyy IS '년도'; + + +-- +-- TOC entry 6371 (class 0 OID 0) +-- Dependencies: 334 +-- Name: COLUMN tb_year.status; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_year.status IS '상태'; + + +-- +-- TOC entry 335 (class 1259 OID 72701) +-- Name: tb_zoo; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.tb_zoo ( + uid bigint NOT NULL, + uuid uuid NOT NULL, + name character varying(200) NOT NULL, + location character varying(300), + description text, + is_deleted boolean DEFAULT false NOT NULL, + created_dttm timestamp with time zone NOT NULL, + updated_dttm timestamp with time zone NOT NULL +); + + +ALTER TABLE public.tb_zoo OWNER TO kamco_cds; + +-- +-- TOC entry 6372 (class 0 OID 0) +-- Dependencies: 335 +-- Name: TABLE tb_zoo; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.tb_zoo IS '동물원 정보'; + + +-- +-- TOC entry 6373 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.uid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.uid IS '고유 식별자 (PK)'; + + +-- +-- TOC entry 6374 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.uuid IS 'UUID (Unique)'; + + +-- +-- TOC entry 6375 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.name IS '동물원 이름'; + + +-- +-- TOC entry 6376 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.location; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.location IS '위치'; + + +-- +-- TOC entry 6377 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.description; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.description IS '설명'; + + +-- +-- TOC entry 6378 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.is_deleted; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.is_deleted IS '삭제 여부'; + + +-- +-- TOC entry 6379 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.created_dttm IS '생성일시'; + + +-- +-- TOC entry 6380 (class 0 OID 0) +-- Dependencies: 335 +-- Name: COLUMN tb_zoo.updated_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.tb_zoo.updated_dttm IS '수정일시'; + + +-- +-- TOC entry 336 (class 1259 OID 72713) +-- Name: tb_zoo_uid_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.tb_zoo_uid_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tb_zoo_uid_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6381 (class 0 OID 0) +-- Dependencies: 336 +-- Name: tb_zoo_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.tb_zoo_uid_seq OWNED BY public.tb_zoo.uid; + + +-- +-- TOC entry 337 (class 1259 OID 72714) +-- Name: test01; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.test01 ( + id bigint NOT NULL +); + + +ALTER TABLE public.test01 OWNER TO kamco_cds; + +-- +-- TOC entry 338 (class 1259 OID 72718) +-- Name: test01_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.test01_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.test01_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6382 (class 0 OID 0) +-- Dependencies: 338 +-- Name: test01_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.test01_id_seq OWNED BY public.test01.id; + + +-- +-- TOC entry 339 (class 1259 OID 72719) +-- Name: users; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.users ( + id uuid DEFAULT public.uuid_generate_v4() NOT NULL, + name text NOT NULL +); + + +ALTER TABLE public.users OWNER TO kamco_cds; + +-- +-- TOC entry 340 (class 1259 OID 72727) +-- Name: yearly_sheet_map; Type: TABLE; Schema: public; Owner: kamco_cds +-- + +CREATE TABLE public.yearly_sheet_map ( + id bigint NOT NULL, + uuid uuid DEFAULT gen_random_uuid() NOT NULL, + group_no integer, + scene_id character varying(12) NOT NULL, + before_year integer NOT NULL, + target_year integer NOT NULL, + before_map_path character varying(255) NOT NULL, + before_map_file_name character varying(100) NOT NULL, + after_map_path character varying(255) NOT NULL, + after_map_file_name character varying(100) NOT NULL, + created_dttm timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.yearly_sheet_map OWNER TO kamco_cds; + +-- +-- TOC entry 6383 (class 0 OID 0) +-- Dependencies: 340 +-- Name: TABLE yearly_sheet_map; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON TABLE public.yearly_sheet_map IS '연도별 분석 대상 도엽 및 영상 경로 매핑'; + + +-- +-- TOC entry 6384 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.id IS '매핑 식별자 (PK)'; + + +-- +-- TOC entry 6385 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.uuid; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.uuid IS '매핑 UUID'; + + +-- +-- TOC entry 6386 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.group_no; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.group_no IS '도엽 그룹 번호'; + + +-- +-- TOC entry 6387 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.scene_id; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.scene_id IS '장면(Scene) 식별자'; + + +-- +-- TOC entry 6388 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.before_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.before_year IS '비교 전 시점 연도'; + + +-- +-- TOC entry 6389 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.target_year; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.target_year IS '비교 후 시점 연도'; + + +-- +-- TOC entry 6390 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.before_map_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.before_map_path IS '이전 영상 저장 경로'; + + +-- +-- TOC entry 6391 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.before_map_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.before_map_file_name IS '이전 연도 파일명'; + + +-- +-- TOC entry 6392 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.after_map_path; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.after_map_path IS '현재 영상 저장 경로'; + + +-- +-- TOC entry 6393 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.after_map_file_name; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.after_map_file_name IS '대상 연도 파일명'; + + +-- +-- TOC entry 6394 (class 0 OID 0) +-- Dependencies: 340 +-- Name: COLUMN yearly_sheet_map.created_dttm; Type: COMMENT; Schema: public; Owner: kamco_cds +-- + +COMMENT ON COLUMN public.yearly_sheet_map.created_dttm IS '등록 일시'; + + +-- +-- TOC entry 341 (class 1259 OID 72744) +-- Name: yearly_sheet_map_id_seq; Type: SEQUENCE; Schema: public; Owner: kamco_cds +-- + +CREATE SEQUENCE public.yearly_sheet_map_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.yearly_sheet_map_id_seq OWNER TO kamco_cds; + +-- +-- TOC entry 6395 (class 0 OID 0) +-- Dependencies: 341 +-- Name: yearly_sheet_map_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: kamco_cds +-- + +ALTER SEQUENCE public.yearly_sheet_map_id_seq OWNED BY public.yearly_sheet_map.id; + + +-- +-- TOC entry 5078 (class 2604 OID 72745) +-- Name: demo_learning_analysis_scene_item group_item_id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_item ALTER COLUMN group_item_id SET DEFAULT nextval('public.demo_learning_analysis_scene_item_group_item_id_seq'::regclass); + + +-- +-- TOC entry 5080 (class 2604 OID 72746) +-- Name: demo_learning_analysis_scene_list group_id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_list ALTER COLUMN group_id SET DEFAULT nextval('public.demo_learning_analysis_scene_list_group_id_seq'::regclass); + + +-- +-- TOC entry 5082 (class 2604 OID 72747) +-- Name: demo_learning_analysis_summary id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_summary ALTER COLUMN id SET DEFAULT nextval('public.demo_learning_analysis_summary_id_seq'::regclass); + + +-- +-- TOC entry 5091 (class 2604 OID 72748) +-- Name: gpu_metrics id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.gpu_metrics ALTER COLUMN id SET DEFAULT nextval('public.gpu_metrics_id_seq'::regclass); + + +-- +-- TOC entry 5094 (class 2604 OID 72749) +-- Name: imagery id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.imagery ALTER COLUMN id SET DEFAULT nextval('public.imagery_id_seq'::regclass); + + +-- +-- TOC entry 5097 (class 2604 OID 72750) +-- Name: inference_results uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_results ALTER COLUMN uid SET DEFAULT nextval('public.inference_results_uid_seq'::regclass); + + +-- +-- TOC entry 5102 (class 2604 OID 72751) +-- Name: inference_results_noor uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_results_noor ALTER COLUMN uid SET DEFAULT nextval('public.inference_results_noor_uid_seq'::regclass); + + +-- +-- TOC entry 5108 (class 2604 OID 72752) +-- Name: inference_results_testing seq; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_results_testing ALTER COLUMN seq SET DEFAULT nextval('public.inference_results_testing_seq_seq'::regclass); + + +-- +-- TOC entry 5077 (class 2604 OID 48420) +-- Name: inference_sample_test_2021_2022_intermediate id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_sample_test_2021_2022_intermediate ALTER COLUMN id SET DEFAULT nextval('public.inference_sample_test_2021_2022_intermediate_id_seq'::regclass); + + +-- +-- TOC entry 5110 (class 2604 OID 72753) +-- Name: overlapped_areas_roi id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.overlapped_areas_roi ALTER COLUMN id SET DEFAULT nextval('public.overlapped_areas_roi_id_seq'::regclass); + + +-- +-- TOC entry 5111 (class 2604 OID 72754) +-- Name: system_metrics id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.system_metrics ALTER COLUMN id SET DEFAULT nextval('public.system_metrics_id_seq'::regclass); + + +-- +-- TOC entry 5113 (class 2604 OID 72755) +-- Name: tb_animal uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_animal ALTER COLUMN uid SET DEFAULT nextval('public.tb_animal_uid_seq'::regclass); + + +-- +-- TOC entry 5117 (class 2604 OID 72756) +-- Name: tb_auth_token token_id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_auth_token ALTER COLUMN token_id SET DEFAULT nextval('public.tb_auth_token_token_id_seq'::regclass); + + +-- +-- TOC entry 5149 (class 2604 OID 72757) +-- Name: tb_map_inkx_50k fid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_inkx_50k ALTER COLUMN fid SET DEFAULT nextval('public.tb_map_inkx_50k_fid_seq'::regclass); + + +-- +-- TOC entry 5150 (class 2604 OID 72758) +-- Name: tb_map_inkx_5k fid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_inkx_5k ALTER COLUMN fid SET DEFAULT nextval('public.tb_map_inkx_5k_fid_seq'::regclass); + + +-- +-- TOC entry 5151 (class 2604 OID 72759) +-- Name: tb_map_sheet_anal_data_inference data_uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_data_inference ALTER COLUMN data_uid SET DEFAULT nextval('public.tb_map_sheet_anal_data_inference_data_uid_seq'::regclass); + + +-- +-- TOC entry 5267 (class 2604 OID 74984) +-- Name: tb_map_sheet_learn id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn ALTER COLUMN id SET DEFAULT nextval('public.tb_map_sheet_learn_uid'::regclass); + + +-- +-- TOC entry 5271 (class 2604 OID 74995) +-- Name: tb_map_sheet_learn_5k id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_5k ALTER COLUMN id SET DEFAULT nextval('public.tb_map_sheet_learn_5k_seq'::regclass); + + +-- +-- TOC entry 5194 (class 2604 OID 72760) +-- Name: tb_map_sheet_mng_files file_uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_mng_files ALTER COLUMN file_uid SET DEFAULT nextval('public.tb_map_sheet_mng_files_file_uid_seq'::regclass); + + +-- +-- TOC entry 5206 (class 2604 OID 72761) +-- Name: tb_member id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member ALTER COLUMN id SET DEFAULT nextval('public.tb_member_id_seq'::regclass); + + +-- +-- TOC entry 5222 (class 2604 OID 72762) +-- Name: tb_model_mng model_uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_mng ALTER COLUMN model_uid SET DEFAULT nextval('public.tb_model_mng_model_uid_seq'::regclass); + + +-- +-- TOC entry 5275 (class 2604 OID 75019) +-- Name: tb_model_result_metric metric_uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_result_metric ALTER COLUMN metric_uid SET DEFAULT nextval('public.tb_model_result_metric_metric_uid_seq'::regclass); + + +-- +-- TOC entry 5273 (class 2604 OID 75010) +-- Name: tb_pnu id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_pnu ALTER COLUMN id SET DEFAULT nextval('public.tb_pnu_uid'::regclass); + + +-- +-- TOC entry 5230 (class 2604 OID 72763) +-- Name: tb_test_tree_map uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_test_tree_map ALTER COLUMN uid SET DEFAULT nextval('public.tb_test_tree_map_uid_seq'::regclass); + + +-- +-- TOC entry 5260 (class 2604 OID 72764) +-- Name: tb_zoo uid; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_zoo ALTER COLUMN uid SET DEFAULT nextval('public.tb_zoo_uid_seq'::regclass); + + +-- +-- TOC entry 5262 (class 2604 OID 72765) +-- Name: test01 id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.test01 ALTER COLUMN id SET DEFAULT nextval('public.test01_id_seq'::regclass); + + +-- +-- TOC entry 5264 (class 2604 OID 72766) +-- Name: yearly_sheet_map id; Type: DEFAULT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.yearly_sheet_map ALTER COLUMN id SET DEFAULT nextval('public.yearly_sheet_map_id_seq'::regclass); + + +-- +-- TOC entry 5366 (class 2606 OID 74711) +-- Name: tb_map_sheet_anal_data_inference PK_tb_map_sheet_anal_data_inference; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_data_inference + ADD CONSTRAINT "PK_tb_map_sheet_anal_data_inference" PRIMARY KEY (data_uid); + + +-- +-- TOC entry 5377 (class 2606 OID 74713) +-- Name: tb_map_sheet_anal_inference PK_tb_map_sheet_anal_inference; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_inference + ADD CONSTRAINT "PK_tb_map_sheet_anal_inference" PRIMARY KEY (anal_uid); + + +-- +-- TOC entry 5379 (class 2606 OID 74715) +-- Name: tb_map_sheet_anal_target_data PK_tb_map_sheet_anal_target_data; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_target_data + ADD CONSTRAINT "PK_tb_map_sheet_anal_target_data" PRIMARY KEY (target_uid); + + +-- +-- TOC entry 5456 (class 2606 OID 74991) +-- Name: tb_map_sheet_learn PK_tb_map_sheet_learn; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn + ADD CONSTRAINT "PK_tb_map_sheet_learn" PRIMARY KEY (id); + + +-- +-- TOC entry 5458 (class 2606 OID 75001) +-- Name: tb_map_sheet_learn_5k PK_tb_map_sheet_learn_5k; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_5k + ADD CONSTRAINT "PK_tb_map_sheet_learn_5k" PRIMARY KEY (id); + + +-- +-- TOC entry 5393 (class 2606 OID 74721) +-- Name: tb_map_sheet_mng PK_tb_map_sheet_mng; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_mng + ADD CONSTRAINT "PK_tb_map_sheet_mng" PRIMARY KEY (mng_yyyy); + + +-- +-- TOC entry 5419 (class 2606 OID 74723) +-- Name: tb_model_deploy_hst PK_tb_model_deploy_hst; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_deploy_hst + ADD CONSTRAINT "PK_tb_model_deploy_hst" PRIMARY KEY (deploy_uid); + + +-- +-- TOC entry 5460 (class 2606 OID 75014) +-- Name: tb_pnu PK_tb_pnu; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_pnu + ADD CONSTRAINT "PK_tb_pnu" PRIMARY KEY (id); + + +-- +-- TOC entry 5299 (class 2606 OID 74725) +-- Name: demo_learning_analysis_scene_item demo_learning_analysis_scene_item_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_item + ADD CONSTRAINT demo_learning_analysis_scene_item_pkey PRIMARY KEY (group_item_id); + + +-- +-- TOC entry 5305 (class 2606 OID 74727) +-- Name: demo_learning_analysis_scene_list demo_learning_analysis_scene_list_group_name_key; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_list + ADD CONSTRAINT demo_learning_analysis_scene_list_group_name_key UNIQUE (group_name); + + +-- +-- TOC entry 5307 (class 2606 OID 74729) +-- Name: demo_learning_analysis_scene_list demo_learning_analysis_scene_list_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_list + ADD CONSTRAINT demo_learning_analysis_scene_list_pkey PRIMARY KEY (group_id); + + +-- +-- TOC entry 5309 (class 2606 OID 74731) +-- Name: demo_learning_analysis_summary demo_learning_analysis_summary_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_summary + ADD CONSTRAINT demo_learning_analysis_summary_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5315 (class 2606 OID 74733) +-- Name: gpu_metrics gpu_metrics_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.gpu_metrics + ADD CONSTRAINT gpu_metrics_pk PRIMARY KEY (uuid); + + +-- +-- TOC entry 5317 (class 2606 OID 74735) +-- Name: imagery imagery_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.imagery + ADD CONSTRAINT imagery_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5321 (class 2606 OID 74737) +-- Name: inference_results_noor inference_results_noor_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_results_noor + ADD CONSTRAINT inference_results_noor_pkey PRIMARY KEY (uid); + + +-- +-- TOC entry 5296 (class 2606 OID 61449) +-- Name: inference_sample_test_2021_2022_intermediate inference_sample_test_2021_2022_intermediate_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.inference_sample_test_2021_2022_intermediate + ADD CONSTRAINT inference_sample_test_2021_2022_intermediate_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5324 (class 2606 OID 74739) +-- Name: overlapped_areas_roi overlapped_areas_roi_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.overlapped_areas_roi + ADD CONSTRAINT overlapped_areas_roi_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5311 (class 2606 OID 74741) +-- Name: detect_mast pk_detect_mast; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.detect_mast + ADD CONSTRAINT pk_detect_mast PRIMARY KEY (dtct_mst_id); + + +-- +-- TOC entry 5427 (class 2606 OID 74743) +-- Name: tb_sys_cd pk_t_sys_cd; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_sys_cd + ADD CONSTRAINT pk_t_sys_cd PRIMARY KEY (sys_cd_id); + + +-- +-- TOC entry 5352 (class 2606 OID 74745) +-- Name: tb_labeling_assignment pk_tb_labeling_assignment; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_labeling_assignment + ADD CONSTRAINT pk_tb_labeling_assignment PRIMARY KEY (assignment_uid); + + +-- +-- TOC entry 5355 (class 2606 OID 74747) +-- Name: tb_labeling_inspector pk_tb_labeling_inspector; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_labeling_inspector + ADD CONSTRAINT pk_tb_labeling_inspector PRIMARY KEY (operator_uid); + + +-- +-- TOC entry 5359 (class 2606 OID 74749) +-- Name: tb_labeling_labeler pk_tb_labeling_labeler; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_labeling_labeler + ADD CONSTRAINT pk_tb_labeling_labeler PRIMARY KEY (lb_usr_uid); + + +-- +-- TOC entry 5421 (class 2606 OID 74751) +-- Name: tb_model_mng pk_tb_model_mng; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_mng + ADD CONSTRAINT pk_tb_model_mng PRIMARY KEY (model_uid); + + +-- +-- TOC entry 5326 (class 2606 OID 74753) +-- Name: system_metrics system_metrics_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.system_metrics + ADD CONSTRAINT system_metrics_pk PRIMARY KEY (uuid); + + +-- +-- TOC entry 5334 (class 2606 OID 74755) +-- Name: tb_auth_token tb_auth_token_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_auth_token + ADD CONSTRAINT tb_auth_token_pkey PRIMARY KEY (token_id); + + +-- +-- TOC entry 5338 (class 2606 OID 74757) +-- Name: tb_cm_cd tb_cm_cd_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_cm_cd + ADD CONSTRAINT tb_cm_cd_pkey PRIMARY KEY (code_id); + + +-- +-- TOC entry 5340 (class 2606 OID 74759) +-- Name: tb_data_mapinfo_cd tb_data_mapinfo_cd_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_data_mapinfo_cd + ADD CONSTRAINT tb_data_mapinfo_cd_pkey PRIMARY KEY (code_id); + + +-- +-- TOC entry 5342 (class 2606 OID 74761) +-- Name: tb_data_object_class_cd tb_data_object_class_cd_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_data_object_class_cd + ADD CONSTRAINT tb_data_object_class_cd_pkey PRIMARY KEY (code_id); + + +-- +-- TOC entry 5344 (class 2606 OID 74763) +-- Name: tb_data_year_cd tb_data_year_cd_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_data_year_cd + ADD CONSTRAINT tb_data_year_cd_pkey PRIMARY KEY (code_id); + + +-- +-- TOC entry 5364 (class 2606 OID 74765) +-- Name: tb_map_inkx_5k tb_map_inkx_5k_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_inkx_5k + ADD CONSTRAINT tb_map_inkx_5k_pkey PRIMARY KEY (fid); + + +-- +-- TOC entry 5373 (class 2606 OID 74767) +-- Name: tb_map_sheet_anal_data_inference_geom tb_map_sheet_anal_data_inference_geom_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_data_inference_geom + ADD CONSTRAINT tb_map_sheet_anal_data_inference_geom_pkey PRIMARY KEY (geo_uid); + + +-- +-- TOC entry 5375 (class 2606 OID 74769) +-- Name: tb_map_sheet_anal_data_inference_geom tb_map_sheet_anal_data_inference_geom_uuid_key; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_data_inference_geom + ADD CONSTRAINT tb_map_sheet_anal_data_inference_geom_uuid_key UNIQUE (uuid); + + +-- +-- TOC entry 5391 (class 2606 OID 74771) +-- Name: tb_map_sheet_learn_data_geom tb_map_sheet_learn_data_geom_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_data_geom + ADD CONSTRAINT tb_map_sheet_learn_data_geom_pkey PRIMARY KEY (geo_uid); + + +-- +-- TOC entry 5384 (class 2606 OID 74773) +-- Name: tb_map_sheet_learn_data tb_map_sheet_learn_data_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_data + ADD CONSTRAINT tb_map_sheet_learn_data_pkey PRIMARY KEY (data_uid); + + +-- +-- TOC entry 5395 (class 2606 OID 74775) +-- Name: tb_map_sheet_mng_files tb_map_sheet_mng_files_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_mng_files + ADD CONSTRAINT tb_map_sheet_mng_files_pk PRIMARY KEY (file_uid); + + +-- +-- TOC entry 5397 (class 2606 OID 74777) +-- Name: tb_map_sheet_mng_hst tb_map_sheet_mng_hst2_pkey1; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_mng_hst + ADD CONSTRAINT tb_map_sheet_mng_hst2_pkey1 PRIMARY KEY (hst_uid); + + +-- +-- TOC entry 5399 (class 2606 OID 74779) +-- Name: tb_map_sheet_mng_hst tb_map_sheet_mng_hst_unique; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_mng_hst + ADD CONSTRAINT tb_map_sheet_mng_hst_unique UNIQUE (mng_yyyy, map_sheet_num); + + +-- +-- TOC entry 5401 (class 2606 OID 74781) +-- Name: tb_map_sheet_years_map tb_mapsheet_years_map_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_years_map + ADD CONSTRAINT tb_mapsheet_years_map_pk PRIMARY KEY (map_sheet_num); + + +-- +-- TOC entry 5403 (class 2606 OID 74783) +-- Name: tb_member tb_member_employee_no; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member + ADD CONSTRAINT tb_member_employee_no UNIQUE (employee_no); + + +-- +-- TOC entry 5405 (class 2606 OID 74785) +-- Name: tb_member tb_member_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member + ADD CONSTRAINT tb_member_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5407 (class 2606 OID 74787) +-- Name: tb_member tb_member_unique; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member + ADD CONSTRAINT tb_member_unique UNIQUE (employee_no); + + +-- +-- TOC entry 5409 (class 2606 OID 74789) +-- Name: tb_member tb_member_user_id; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member + ADD CONSTRAINT tb_member_user_id UNIQUE (user_id); + + +-- +-- TOC entry 5415 (class 2606 OID 74791) +-- Name: tb_menu_mapp tb_menu_mapp_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_menu_mapp + ADD CONSTRAINT tb_menu_mapp_pkey PRIMARY KEY (mapp_uid); + + +-- +-- TOC entry 5413 (class 2606 OID 74793) +-- Name: tb_menu tb_menu_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_menu + ADD CONSTRAINT tb_menu_pkey PRIMARY KEY (menu_uid); + + +-- +-- TOC entry 5462 (class 2606 OID 75032) +-- Name: tb_model_result_metric tb_model_result_metric_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_result_metric + ADD CONSTRAINT tb_model_result_metric_pkey PRIMARY KEY (metric_uid); + + +-- +-- TOC entry 5423 (class 2606 OID 74795) +-- Name: tb_model_ver tb_model_ver_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_model_ver + ADD CONSTRAINT tb_model_ver_pkey PRIMARY KEY (model_ver_uid); + + +-- +-- TOC entry 5425 (class 2606 OID 74797) +-- Name: tb_server tb_server_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_server + ADD CONSTRAINT tb_server_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5429 (class 2606 OID 74799) +-- Name: tb_upload_session tb_upload_session_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_upload_session + ADD CONSTRAINT tb_upload_session_pk PRIMARY KEY (upload_id); + + +-- +-- TOC entry 5431 (class 2606 OID 74801) +-- Name: tb_upload_session tb_upload_session_unique; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_upload_session + ADD CONSTRAINT tb_upload_session_unique UNIQUE (uuid); + + +-- +-- TOC entry 5439 (class 2606 OID 74803) +-- Name: tb_user_layer_group tb_user_layer_group_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_user_layer_group + ADD CONSTRAINT tb_user_layer_group_pkey PRIMARY KEY (user_layer_group_uid); + + +-- +-- TOC entry 5437 (class 2606 OID 74805) +-- Name: tb_user_layer tb_user_layer_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_user_layer + ADD CONSTRAINT tb_user_layer_pkey PRIMARY KEY (user_layer_uid); + + +-- +-- TOC entry 5433 (class 2606 OID 74807) +-- Name: tb_user tb_user_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_user + ADD CONSTRAINT tb_user_pkey PRIMARY KEY (user_uid); + + +-- +-- TOC entry 5441 (class 2606 OID 74809) +-- Name: tb_year tb_year_pk; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_year + ADD CONSTRAINT tb_year_pk PRIMARY KEY (yyyy); + + +-- +-- TOC entry 5446 (class 2606 OID 74811) +-- Name: tb_zoo tb_zoo_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_zoo + ADD CONSTRAINT tb_zoo_pkey PRIMARY KEY (uid); + + +-- +-- TOC entry 5448 (class 2606 OID 74813) +-- Name: tb_zoo tb_zoo_uuid_key; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_zoo + ADD CONSTRAINT tb_zoo_uuid_key UNIQUE (uuid); + + +-- +-- TOC entry 5313 (class 2606 OID 74815) +-- Name: detect_mast uk_detect_mast_uuid; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.detect_mast + ADD CONSTRAINT uk_detect_mast_uuid UNIQUE (dtct_mst_uuid); + + +-- +-- TOC entry 5319 (class 2606 OID 74817) +-- Name: imagery unique_year_scene; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.imagery + ADD CONSTRAINT unique_year_scene UNIQUE (year, scene_5k); + + +-- +-- TOC entry 5336 (class 2606 OID 74819) +-- Name: tb_auth_token uq_auth_token; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_auth_token + ADD CONSTRAINT uq_auth_token UNIQUE (user_uid, refresh_token); + + +-- +-- TOC entry 5303 (class 2606 OID 74821) +-- Name: demo_learning_analysis_scene_item uq_group_fid; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_item + ADD CONSTRAINT uq_group_fid UNIQUE (group_id, fid); + + +-- +-- TOC entry 5411 (class 2606 OID 74823) +-- Name: tb_member uq_member_uuid; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_member + ADD CONSTRAINT uq_member_uuid UNIQUE (uuid); + + +-- +-- TOC entry 5368 (class 2606 OID 74825) +-- Name: tb_map_sheet_anal_data_inference uq_tb_map_sheet_anal_data_inference; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_anal_data_inference + ADD CONSTRAINT uq_tb_map_sheet_anal_data_inference UNIQUE (stage, compare_yyyy, target_yyyy, map_sheet_num); + + +-- +-- TOC entry 5417 (class 2606 OID 74827) +-- Name: tb_menu_mapp uq_tb_menu_mapp_role_menu; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_menu_mapp + ADD CONSTRAINT uq_tb_menu_mapp_role_menu UNIQUE (role_code, menu_uid); + + +-- +-- TOC entry 5450 (class 2606 OID 74829) +-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5435 (class 2606 OID 74831) +-- Name: tb_user ux_tb_user_user_id; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_user + ADD CONSTRAINT ux_tb_user_user_id UNIQUE (user_id); + + +-- +-- TOC entry 5452 (class 2606 OID 74833) +-- Name: yearly_sheet_map yearly_sheet_map_pkey; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.yearly_sheet_map + ADD CONSTRAINT yearly_sheet_map_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 5454 (class 2606 OID 74835) +-- Name: yearly_sheet_map yearly_sheet_map_uuid_key; Type: CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.yearly_sheet_map + ADD CONSTRAINT yearly_sheet_map_uuid_key UNIQUE (uuid); + + +-- +-- TOC entry 5370 (class 1259 OID 74836) +-- Name: idx_anal_data_inference_uid_key; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_anal_data_inference_uid_key ON public.tb_map_sheet_anal_data_inference_geom USING btree (data_uid, map_sheet_num); + + +-- +-- TOC entry 5371 (class 1259 OID 74837) +-- Name: idx_anal_data_inference_yyyy_stage; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_anal_data_inference_yyyy_stage ON public.tb_map_sheet_anal_data_inference_geom USING btree (compare_yyyy, target_yyyy, stage); + + +-- +-- TOC entry 5300 (class 1259 OID 74838) +-- Name: idx_analysis_scene_item_fid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_analysis_scene_item_fid ON public.demo_learning_analysis_scene_item USING btree (fid); + + +-- +-- TOC entry 5301 (class 1259 OID 74839) +-- Name: idx_analysis_scene_item_group_id; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_analysis_scene_item_group_id ON public.demo_learning_analysis_scene_item USING btree (group_id); + + +-- +-- TOC entry 5327 (class 1259 OID 74840) +-- Name: idx_animal_category; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_category ON public.tb_animal USING btree (category); + + +-- +-- TOC entry 5328 (class 1259 OID 74841) +-- Name: idx_animal_is_deleted; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_is_deleted ON public.tb_animal USING btree (is_deleted); + + +-- +-- TOC entry 5329 (class 1259 OID 74842) +-- Name: idx_animal_name; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_name ON public.tb_animal USING btree (name); + + +-- +-- TOC entry 5330 (class 1259 OID 74843) +-- Name: idx_animal_species; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_species ON public.tb_animal USING btree (species); + + +-- +-- TOC entry 5331 (class 1259 OID 74844) +-- Name: idx_animal_uuid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_uuid ON public.tb_animal USING btree (uuid); + + +-- +-- TOC entry 5332 (class 1259 OID 74845) +-- Name: idx_animal_zoo_id; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_animal_zoo_id ON public.tb_animal USING btree (zoo_id); + + +-- +-- TOC entry 5294 (class 1259 OID 61552) +-- Name: idx_inf_inter_geom; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_inf_inter_geom ON public.inference_sample_test_2021_2022_intermediate USING gist (geom); + +ALTER TABLE public.inference_sample_test_2021_2022_intermediate CLUSTER ON idx_inf_inter_geom; + + +-- +-- TOC entry 5345 (class 1259 OID 74846) +-- Name: idx_labeling_assignment_geo_uid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_assignment_geo_uid ON public.tb_labeling_assignment USING btree (inference_geom_uid); + + +-- +-- TOC entry 5346 (class 1259 OID 74847) +-- Name: idx_labeling_assignment_inspector; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_assignment_inspector ON public.tb_labeling_assignment USING btree (inspector_uid, work_state); + + +-- +-- TOC entry 5347 (class 1259 OID 74848) +-- Name: idx_labeling_assignment_worker; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_assignment_worker ON public.tb_labeling_assignment USING btree (worker_uid, work_state, created_dttm); + + +-- +-- TOC entry 5353 (class 1259 OID 74849) +-- Name: idx_labeling_inspector_uid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_inspector_uid ON public.tb_labeling_inspector USING btree (inspector_uid); + + +-- +-- TOC entry 5356 (class 1259 OID 74850) +-- Name: idx_labeling_labeler_anal; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_labeler_anal ON public.tb_labeling_labeler USING btree (anal_uid); + + +-- +-- TOC entry 5357 (class 1259 OID 74851) +-- Name: idx_labeling_labeler_uid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_labeling_labeler_uid ON public.tb_labeling_labeler USING btree (worker_uid); + + +-- +-- TOC entry 5385 (class 1259 OID 74852) +-- Name: idx_learn_data_geom_spatial; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_learn_data_geom_spatial ON public.tb_map_sheet_learn_data_geom USING gist (geom); + + +-- +-- TOC entry 5386 (class 1259 OID 74853) +-- Name: idx_learn_data_geom_status; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_learn_data_geom_status ON public.tb_map_sheet_learn_data_geom USING btree (label_status_cd); + + +-- +-- TOC entry 5322 (class 1259 OID 74854) +-- Name: idx_overlapped_roi_geom; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_overlapped_roi_geom ON public.overlapped_areas_roi USING gist (geom); + +ALTER TABLE public.overlapped_areas_roi CLUSTER ON idx_overlapped_roi_geom; + + +-- +-- TOC entry 5348 (class 1259 OID 74855) +-- Name: idx_tb_labeling_assignment_anal; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_labeling_assignment_anal ON public.tb_labeling_assignment USING btree (anal_uid); + + +-- +-- TOC entry 5349 (class 1259 OID 74856) +-- Name: idx_tb_labeling_assignment_anal_worker; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_labeling_assignment_anal_worker ON public.tb_labeling_assignment USING btree (anal_uid, worker_uid); + + +-- +-- TOC entry 5350 (class 1259 OID 74857) +-- Name: idx_tb_labeling_assignment_anal_workstate; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_labeling_assignment_anal_workstate ON public.tb_labeling_assignment USING btree (anal_uid, work_state); + + +-- +-- TOC entry 5361 (class 1259 OID 74858) +-- Name: idx_tb_map_inkx_5k_fid_k50; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_inkx_5k_fid_k50 ON public.tb_map_inkx_5k USING btree (fid_k50); + + +-- +-- TOC entry 5380 (class 1259 OID 74859) +-- Name: idx_tb_map_sheet_learn_data_anal_state; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_anal_state ON public.tb_map_sheet_learn_data USING btree (anal_state); + + +-- +-- TOC entry 5381 (class 1259 OID 74860) +-- Name: idx_tb_map_sheet_learn_data_data_path; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_data_path ON public.tb_map_sheet_learn_data USING btree (data_path); + + +-- +-- TOC entry 5382 (class 1259 OID 74861) +-- Name: idx_tb_map_sheet_learn_data_data_state; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_data_state ON public.tb_map_sheet_learn_data USING btree (data_state); + + +-- +-- TOC entry 5387 (class 1259 OID 74862) +-- Name: idx_tb_map_sheet_learn_data_geom_data_uid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_geom_data_uid ON public.tb_map_sheet_learn_data_geom USING btree (data_uid); + + +-- +-- TOC entry 5388 (class 1259 OID 74863) +-- Name: idx_tb_map_sheet_learn_data_geom_geo_type; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_geom_geo_type ON public.tb_map_sheet_learn_data_geom USING btree (geo_type); + + +-- +-- TOC entry 5389 (class 1259 OID 74864) +-- Name: idx_tb_map_sheet_learn_data_geom_spatial; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_tb_map_sheet_learn_data_geom_spatial ON public.tb_map_sheet_learn_data_geom USING gist (geom); + + +-- +-- TOC entry 5442 (class 1259 OID 74865) +-- Name: idx_zoo_is_deleted; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_zoo_is_deleted ON public.tb_zoo USING btree (is_deleted); + + +-- +-- TOC entry 5443 (class 1259 OID 74866) +-- Name: idx_zoo_name; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_zoo_name ON public.tb_zoo USING btree (name); + + +-- +-- TOC entry 5444 (class 1259 OID 74867) +-- Name: idx_zoo_uuid; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX idx_zoo_uuid ON public.tb_zoo USING btree (uuid); + + +-- +-- TOC entry 5297 (class 1259 OID 61577) +-- Name: sidx_inference_sample_test_2021_2022_intermediate_geom; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX sidx_inference_sample_test_2021_2022_intermediate_geom ON public.inference_sample_test_2021_2022_intermediate USING gist (geom); + + +-- +-- TOC entry 5360 (class 1259 OID 74868) +-- Name: tb_map_inkx_50k_geom_geom_idx; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX tb_map_inkx_50k_geom_geom_idx ON public.tb_map_inkx_50k USING gist (geom); + + +-- +-- TOC entry 5362 (class 1259 OID 74869) +-- Name: tb_map_inkx_5k_geom_geom_idx; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE INDEX tb_map_inkx_5k_geom_geom_idx ON public.tb_map_inkx_5k USING gist (geom); + + +-- +-- TOC entry 5369 (class 1259 OID 74870) +-- Name: uq_tb_map_sheet_anal_data_inference_group; Type: INDEX; Schema: public; Owner: kamco_cds +-- + +CREATE UNIQUE INDEX uq_tb_map_sheet_anal_data_inference_group ON public.tb_map_sheet_anal_data_inference USING btree (stage, compare_yyyy, target_yyyy, map_sheet_num); + + +-- +-- TOC entry 5469 (class 2606 OID 74871) +-- Name: tb_menu_mapp FK_tb_menu_mapp_tb_menu; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_menu_mapp + ADD CONSTRAINT "FK_tb_menu_mapp_tb_menu" FOREIGN KEY (menu_uid) REFERENCES public.tb_menu(menu_uid); + + +-- +-- TOC entry 5465 (class 2606 OID 74876) +-- Name: tb_animal fk_animal_zoo; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_animal + ADD CONSTRAINT fk_animal_zoo FOREIGN KEY (zoo_id) REFERENCES public.tb_zoo(uid) ON DELETE SET NULL; + + +-- +-- TOC entry 5466 (class 2606 OID 74881) +-- Name: tb_labeling_assignment fk_assign_to_inference; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_labeling_assignment + ADD CONSTRAINT fk_assign_to_inference FOREIGN KEY (inference_geom_uid) REFERENCES public.tb_map_sheet_anal_data_inference_geom(geo_uid) ON DELETE CASCADE; + + +-- +-- TOC entry 5463 (class 2606 OID 74886) +-- Name: demo_learning_analysis_scene_item fk_demo_learning_analysis_scene_item_fid; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_item + ADD CONSTRAINT fk_demo_learning_analysis_scene_item_fid FOREIGN KEY (fid) REFERENCES public.tb_map_inkx_5k(fid) ON DELETE CASCADE; + + +-- +-- TOC entry 5464 (class 2606 OID 74891) +-- Name: demo_learning_analysis_scene_item fk_demo_learning_analysis_scene_item_group; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.demo_learning_analysis_scene_item + ADD CONSTRAINT fk_demo_learning_analysis_scene_item_group FOREIGN KEY (group_id) REFERENCES public.demo_learning_analysis_scene_list(group_id) ON DELETE CASCADE; + + +-- +-- TOC entry 5467 (class 2606 OID 74896) +-- Name: tb_map_sheet_learn_data_geom fk_learn_data_geom_data_uid; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_data_geom + ADD CONSTRAINT fk_learn_data_geom_data_uid FOREIGN KEY (data_uid) REFERENCES public.tb_map_sheet_learn_data(data_uid) ON DELETE CASCADE; + + +-- +-- TOC entry 5470 (class 2606 OID 75002) +-- Name: tb_map_sheet_learn_5k fk_tb_map_sheet_learn_5k_learn; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_map_sheet_learn_5k + ADD CONSTRAINT fk_tb_map_sheet_learn_5k_learn FOREIGN KEY (learn_id) REFERENCES public.tb_map_sheet_learn(id) ON DELETE CASCADE; + + +-- +-- TOC entry 5468 (class 2606 OID 74906) +-- Name: tb_menu fksw914diut87r7lfykekc7xm2a; Type: FK CONSTRAINT; Schema: public; Owner: kamco_cds +-- + +ALTER TABLE ONLY public.tb_menu + ADD CONSTRAINT fksw914diut87r7lfykekc7xm2a FOREIGN KEY (parent_menu_uid) REFERENCES public.tb_menu(menu_uid); + + +-- Completed on 2026-01-13 22:49:37 KST + +-- +-- PostgreSQL database dump complete +-- + +\unrestrict o7JveaMl3BOBWLIUfXrrvlHh4CDykDyey2eRm6Q7nfSa2cPgfQjV2lpA0Ds4zGu +