package ru.mcs.metadatabook.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.OffsetDateTime;
@Entity
@Table(name = "api_keys")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ApiKey {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "org_id", nullable = false)
private Integer orgId;
@Column(name = "key_value", nullable = false, unique = true)
private String keyValue;
@Column(name = "scope", nullable = false)
@Builder.Default
private String scope = "PARTNER_WRITE"; // храним как String (не @Enumerated) —
// проще с ALTER TABLE/ручными INSERT, конвертация через ApiKeyScope.valueOf() в сервисе.
@Column(name = "label")
private String label;
@Column(name = "is_active")
@Builder.Default
private Boolean isActive = true;
@Column(name = "created_at")
@Builder.Default
private OffsetDateTime createdAt = OffsetDateTime.now();
}