package repositories import ( "context" "tyapi-server/internal/domains/admin/dto" "tyapi-server/internal/domains/admin/entities" "tyapi-server/internal/shared/interfaces" ) // AdminRepository 管理员仓储接口 type AdminRepository interface { interfaces.Repository[entities.Admin] // 管理员认证 FindByUsername(ctx context.Context, username string) (*entities.Admin, error) FindByEmail(ctx context.Context, email string) (*entities.Admin, error) // 管理员管理 ListAdmins(ctx context.Context, req *dto.AdminListRequest) (*dto.AdminListResponse, error) GetStats(ctx context.Context) (*dto.AdminStatsResponse, error) // 权限管理 GetPermissionsByRole(ctx context.Context, role entities.AdminRole) ([]entities.AdminPermission, error) UpdatePermissions(ctx context.Context, adminID string, permissions []string) error // 统计信息 UpdateLoginStats(ctx context.Context, adminID string) error UpdateReviewStats(ctx context.Context, adminID string, approved bool) error } // AdminLoginLogRepository 管理员登录日志仓储接口 type AdminLoginLogRepository interface { interfaces.Repository[entities.AdminLoginLog] // 日志查询 ListLogs(ctx context.Context, req *dto.AdminLoginLogRequest) (*dto.AdminLoginLogResponse, error) // 统计查询 GetTodayLoginCount(ctx context.Context) (int64, error) GetLoginCountByAdmin(ctx context.Context, adminID string, days int) (int64, error) } // AdminOperationLogRepository 管理员操作日志仓储接口 type AdminOperationLogRepository interface { interfaces.Repository[entities.AdminOperationLog] // 日志查询 ListLogs(ctx context.Context, req *dto.AdminOperationLogRequest) (*dto.AdminOperationLogResponse, error) // 统计查询 GetTotalOperations(ctx context.Context) (int64, error) GetOperationsByAdmin(ctx context.Context, adminID string, days int) (int64, error) // 批量操作 BatchCreate(ctx context.Context, logs []entities.AdminOperationLog) error } // AdminPermissionRepository 管理员权限仓储接口 type AdminPermissionRepository interface { interfaces.Repository[entities.AdminPermission] // 权限查询 FindByCode(ctx context.Context, code string) (*entities.AdminPermission, error) FindByModule(ctx context.Context, module string) ([]entities.AdminPermission, error) ListActive(ctx context.Context) ([]entities.AdminPermission, error) // 角色权限管理 GetPermissionsByRole(ctx context.Context, role entities.AdminRole) ([]entities.AdminPermission, error) AssignPermissionsToRole(ctx context.Context, role entities.AdminRole, permissionIDs []string) error RemovePermissionsFromRole(ctx context.Context, role entities.AdminRole, permissionIDs []string) error }