60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
# Task 2.2.1: Create `pkg/identity/identity.go` interfaces:
|
|
|
|
## Metadata
|
|
- **Task ID**: 2.2.1
|
|
- **Title**: Create `pkg/identity/identity.go` interfaces:
|
|
- **Phase**: 2 - Authentication & Authorization
|
|
- **Section**: 2.2
|
|
- **Status**: Pending
|
|
- **Priority**: High
|
|
- **Estimated Time**: TBD
|
|
- **Dependencies**: TBD
|
|
|
|
## Description
|
|
Create `pkg/identity/identity.go` interfaces:
|
|
|
|
## Requirements
|
|
- Create `pkg/identity/identity.go` interfaces:
|
|
|
|
## Implementation Steps
|
|
1. TODO: Add implementation steps
|
|
2. TODO: Add implementation steps
|
|
3. TODO: Add implementation steps
|
|
|
|
## Acceptance Criteria
|
|
- [ ] Task 2.2.1 is completed
|
|
- [ ] All requirements are met
|
|
- [ ] Code compiles and tests pass
|
|
|
|
## Related ADRs
|
|
- See relevant ADRs in `docs/adr/`
|
|
|
|
## Implementation Notes
|
|
- TODO: Add implementation notes
|
|
|
|
## Testing
|
|
```bash
|
|
# TODO: Add test commands
|
|
go test ./...
|
|
```
|
|
|
|
|
|
## Code Reference
|
|
|
|
```go
|
|
type UserRepository interface {
|
|
FindByID(ctx context.Context, id string) (*User, error)
|
|
FindByEmail(ctx context.Context, email string) (*User, error)
|
|
Create(ctx context.Context, u *User) error
|
|
Update(ctx context.Context, u *User) error
|
|
Delete(ctx context.Context, id string) error
|
|
}
|
|
|
|
type UserService interface {
|
|
Register(ctx context.Context, email, password string) (*User, error)
|
|
VerifyEmail(ctx context.Context, token string) error
|
|
ResetPassword(ctx context.Context, email string) error
|
|
ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
|
|
}
|
|
```
|