106 lines
5.1 KiB
Go
106 lines
5.1 KiB
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
|
|
"tyapi-server/internal/domains/certification/entities"
|
|
"tyapi-server/internal/domains/certification/enums"
|
|
)
|
|
|
|
// CertificationRepository 认证仓储接口
|
|
type CertificationRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, cert *entities.Certification) error
|
|
GetByID(ctx context.Context, id string) (*entities.Certification, error)
|
|
GetByUserID(ctx context.Context, userID string) (*entities.Certification, error)
|
|
Update(ctx context.Context, cert *entities.Certification) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
List(ctx context.Context, page, pageSize int, status enums.CertificationStatus) ([]*entities.Certification, int, error)
|
|
GetByStatus(ctx context.Context, status enums.CertificationStatus, page, pageSize int) ([]*entities.Certification, int, error)
|
|
GetPendingApprovals(ctx context.Context, page, pageSize int) ([]*entities.Certification, int, error)
|
|
|
|
// 关联查询
|
|
GetWithEnterprise(ctx context.Context, id string) (*entities.Certification, error)
|
|
GetWithAllRelations(ctx context.Context, id string) (*entities.Certification, error)
|
|
|
|
// 统计操作
|
|
CountByStatus(ctx context.Context, status enums.CertificationStatus) (int64, error)
|
|
CountByUserID(ctx context.Context, userID string) (int64, error)
|
|
}
|
|
|
|
// EnterpriseRepository 企业信息仓储接口
|
|
type EnterpriseRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, enterprise *entities.Enterprise) error
|
|
GetByID(ctx context.Context, id string) (*entities.Enterprise, error)
|
|
GetByCertificationID(ctx context.Context, certificationID string) (*entities.Enterprise, error)
|
|
Update(ctx context.Context, enterprise *entities.Enterprise) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
GetByUnifiedSocialCode(ctx context.Context, code string) (*entities.Enterprise, error)
|
|
ExistsByUnifiedSocialCode(ctx context.Context, code string) (bool, error)
|
|
}
|
|
|
|
// LicenseUploadRecordRepository 营业执照上传记录仓储接口
|
|
type LicenseUploadRecordRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, record *entities.LicenseUploadRecord) error
|
|
GetByID(ctx context.Context, id string) (*entities.LicenseUploadRecord, error)
|
|
GetByUserID(ctx context.Context, userID string, page, pageSize int) ([]*entities.LicenseUploadRecord, int, error)
|
|
GetByCertificationID(ctx context.Context, certificationID string) (*entities.LicenseUploadRecord, error)
|
|
Update(ctx context.Context, record *entities.LicenseUploadRecord) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
GetByQiNiuKey(ctx context.Context, key string) (*entities.LicenseUploadRecord, error)
|
|
GetPendingOCR(ctx context.Context, limit int) ([]*entities.LicenseUploadRecord, error)
|
|
}
|
|
|
|
// FaceVerifyRecordRepository 人脸识别记录仓储接口
|
|
type FaceVerifyRecordRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, record *entities.FaceVerifyRecord) error
|
|
GetByID(ctx context.Context, id string) (*entities.FaceVerifyRecord, error)
|
|
GetByCertifyID(ctx context.Context, certifyID string) (*entities.FaceVerifyRecord, error)
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.FaceVerifyRecord, error)
|
|
Update(ctx context.Context, record *entities.FaceVerifyRecord) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
GetByUserID(ctx context.Context, userID string, page, pageSize int) ([]*entities.FaceVerifyRecord, int, error)
|
|
GetExpiredRecords(ctx context.Context, limit int) ([]*entities.FaceVerifyRecord, error)
|
|
}
|
|
|
|
// ContractRecordRepository 合同记录仓储接口
|
|
type ContractRecordRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, record *entities.ContractRecord) error
|
|
GetByID(ctx context.Context, id string) (*entities.ContractRecord, error)
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.ContractRecord, error)
|
|
Update(ctx context.Context, record *entities.ContractRecord) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
GetByUserID(ctx context.Context, userID string, page, pageSize int) ([]*entities.ContractRecord, int, error)
|
|
GetByStatus(ctx context.Context, status string, page, pageSize int) ([]*entities.ContractRecord, int, error)
|
|
GetExpiredContracts(ctx context.Context, limit int) ([]*entities.ContractRecord, error)
|
|
}
|
|
|
|
// NotificationRecordRepository 通知记录仓储接口
|
|
type NotificationRecordRepository interface {
|
|
// 基础CRUD操作
|
|
Create(ctx context.Context, record *entities.NotificationRecord) error
|
|
GetByID(ctx context.Context, id string) (*entities.NotificationRecord, error)
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.NotificationRecord, error)
|
|
Update(ctx context.Context, record *entities.NotificationRecord) error
|
|
Delete(ctx context.Context, id string) error
|
|
|
|
// 查询操作
|
|
GetByUserID(ctx context.Context, userID string, page, pageSize int) ([]*entities.NotificationRecord, int, error)
|
|
GetPendingNotifications(ctx context.Context, limit int) ([]*entities.NotificationRecord, error)
|
|
GetFailedNotifications(ctx context.Context, limit int) ([]*entities.NotificationRecord, error)
|
|
}
|